[Rails][CentOS]データ分析サービスTreasureDataを導入
TreasureDataとは
データの収集、保存、分析のためのワンストップクラウドデータサービスだそうです。
http://www.treasuredata.com/jp/
AWSとかだと自前でS3にfluentdでログ収集してElasticMapReduceやRedshift構築してやっと分析!ってなるのを
ログ収集の設定とGem入れるだけでログが収集されていつでもHiveクエリーで分析できるよ!っていう素敵なサービス。
しかもスタートアップのWebサービスとかだと割と無料範囲でいけるんじゃないかなぁ。
ログを収集する程度によるけど。
今回は
CentOSにRubyonRails(Ruby1.9.3p286, Rils3.2.13)環境で説明します。
バージョンによっての違いはあまり無いようです。
※まとめてる途中で気づいたんですが、TreasureDataのサイト上で全く別のやり方も書いてありました。今回は僕がやった方法を記載しますね。yumとか使ってたからそっちのほうが楽かも。
TreasureDataに登録
http://www.treasuredata.com/jp/products/try-it-now.php
このへんから登録してください。
無料版なら登録はメールアドレスとか入力するだけだからすぐですー。
CentOS側の設定
1.rpmをダウンロード
$ curl -L http://toolbelt.treasuredata.com/sh/install-redhat.sh | sh
2.デーモンが起動するか確認
$ /etc/init.d/td-agent start
Starting td-agent: [ OK ]
いつもどおりこれらが対応してるみたい
$ /etc/init.d/td-agent start
$ /etc/init.d/td-agent stop
$ /etc/init.d/td-agent restart
$ /etc/init.d/td-agent status
3.設定ファイルの確認
$ sudo vi /etc/td-agent/td-agent.conf
apikey YOUR_API_KEY
となっているのでTreasureDataのサイト上で取得できる自分のAPIKeyを入力する
変更したら
$ sudo /etc/init.d/td-agent restart
を忘れずに。
4.データが入るかテストする
$ curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test
/var/log/td-agent/td-agent.log
を確認して、{"json":"message"}
っぽいログが出ていることを確認する。
Rails側の設定
1.Gemをインストールする
gem 'td', "~> 0.10.6"
2.confit/treasure_data.ymlの作成
production:
agent: "localhost:24224"
tag: td.production_database_name
debug_mode: false
development:
agent: "localhost:24224"
tag: td.development_database_name
debug_mode: false
test:
tagのデータベースの名前は適宜変更する。
td.の後ろね。
これがTreasureData上でもデータベース名として表示されます。
3.コードを埋め込む
# Example1: login event
TD.event.post('login', {:uid=>123})
# Example2: follow event
TD.event.post('follow', {:uid=>123, :from=>'TD', :to=>'Heroku'})
# Example3: pay event
TD.event.post('pay',
{:uid=>123, :item_name=>'Stone of Jordan',
:category=>'ring', :price=>100, :count=>1})
※上記はTreasureDataのHP上でサンプルとして書かれているコードです。
こちらも適宜変更してください。
4.実行してログが取得できているか確認する
$ td tables
でテーブルを確認。
・・・とやると怒られた。
先にアカウント情報をセットしないといけないらしい
$ td account
でTreasureDataに登録したメールアドレスとパスワードを設定。
そしたら次にDBを作ってと言われたので作成
$ td db:create production_database_name
※production_database_nameはtreasure_data.yml
に設定したDBの名前にしてください
さらにテーブルも作成するようなので作成
$ td table:create production_database_name login
$ td table:create production_database_name follow
$ td table:create production_database_name pay
login, follow, payというのは
TD.event.post('login', {:uid=>123})
のイベント名のところ。
これがテーブルの名前になるみたい。
もろもろ設定完了したらまた実行したりして
$ td tables
とやってログが出力されているか確認できる
TreasureData上にもログが飛んできていることを確認
コンソールにログインして、Databasesのところから見れる。
さっき設定したDBやテーブルがあって、ログが出力されていればOK。
まとめ
この出力したログをHiveとかPigとかのクエリーを使ってデータ抽出できるみたい。
まだデータ溜めてる状態なのでこれから。
またわかったこととかあったらまとめます。
Author And Source
この問題について([Rails][CentOS]データ分析サービスTreasureDataを導入), 我々は、より多くの情報をここで見つけました https://qiita.com/satoken0417/items/d1e4d6928172747c1728著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .