LoginSignup
8
7

More than 5 years have passed since last update.

Treasure Dataからデータをrubyで取得する

Last updated at Posted at 2013-11-11

Treasure Dataからrubyで結果を取得する。

gemをインストール

Gemfile
gem 'td-client'
gem 'multimap'

インストール

bundle install

rakeを作成

config/initializers/td_select.rb
# -*- coding: utf-8 -*-
require 'td-client'
require 'multimap'
namespace :td do 
  desc ''
  task :sample => :environment  do
    p "start"

    # This is a script that
    # get the difference from TreasureData by timestamp
    apikey = ENV['TREASURE_DATA_API_KEY']
    db     = "db_name"
    table  = "pageview"
    query  = "SELECT v['session_id'],v['path_info'] FROM #{table} order by time desc limit 100"
    cln = TreasureData::Client.new(apikey)
    job = cln.query(db, query)

    until job.finished?
        sleep 2
        job.update_status!
    end

    job.update_status!  # get latest info

    multimap = Multimap.new
    if job.success? && job.finished?
        logs = []
        job.result_each do |row|
            session_id = row[0]
            path_info = row[1]
            multimap[session_id] = path_info
        end
    end
    pp multimap.keys
  end

end

rake task を実行

bundle exec rake td:sample
8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7