Treasure Dataにデータをインポートするプログラム(Rails編)

今回はこちらを参考にRailsアプリケーションからTreasure Dataへデータをインポートするプログラムを作成してみましょう。内容は5月に紹介しましたTreasure Dataのデータを利用するプログラム(Ruby編)の復習にもなりますのでぜひチャレンジしてみてください。

環境

CentOS release 6.4 (Final)

事前準備

Railsアプリケーションを新規作成

$ rails new sample1
$ cd sample1
$ echo "gem 'execjs'" >> Gemfile
$ echo "gem 'therubyracer'" >> Gemfile
$ rails server (起動)

起動確認

ブラウザでhttps://localhost:3000/にアクセスして、下記のような画面が出たら成功です。確認したら、Ctrl+Cでいったん終了させてください。

A

Treasure Dataの設定

APIキーの取得

$ td apikey:show

/etc/td-agent/td-agent.confを修正

# Treasure Data Input and Output
<source>
  type forward
  port 24224
</source>
<match td.*.*>
  type tdlog
  apikey YOUR_API_KEY
  auto_create_table
  buffer_type file
  buffer_path /var/log/td-agent/buffer/td
  use_ssl true
  flush_interval 30s
</match>

td-agentを再起動し、tdの設定をRailsアプリケーションに設定し、scaffoldでコードを自動生成する。

$ sudo /etc/init.d/td-agent start
$ cd ~/sample1/
$ echo "gem 'td', '~> 0.10.6'">>Gemfile
$ bundle install
$ rails generate scaffold person name:string
$ rake db:migrate RAILS_ENV=development
$ rails s

app/controllers/people_controller.rb にログ送信部分の書き込み(赤字の部分を追加してください。)

  # POST /people
  # POST /people.json
  def create
    @person = Person.new(person_params)
    send_td(@person.name)
    respond_to do |format|
    ・・・・
  end
 
  private
  # Treasure Dataへデータを送信
 def send_td(name)
      time = Time.now
      TD.event.post('people',{:name=>name,:time=>time})
  end

実行

以下の手順で確認します。

  1. https://localhost:3000/peopleにアクセスする
  2. New Personをクリック
  3. Nameに何か入力して、Create Personをクリック
  4. 1分ほど待つ
  5. 端末で確認

B

C

D

E

F

Ruby,Java,JDBC,RailsとTreasure Dataへのデータ送信方法を紹介してきましたが、これからもさまざまな言語やアプリケーションからのデータ送信方法を紹介していきますのでお楽しみに。

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です