Treasure Data Platform で始めるデータ分析入門 〜3. Data Storage〜
本シリーズではデータ分析を以下の7つのレイヤーに分解し,各々について解説していくものとします。(Slide Shareの資料は常時更新されます。)
- Data Collection
- Data Storage
- Data Management
- Data Processing
- Data Processing Design Part.1 Part.2 Part.3 Part.4 Part.5 Part.6
- Data Visualization Treasure Viewer, MetricInsights, Tableau
- Data Visualization Patterns Part.1 Part.2 Part.3
本日は「2. Data Storage」にフォーカスを当てます。
Treasure Cloud Storage は,前回紹介した源泉である種々のデータソースから Bulk Loader,Treasuer Agent 収集され流されてくるログを無限に貯める大きな湖のようなものです。
Treasure Data の Collection ツールによって収集されるログはキーバリューの集合であるJSON形式(入れ子構造も可能だが,パフォーマンス・後の使いやすさのため,フラットな構造を推奨しています。)であり,Treasure Cloud Stotrage ではそのキーとバリューの対応を保持したそのままの形式で格納されていきます。
Treasure Cloud Storage ではクラウド上に列指向データベースを構築しており,「行方向」の一行一行のレコードのスキャンよりも,カラムごとの「縦方向」のスキャンに特化しています。これによって非常に多数のカラムを持った大規模データであっても,もしデータの抽出・集計範囲が少数のカラムのみを参照するのであればこの時は非常に効率良く処理を実行すす事ができます。
それでは従来のストレージやSQLと比較をしてみましょう。
一般に(クラウド)ストレージとよばれるものはデータをテキストやCSVなどのファイルとして保存されます。これは非常に手軽なものですが,データ分析段階において何度もそのファイルを参照する時には毎回ファイルのオープンクローズが必要になってしまいます。また,圧縮・解凍もマニュアル入出力の差違にマニュアルで実行する必要があり,データ量節約のために圧縮されたファイルは読み込みの前に解凍処理が伴うため,データ分析はいっそう面倒なものになってしまっていました。
一方,SQLとよばれるデータベースでは,データを構造化されたテーブルの形式で保存するため,SQLクエリで必要なデータの抽出・集計が可能になっています。また,インデックスを作成しておけば特定のクエリに対して非常に高いパフォーマンスを発揮します。しかしながら,SQLではデータ量が多ければ多いほどクエリの実行および列の追加が大きな負荷となってきてしまいます。また,ノードの分散に特化していないので,その運用管理には専門スペシャリストの手が必要になります。
近年,そんなSQLの悩みを解消するために(正確には特定の目的に限定特化することで弱点を克服した)No SQLが登場してきました。Mongo DB は柔軟な入れ子も許容されたJSONライクなBSON形式での保存が可能で有り,Riak はデータの分散を容易にかつ高い次元で実現してくれています。Treasure Data Cloud も思想的には彼らと同じ分類に入るということができます。
ではここで改めて Treasue Data Cloud のメリットを考えてみましょう。上図はあえてメリットしか書きませんでしたが,
- スキーマの変更に強い。
- データは自動圧縮されて保存されるので容量の節約ができる。
- データの管理運用を任せておけるので人材コストが節約できる。
また課金体系もレコード数に応じたものであり,価格設定も非常にリーズナブルな設定となっているのも見逃せません。(あまり言いたくありませんが,無料ユーザーでも十分な容量を格納することができます。)もはやストレージに多大なコストかける時代は終わったのです。
もちろんサービス提供側にとってはストレージにコストを乗せれない分,その後にいかにそのデータを活用してくれるか, i.e. 計算ノードを消費し,APIをたくさん叩いてもらい,自社のレポーティングサービスを利用してもらうところを工夫することが肝になってきます。
次章で紹介する Treasure Management Console は,データを最大限活用してもらうために創意工夫された Web UI ツールです。Treasure Cloud Storage の情報,例えばデータベース名,テーブル名の一覧や格納されているレコードの参照,またクエリの実行やスケジューリングがここから可能になっています。
ここであえて弊社のサービスポジショニングを振り返ってみることにします。Treasure Data が自社データセンターなどのオンプレミスを補完関係にあるといったのは,オンプレミス上では保持が難しい(データ形式・量的な意味で)「新しい」データソース(全章参照)をTreasure Cloud Storage で運用することで効果的な連携が可能になるからです。
さらにもう一点,データ分析というプロセスは試行錯誤の繰り返しの上にゴールが達成されるものです。そのためには何度も何度もデータをこねくり回し,処理不可が大きくならないように中間データやテンポラリデータを別途保持していく必要があります。もしそのデータ群をオンプレミスで運用するとするならば,それらの恐ろしいデータ量のために新しい「箱」をたくさん積み上げないといけません。それをクラウド上で行う際とのコストの差違は圧倒的に変わってくるのです。
Treasure Data Storage は大規模なデータに対しても高いパフォーマンスをはじき出すために設計・チューニングされた「先進的」なストレージであると同時に,分析者がデータ管理・運用の心配をすることなく,かつコストを気にかけず試行錯誤してもらえることに最大限に配慮された「親切で経済的」なストレージでもあるのです。
Treasure Data では Treasure Cloud Storage およびその先の処理を試してもらうための無料プランを提供しています。まだの人は是非ともサインアップして頂き,体感してもらえればと思います。
次回は Data Management についてです。