2000年代半ば、GoogleのアナリストはMapReduceで大規模な計算を実行できたが、各ジョブには数分から数時間かかり、データを対話的に探索するには遅すぎた。エンジニアたちは、ペタバイト級のデータに対するデータベース形式の問い合わせにウェブ検索並みの速度を求めていた。

2006年から本番稼働していたDremelは、2つのアイデアを組み合わせた。ネストされたレコードをエンコードする列ストライプ型ストレージにより、クエリは必要なフィールドだけを読み取る。そして多段のサービスツリーがクエリを数千のノードに展開し、応答を集約する。2010年のVLDB論文は、3,000ノードのクラスタ上で850億レコードのテーブルをスキャンし、ほとんどのクエリが10秒未満で完了したと報告している。

Googleは2010年5月のI/Oカンファレンスでこの技術をBigQueryとして発表し、2011年11月にGUIとREST APIを追加、2012年5月に一般提供を開始した。ハードウェアを購入せずにテラバイト級のデータを分析できると謳っていた。

データを列単位で保存し、数秒で回答する

列指向レイアウトは読み取るバイト数を削減する。クエリは必要なフィールドだけに触れる。

ツリー実行は数千台のコモディティマシンに並列化する。

ネイティブなSQLライクなクエリが多段のMapReduceパイプラインを置き換える。

インサイチューアクセスはGFSやBigtableから直接データを読み取り、ロード手順を不要にする。

データを書き込まれた方法ではなく、これから行う問い合わせを中心に整理する。必要な列だけを読み取り、処理をツリーの下流に押し出すことで、バッチ処理を要したジョブが会議中に収まるクエリになる。

BigQueryは主要なクラウドデータウェアハウスの一つとなり、数千の企業に利用され、Dremelの列指向フォーマットはApache Parquetなど後続のシステムに影響を与えた。この論文はビッグデータシステム分野で最も引用される研究の一つであり続けている。

出典をたどる

出典

  1. Dremel: Interactive Analysis of Web-Scale Datasets Proceedings of the VLDB Endowment · comp.nus.edu.sg
  2. Google opens BigQuery cloud analytics to all ZDNet · zdnet.com ·
  3. Big Data Analysis Field Expands with Launch of Google BigQuery Database Trends and Applications · dbta.com ·