Treasure Data Analytics 第1回 〜Treasure Data Cloud Warehouse について(前編)〜
はじめに
Treasure Data Analytics シリーズは,Treasure Data の提供するクラウドサービス上で実行可能な様々なデータアナリティクスのユースケースなどを紹介して行く長いシリーズです。第1回および第2回では「Treasure Data」とは何か,またその特徴およびメリットは何かについて紹介する予定です。
第1回では Treasure Data の提供する Cloud Data Warehouse サービスのイントロダクションを,第2回では「データアナリティクスを行うための Platform とは」という観点で Treasure Data の魅力をお伝えできればと思っています。
※ なお Treasure Data は高度なインフラ・ソフトウェアテクノロジーを駆使しておりますが,本シリーズはデータアナリティクスを主眼においており,このサービスを支えるインフラ基盤技術に関しては詳しく言及していきませんのでご注意ください。Treasure Data の提供するインフラ基盤に強い関心のある方,そこにコミットしたいと思われている方は,是非僕まで別途ご連絡ください。当社では、多様な人材を日米両国にて絶賛募集中です。)
"Big Data Analytics Platform As a Service"
(図1)
Treasure Data は米国および日本市場を中心にデータ解析基盤をクラウドサービスとして提供するべく,データ処理の基盤技術周辺のオープンソースコミュティリーダーやトップエンジニア,オープンソースビジネスのプロが集まって設立された企業です。本社はシリコンバレーの Los Altos にある他,東京にも開発拠点を設け,日米両国にて積極的に製品開発及び事業開発を行なっています。
Treasure Data の主な使命はクラウド上で ”Big Data Warehouse & Analytics Platform” を提供し,その上で誰もがデータアナリティクスの力を入手でき,そのデータの力を持ってしてビジネス改善を図っていけるようにすることにあります。
実は「データアナリティクス」という言葉は,多くの人々が持っているイメージよりもはるかに複雑で,敷居の高いものです。簡単に言ってしまえば「ログを解析しそれによって導かれた結果を活用してビジネスを改善に導くもの」と言えるのかもしれません。しかし実際には
- 複数の種類のログが様々な場所に点在する場合,それらをどのようにして解析サーバーに集めてくるのか?(データ収集の問題)
- 日々増え続けるログをどこにどのようなフォーマットで保管していくのか?(データストレージの問題)
- 解析のための計算リソースの確保をどうするか?(計算リソースの問題)
- 解析した結果をどこに書き出し,どう活用していくのか?(解析結果の活用に関する問題)
といったログ収集から活用までにいたるあらゆるステップで問題が立ち塞がります。
データアナリティクスをきちんと始めるには,それぞれのステップで上記のような問題を解決してくれる専門家やリソース,インテグレーションのための長い時間が必要となるでしょう。Hadoop やデータベース系をきちんと運用していけるインフラ技術者,日々増え続けるデータをストレージするためのストレージサーバーの確保とそのセキュリティと可用性の担保,実際に解析を行うための計算リソース…,これらを持ってして初めてデータアナリティクスを始める事ができるのです。
(図2:データアナリティクスの前に立ちはだかる様々な技術・リソースの壁)
ではデータアナリティクスを始めるに当たって,全ての企業またはサービスにおいてこれらの人・モノのリソースおよび時間が絶対に必要なのでしょうか?
答えは「No」です。
そもそもデータアナリティクスのゴール:本当に専念すべき事は「データから有意義(かつアクショナブル)な結果を導いた上で,それらを活かしビジネスを改善していく」という部分にあって,本質的には「リソースを確保すること」でも「技術を習得すること」でも無いはずです。それらはあくまで手段・ツールであり,ここには世界中には様々な選択肢がふんだんに用意されているのですから,それらを活用しない手はありません。
Amazon Web Service はインフラ周辺の技術および種々のサーバリソースをクラウド上で提供してくれたことによって,今や誰もが簡単に Web Service を運用できる素晴らしい時代を切り拓いてくれました。
それと同じくデータアナリティクスもまた,必要な専門家やリソースはクラウド上から利用可能になり,誰もが簡単にアナリティクスの力を手に入れることができる時代がまさに今,切り拓かれていこうとしているのです。
Treasure Data もこの来るべき新しい時代の真のリーダーになるべく,先進的なサービスを世界に打ち出して行こうとしています。
Treasure Data の Cloud Data Warehouse について
(参考ドキュメント:Architecture Overview )
(※ 本章を読み始めるに当たって,まずはこちらの 3分間のチュートリアルビデオを見てもらえると良いと思います。)
Treasure Data の提供する Cloud Data Warehouse とは非常に簡単に言ってしまえば,クラウド上での
- 大規模データストレージの提供
- 大規模集計を行うための計算リソースの提供
という,データアナリティクスにおける2つの大きな柱を提供するサービスです。このサービスを活用すれば誰もが,PCとインターネットさえつながる環境にさえあれば(セキュリティの担保された)自身のクラウドストレージ上の任意のデータに対するアクセス,および大規模な集計ジョブを走らせることが可能になるのです。例えば昼下がりの喫茶店でコーヒーを飲みながら,Macbook Air から数百GBのデータに対して集計を走らせて結果を取得する,といった事が容易に行えるようになります。
もちろん,既に多くの企業が類似の製品やサービスを提供しています。その中における差別化要因として重要なポイントは,
- いかにこれらの導入の敷居(コスト・スピード)を下げられるか
- いかに自然に,簡単に1. 2.を取り扱うことができるのか
- 1. 2. の周辺技術で付加価値をどうつけていくか
等にあります。
Treasure Data では,各OS向けに用意された「Treasure Data Toolbelt」と呼ばれるツール群を導入するというたった数分の作業のみで 1. 2. のための利用準備を完了させる事ができます。あとは好きなだけ手持ちのデータをインポートし,好きなだけジョブを実行するのみです。そのジョブの実行もまた,SQLライクなクエリを実行することによって非常に簡単に扱うことができます。
(図3:Treasure Data Toolbelt では Linux ( rpm, deb ), MacOS, Windows 向けにパッケージが用意されています)
また Fluentd によるデータ収集,および柔軟な集計結果のエクスポート機能が1.2.の足回りを強力にサポートしてくれています。それでは順に見ていきましょう。
1. 大規模データストレージの提供
(参考ドキュメント:Data Import )
Treasure Data はクラウド上に巨大容量のストレージ(以後 Treasure Data Storage と呼ぶことにします)を構築しており,そこに任意のデータを様々な手段(Fluentd, Bulk Import など)でインポートすることが可能になっています。
例えば Bulk Import を利用すれば仮に数百GBのデータを持っていたとしても,効率良く安全にインポートすることが可能になります。Fluentd を利用すれば既に構造化されたログをストリーミングを通じてほぼリアルタイムに収集することが可能になります。
※ データインポートについては第3回の「クイックスタートガイド」で説明します。
2. 大規模集計を行うための計算リソースの提供
(参考ドキュメント:Data Processing )
一度データをインポートしてしまえば,以後はどこからでもコマンドラインツール ( td-command ) を通じてそれらのデータにアクセスすることができます。またそれらのデータ群に対しては(Hive互換の)SQLライクなクエリによって集計Jobを実行することができます。大規模な集計を走らせたい場合には,この計算リソースを拡充することによって高速に実行する事ができます。もちろんこれらは全てクラウド上の解析プラットフォーム上で実行されますのでローカルのマシンの性能には依存しません。
(図4:Treasure Data サービスの Architecture。Fluentd によるログ収集部分は, td-agent と呼ばれる機能強化版のツールによってまかなわれています。 )
※ さらにTreasure Data の強みは,この1.2.の機能の足回りを強力にサポートしている所にあります。今回は,「3. Fluentd によるログ収集機能の提供」と「4. 集計結果の柔軟なエクスポート機能の提供」について紹介します。
3. Fluentdによるログ収集機能の提供
(参考ドキュメント:Fluentd.org )
Fluentd は様々なデータソースに存在する(または生み出される)ログを,構造化したJSON形式でストリーミング収集することを可能にします。
Fluentd は,様々な場所に散在するあらゆるデータソースのログを JSON によって構造化されたストリームとして,ほぼリアルタイムに特定の場所( 例えば Treasure Data Storage )に集約させ続けることができるオープンソースです。またネットワーク遮断などにおけるデータの再送などの障害が生じた場合でも Fluentd が全て良きに計らってくれます。
※ Fluentdについては次回で詳しく説明する機会を設けます。
(図5:Fluentdにはコミュニティページがあります。)
4. 集計結果の柔軟なエクスポート機能の提供
クラウド上の集計ジョブによって出力された結果データは,様々なフォーマットおよび用途で後に参照されることになります。Treasure Data では,以下の4つのエクスポート手段を提供しています。(※ 一部開発中のものも含みます)
1. CSVファイルとしてローカルへ書き出し
集計結果は EXCEL や R や SPSS に読み込ませ,結果の整理や可視化,およびさらに深い解析を行う必要があるかもしれません。その場合にはCSVやTSV等のファイル形式でローカルに保存する機能を使用することができます。
2. MySQLやNoSQLへのデータベース書き出し
(参考ドキュメント:Result Output )
一方で hourly, dailyで定期的に集計 job を走らせる処理も多々あるでしょう。Treasure Data ではそれらの定期ジョブをスケジューラを利用して管理することができます。さらにそれらの job の実行結果を,任意の MySQL または DynamoDB やMongoDB,Redis といった NoSQL へ書き出すことも可能になっております。
(※ データベースの書き出し先は今後さらに拡充していく予定です)
3. Amazon S3への書き出し
他方,集計というよりもフィルタリングやクレンジングといった前処理を行った上で(来るべき時にすぐに活用できるよう),永続的なストレージに貯めておくという用途もあるでしょう。その場合に備えてAmazon S3への書き出しをサポートしています。
4. JDBC を介したフロントエンドツールへとの連携
(参考ドキュメント:Treasure Dat 3rd Party Tools )
また,Treasure Data 専用のJDBCドライバ(ベータ版として無償配布中)を用意していますので,JDBCドライバを通じて接続可能なあらゆるフロントエンドツール(解析ツール,レポートツール,ダッシュボードなど)とシームレスに連携することも可能です。また,今後 ODBC ドライバの提供も行っていく予定です。
まとめ
今回はTreasure Data の提供する Cloud Data Werehouse サービスのイントロダクションとして,いくつかの特徴を紹介しました。現在 Treasure Dataでは Sign Up Page よりトライアルアカウントを作成することが可能になっています。興味を持たれた方は是非ともトライアル申請を行った上で Quickstart Guide に進んでみてください。また本シリーズでもより丁寧なクイックスタートガイドを紹介していくつもりです。
※ ご質問・お問い合わせは support[at]treasure-data.com までお願いします。または Twitter や Facebook などを通じて僕の方にコンタクトしてくれても構いません。