「Treasure Data」でビッグデータ分析をクラウドで、シンプルに!

記事タイトルとURLをコピーする

こんにちは!技術1課@大阪オフィスの柏尾です。

久々のブログになってしまいましたが、今回は「Treasure Data」について書いてみようと思います。

以前から名前は知っていたものの、サーバーワークスに入ってから初めて使うことになり、とてもイケてるクラウドサービスであることを知りました。

Treasure Dataとは

Treasure Dataはトレジャーデータ株式会社が提供する、データ収集・保管・分析が可能なフルマネージドなクラウドサービスです。

  • 初期費用は不要
  • インフラ構築・運用が不要
  • 月額課金で固定費で利用可能

事例一覧

https://www.treasuredata.com/jp/customers

という感じで、多くの企業が、広告やEコマースにおけるデータ分析からIoT・予兆検知など、様々なジャンルのビッグデータを扱う基盤として、Treasure Dataを活用されています。

またそのための、他社製品や外部クラウドサービスとの連携機能も豊富に備えています。

Treasure DataはHadoopベースのサービスですが、独自の列指向+タイムインデックスのデータロードアーキテクチャーを採用しており、必要なデータのみを読み出すことができるため、一般的なHadoopより高速にデータロードが可能になっています。

その手段としてHiveやPrestoといったSQL on Hadoopのツールが利用できるようになっています。

一言に分析といっても、BIツールで行うようなアドホックな分析や、KPIに基づいたダッシュボード的なデータの表示・共有といった分析がありますが、Treasure Dataはその両方の使い方に対応したサービスと言えます。

  • アドホック型分析 + BIツール/統計ツール
  • バッチ型分析 + KPIダッシュボード

使ってみよう

Treasure Dataには、試用版が提供されていますので、早速サインアップして使ってみたいと思います。 下記の手順で進めていきます。

  • 試用版へのサインアップ
  • サンプルデータの確認
  • クエリの実行

試用版へのサインアップ

下記ページからサインアップができます。

https://auth.treasuredata.com/users/sign_up

Googleアカウントも利用できるようになっています。

サンプルデータの確認

ログイン後、左メニューから「Databases」を選択します。

「sample_datasets」というサンプルデータ用のデータベースがありますので、これをクリックします。 データベース内には「nasdaq」「www_access」の2つのサンプルテーブルがあります。

「www_access」というテーブルをクリックします。アクセスログのサンプルですね。

「Columns」タブをクリックすると9つのカラムが存在することが確認できます。 Treasure Dataのテーブルでは、タイムインデックスを実現するため、必ずtime (unix timestamp) カラムが存在しています。

クエリの実行

さっそく「www_access」テーブルにクエリを実行してみたいと思います。

画面右上の「QUERY」ボタンをクリックします。

テキストボックスに下記のクエリを貼り付け実行します。 HTTPステータスコードごとのカウントを取得するクエリです。

SELECT
   code AS http_status_code,
   COUNT(1) AS num_requests
 FROM
   www_access
 GROUP BY
   code
 ORDER BY
   num_requests;

実行結果が「Query Result」に表示されました。 6秒ほどで結果が返っていますね。

次に左メニューの「Queries」をクリックします。 ここにはよく実行するクエリを登録しておくことができます。またそのクエリに対してスケジュール実行を設定することもできます。

予めサンプルのクエリが用意されているので、「Sample: Max/Min Open/Close Per Ticker」を選択します。

これは、Ticker symbol(銘柄コード)ごとの始値と終値の最大値と最小値を取得するクエリのようです。880万件ほどある「nasdaq」テーブルの全データに対してフルスキャンが走るはずです。

SELECT
 symbol,
 MAX(open) as max_open,
 MAX(close) as max_close,
 MIN(open) as min_open,
 MIN(close) as min_close
FROM
 nasdaq
GROUP BY
 symbol;

1分ぐらいで集計結果が表示されました。

また、「Output Result」を使うと、実行結果を別のサービスに転送することができます。AWSのS3やRedshiftにも転送可能になります。

これをTreasure Data上のジョブとして登録し、定期実行するように設定しておけば、毎日決まった時間に集計結果を他のサービスに連携するといった運用が可能になります。

まとめ

Treasure Dataを使うことで、インフラを全く運用することなく、ビッグデータ処理基盤のハブとして利用できることが何となくおわかりいただけたかと思います。

次回以降はもうすこし詳しい使い方や、Embulk(過去記事)などを使った、他サービスとのデータ連携について書きたいと思います。

新オフィスへの移転が完了しました!

大阪オフィスが梅田北プレイスに移転しました!

http://osaka.serverworks.co.jp/

勉強会などの各種イベントも新オフィスで開催される予定ですので、お近くの方は是非お立ち寄りください。

在宅勤務おじさんな私ですが、これからの出社頻度にご期待ください。