グーグルのBigQuery、高速処理の仕組みは「カラム型データストア」と「ツリー構造」。解説文書が公開

2012年11月19日

SQLのクエリに対応し、3億件を超えるデータに対してインデックスを使わないフルスキャン検索で10秒以内に結果を出す。グーグルのBigQueryは大規模なクエリを超高速で実行する能力を提供するサービスです。その内部を解説する文書「An Inside Look at Google BigQuery」(PDF)を公開しました。

グーグルは大規模クエリを実行するサービスとして社内でコードネーム「Dremel」を構築しており、2010年にそのDremelを解説する文書「Dremel: Interactive Analysis of Web-Scale Datasets」を公開しています。BigQueryは、そのDremelを外部公開向けに実装したものです。

グーグルはこのDremel/BigQueryが持つ大規模分散クエリの能力を活かして、以下の分野で活用しているとのことで、グーグルの社内プラットフォームとしても重要なサービスになっています。

カラム型データストア

公開されたドキュメントによると、Dremel/BigQueryが高速にクエリを実行するために備えている特徴が「カラムナストレージ」(Columnar Storage、カラム型データストア)とツリーアーキテクチャ(Tree architecture)です。

カラム型データストアは、通常のデータベースでは1行ごとにまとまって格納されるデータを、列(Column)ごとにまとめて格納する方式です。

fig

グーグルはこの方式には以下の利点があると説明しています。

ただしカラム型データストアには欠点もあります。それはデータの更新操作が苦手なこと。Dremel/BigQueryでもこの欠点は同様であり、アップデートの操作は用意されていません。

こうしたカラム型データストアの特徴については、Publickeyの以前の記事でも触れています。

ツリーアーキテクチャ

BigQueryのもう1つの特徴が、クエリを大規模分散処理に展開するためのツリーアーキテクチャです。

fig

クライアントからクエリを受け取るroot serverから、実際にクエリ処理を実行する多数のleaf serversに対して、クエリがツリー構造で広がっていくことで、大規模分散処理を実現しています。

この2つのテクノロジーが、Dremel/BigQueryの高速性のカギだと説明されており、MapReduceと比べてアドホックなクエリの繰り返しが得意で、OLAPやMOLAPに比べてフルスキャン性能がきわめて高い点が利点だとしています。

このエントリーをはてなブックマークに追加
follow us in feedly

タグ : Google , クラウド



≫次の記事
マイクロソフトはYammerからDevOpsを学ぼうとしている
≪前の記事
Engine Yard、クラウドと同じRoR/PHP/Node.js環境をローカルに構築する「Engine Yard Local」無償公開

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed



Publickey 最新記事 10本

Publickey Topics 最新記事 10本


PR - Books


fig

fig

fig

fig



blog comments powered by Disqus