Part1はDashingをインストールして同梱されているダッシュボードを表示するところまで確認しました。Treasure Data Service
のデータベースに貯めたデータをダッシュボードに表示することがこのシリーズの目標です。
次はTreasure Data
へのサインアップと、開発環境へtoolbeltのインストールをします。今回はtdコマンドを使い簡単なクエリ実行までしてみます。
Treasure Data Serviceの無料サインアップ
Treasure Data Service
無料版のサインアップができるので、すぐに試してみることができます。
Puttyの確認
複数のPCからPuttyを使っていますが、たまにbyobuのF2キーで新しいウィンドウが開かなくなりました。
あらためて設定を確認します。
- 「接続」 -> 「データ」 -> 「端末タイプを表す文字列」 -> 「 xterm 」
- 「端末」 -> 「キーボード」 -> 「ファンクションキーとキーパッド」 -> 「Xterm R6」
Docker開発環境の準備
いつものようにssh-agentに鍵を追加します。
$ eval `ssh-agent` |
コンテナを起動します。Thinサーバーのポートは、Dockerホストへは3031でバインドします。
$ ~/docker_apps/phusion/ |
byobuを起動してEmacsで便利に使えるように設定します。
- byobu-config -> エスケープシーケンスの変更 -> ctrl + t
- byobu-config -> ステータス通知の切り替え -> logo(off), ip_address(on)
- byobu-ctrl-a -> (2) Emacs mode
- byobu-select-backend -> tmux
Treasure Data Toolbelt のインストール
Treasure Data Service
をコンソールから利用するたのコマンドラインツールをインストールします。
Treasure Data toolbeltからLinuxのアイコンをクリックします。
インストールガイドのページから、Ubuntuのセクションに従います。
インストールコマンドを実行すると、tdコマンドが使えるようになります。
$ curl -L http://toolbelt.treasuredata.com/sh/install-ubuntu-precise.sh | sh |
tdコマンドを使う
最初にtdコマンドが使えるようにアカウントのセットアップをします。
サインアップで入力した、EmailとPasswordを入力します。
$ td account -f |
あとでRubyのプログラムから利用するapikeyを確認します。
$ td apikey:show |
サンプルデータベースの作成
データベースを作成します。アカウントのセットアップをしたときにガイドに表示されました。
ここでは、testdbと名前をつけます。
$ td db:create testdb |
www_accessという名前で、testdbにテーブルを作成します。
$ td table:create testdb www_access |
サンプルテーブルの作成
まだTreasure Data Service
へデータを保存していないので、サンプルテーブルを作って動作確認します。
サンプル用の5000レコードのJSONファイルを作成します。
$ td sample:apache |
先ほど作成したテーブルにJSONデータをインポートします。
$ td table:import testdb www_access --json apache.json |
サンプルクエリ
プロジェクトの作成
$ mkdir -p ~/sinatra_apps/sql |
Treasure Data Service
はスキーマレスなデータベースが特徴で、先ほどインポートしたJSONファイルから
事前のスキーマ定義が不要で、自動的にスキーマを作成してデータを保存できます。
$ td table:show testdb www_access |
どのようなカラムがあるか確認できたので、
SELECT TD_TIME_FORMAT(time, 'yyyy-MM-dd', 'JST') AS day |
sample.sqlのクエリを実行してみます。無料プランなのでクエリに時間がかかりますが、バッチ実行なら使えそうです。
$ td query -w -d testdb -q sample.sql |
まとめ
Treasure Data Service
が利用できるようになりました。セットアップはインストールコマンドがあるのでとても簡単です。
td-agentが使うRuby実行環境も、/usr/lib/fluent/ruby
へインストールされるので、システムワイドに影響がなくて安心です。
次回はDashingで実際にジョブを書いてみようと思います。
このジョブでは、Treasure Data Service
にクエリして、ダッシュボードのウィジェトを定期的に更新する予定です。