どんな事でもお気軽にお問い合わせください
0120-803-656
24時間受付いたします

Googleが提供する超高速なクエリ「BigQuery」とは?


技術営業部の大原です。

前回のビヨンドブログで、自身が記載した【IaaS比較】「Amazon Web Services」と「Google Compute Engine」の比較ブログでも少し触れたましたが、今回は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件のレコードをカラムごとに分割して、別々のストレージに配置することで、「トラフィックの最小化」と「高い圧縮率」でのデータ保存が可能となり、クエリ実行時の高速データ参照を実現しているそうです。

02_s

※左図 : 従来RDBSの「レコード=行指向」
※右図 : BigQueryの「カラム=列指向」
画像引用元:Dremel: Interactive Analysis of Web-Scale Datasets

ツリーアーキテクチャ

BigQueryではツリー式で分散処理する構造になっています。
root serverはクライアントからクエリを取得し、直下のintermediate serversを経由し、leaf serversがクエリ処理を実行することで、
上記のカラム指向で配置したデータを並列処理し、そこで読み取った結果を高速に集約してクエリの結果を出しています。

03_s
画像引用元: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


お問い合わせ 採用情報 エンジニアブログ
ISO27001認証
Contact PageTop
株式会社ビヨンド

© beyond Co., Ltd. All rights reserved.