Google の超高速なデータウェアハウス「BigQuery」とは?
技術営業部の大原です。
今回は Google が提供しているフルマネージドのデータウェアハウス「BigQuery」にスポットを当てて記載します。
BigQuery | Google Cloud Platform — Google Cloud Platform
そもそも BigQuery って?
BigQuery とは、Googleが提供するビッグデータ解析サービスで、2012年の Google I/O(Googleが主催する開発者向けのイベント)で公式サービスとして発表されました。
元々は、Google 社内で利用されていた Dremel(ドレメル)というデータ解析用のシステムがあり、それを外部ユーザー向けに改良しサービス利用できるようにした・・・という歴史があります。
日本のシステムベンダーからも、ビッグデータ解析サービスやソフトウェアなど、多くのサービスが提供されていますが、
BigQuery では数TB(テラバイト)もしくは数PB(ペタバイト)にも及ぶデータセットに対して、SQL に似たクエリを実行し、たった数秒・数十秒単位で処理をおこない、検索結果を返すというものです。
BigQuery が高速な仕組み
BigQuery が高速なのは、以下2つの仕組みを使っているからです。
カラム構造データストア
従来の RDBS では行単位でデータを保存しており、レコード指向(=行指向)は、1件のレコード全体を同じストレージに配置します。
しかし、カラム指向(=列指向)では、1件のレコードをカラムごとに分割して、別々のストレージに配置することで、「トラフィックの最小化」と「高い圧縮率」でのデータ保存が可能となり、クエリ実行時の高速データ参照を実現しています。
※ 左図 : 従来 RDBS の「レコード=行指向」
※ 右図 : BigQuery の「カラム=列指向」
画像引用元:Dremel: Interactive Analysis of Web-Scale Datasets
ツリーアーキテクチャ
BigQuery ではツリー式で分散処理する構造になっています。
root server はクライアントからクエリを取得し、直下の intermediate servers を経由し、leaf servers がクエリ処理を実行することで、上記のカラム指向で配置したデータを並列処理し、そこで読み取った結果を高速に集約してクエリの結果を出しています。
画像引用元:Dremel: Interactive Analysis of Web-Scale Datasets
- カラム構造データストア
- ツリーアーキテクチャ
上記2点が BigQuery が高速である理由となります。
※ また5~10億行以上というペタバイトクラスの膨大なデータでも、数秒で結果が出るという情報もあるようです。
気になる料金は?
ただ BigQuery を活用するにしても、やはり料金は気になるところなので、簡単にまとめてみました。
● ストレージ容量 = $0.020 / GB / 月
・BigQueryに保存されているデータ容量
※ データ1TBでも「$20 = 約2,000円 / 月」
● クエリによる処理容量 = $5 / TB
・クエリ実行時にスキャンされるデータ量
※ クエリによるデータ処理は「毎月1TB」までなら無料
● ストリーミングインサート = $0.01 / 200MB
・データのリアルタイム収集で利用される API で、テーブルにインサートしたデータ量に対して課金
まとめ
とにかく安いので、お試しに使ってみてはいがでしょうか?(Googleアカウントがある方なら、すぐに始めることができます)
■ BigQuery のサービス詳細は ▼【コチラから】▼
https://cloud.google.com/bigquery/?hl=ja