Treasure Dataを使ってみよう! その2

こんにちは、SSTDの大村です。この記事はTreasure Dataを使ってみよう! その1の続きです。

ログイン

それでは次はチュートリアルのステップ2に従って、自分の領域を利用するためにログインしましょう。

>td account -f
コマンドラインに上のコマンドを入力したら
Enter your Treasure Data credentials.
Email:
と表示されるので登録したメールアドレスを入力します。
Password (typing will be hidden):
次はパスワードです。入力しても何も表示されませんが、パスワードを打ち終わったらEnterしましょう。
Authenticated successfully.
Use 'td db:create ' to create a database.
と表示されれば成功です。

データーベースとテーブルの作成

次にチュートリアルのステップ3に沿って、データベース、テーブルの作成とサンプルデータのインポートを行ってみましょう。

まずはデータベースを作成します。この辺はよくあるデータベースの利用方法と同じですね。

>td db:create testdb
Database 'testdb' is created.
Use 'td table:create testdb <table_name>' to create a table.
testdbという名前のデータベースを作成しました。確認してみます。
>td db:list
+--------+-------+
| Name | Count |
+--------+-------+
| testdb | 0   |
+--------+-------+
1 row in set
次はテーブルを作成します。
>td table:create testdb www_access
Table 'testdb.www_access' is created.
testdbデータベースにwww_accessというテーブルを作成しました。確認してみます。
>td table:list
+----------+------------+------+-------+--------+-------------+--------+
| Database | Table | Type | Count | Size | Last import | Schema |
+----------+------------+------+-------+--------+-------------+--------+
| testdb | www_access | log | 0 | 0.0 GB |       |     |
+----------+------------+------+-------+--------+-------------+--------+
1 row in set
テーブルができたことが確認できました。

サンプルデータのインポート

それではすでに用意されているサンプルデータを先ほど作成したwww_accessテーブルにインポートしてみましょう。

まずはサンプルデータを取得します。

>td sample:apache apache.json
このコマンドを打つと、コマンドプロンプトの実行フォルダにapache.jsonというファイルが作成されます。実行フォルダはWindowsだとコマンドプロンプトの>の左側に書いてあるパスです。同じパスの場所をエクスプローラで探してみてください。メモ帳などでapache.jsonを開いてみましょう。
{"host":"128.XXX.XXX.XX","user":"-","method":"GET","path":"/item/sports/2511","code":200,"referer":"http://www.google.com/search?ie=UTF-8&q=google&sclient=psy-ab&q=Sports+Electronics&oq=Sports+Electronics&aq=f&aqi=g-vL1&aql=&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.,cf.osb&biw=3994&bih=421","size":95,"agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7","time":1366101658}
{"host":"224.XXX.XXX.XX","user":"-","method":"GET","path":"/category/electronics","code":200,"referer":"-","size":43,"agent":"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)","time":1366101657
apacheのログのようなサンプルデータが確認できると思います。ここで見ていただきたいのはこのデータがjson形式だということです。json形式の説明はインターネットにお任せしますが、Treasure dataにデータをインポートするときはこのjson形式かmessagepack形式でインポートすることになります。この辺についてはまた後ほどの記事で触れていきますね。

それでは作ったテーブルにデータをインポートしましょう。

>td table:import testdb www_access --json apache.json
importing apache.json...
uploading 117365 bytes...
imported 5000 entries from apache.json.
done.
5000件のデータをインポートできました!早速確認してみましょう。
C:\Users\admin>>td table:list
+----------+------------+------+-------+--------+---------------------------+--------+
| Database | Table | Type | Count | Size | Last import | Schema |
+----------+------------+------+-------+--------+---------------------------+--------+
| testdb | www_access | log | 5,000 | 0.0 GB | 2013-04-03 13:58:39 +0900 ||
+----------+------------+------+-------+--------+---------------------------+--------+
1 row in set
先ほど0だったCountが5,000になっていることが確認できました。これでTreasure Dataにデータをいれることができました。

クエリーを書いてみよう

通常のデータベースのようにSQLを利用して内容を確認することができます。早速、クエリSQLを送信してみましょう。

>td query -w -d testdb "SELECT v['code'] AS code, COUNT(1) AS cnt FROM www_access GROUP BY v['code']"
testdbに対してその後のSQLを送っています。SQLの意味はcode別の件数の一覧を取得するものですね。Treasure Dataではjson形式のまま保存されているカラムはv['code']のようにv[]で囲んで指定する必要があります。

しばらく待っていると結果が表示されます。

Status : success
Result :
+------+------+
| code | cnt |
+------+------+
| 200 | 4981 |
| 500 | 2 |
| 404 | 17 |
+------+------+
3 rows in set

Treasure Dataを活用していこう!

ここまでチュートリアルを実行するとTreasure Dataのダッシュボードの変化に気がつくと思います。左側にメニューが表示され、ダッシュボードではjobの様子やデータ量を確認することができるようになります。

ここからあなたのTreasure Dataライフがはじまります。Treasure Dataにビッグデータをためてさまざまなことに利用してください!!

容量が足りなくなったら、有料版もありますので連絡してくださいね。

執筆:大村@SSTD