写真1●米10gen CEOのDwight Merriman氏
写真1●米10gen CEOのDwight Merriman氏
[画像のクリックで拡大表示]
写真2●“NoSQL”はデータ・モデルに応じて大きく3種類
写真2●“NoSQL”はデータ・モデルに応じて大きく3種類
[画像のクリックで拡大表示]
写真3●NoSQLの一つであるMongoDBを採用する金融関連情報サイト「The Business Insider」の内部構成
写真3●NoSQLの一つであるMongoDBを採用する金融関連情報サイト「The Business Insider」の内部構成
[画像のクリックで拡大表示]

 「今後12カ月以内にWebインフラを新しく立ち上げるプロジェクトの大多数は,プライマリ・データストアとしてRDB以外のデータベースを選ぶだろう」。オープンソースのデータベース開発プロジェクト「MongoDB」を支援する米10genのCEOであるDwight Merriman氏(写真1)は,「Web 2.0 Expo New York 2009」でこう予測した。

 Merriman氏は,「表と表の関係でデータを処理するリレーショナル・データベース(RDB)は,現在のWebアプリケーションの実態にそぐわない。リレーショナル・モデルに向かないデータ処理や分析処理が急増しつつある」と指摘。Webでは,写真や動画といった巨大データを多数のユーザーがやり取りし,クレジットカード情報もあればTwitterのつぶやきまでと価値の異なるデータと混在している。このため最近Web技術者の間で「NoSQL」と呼ばれている,SQLデータベース以外のデータベース/データストアの必要性が高まると述べた。

 NoSQLは「非リレーショナル・モデルを採用する次世代のデータベース/データストア」(Merriman氏)を示す。高速な分散処理の妨げとなるテーブルの結合(JOIN)などの処理は持たず,せいぜい簡素なトランザクション処理を備える程度とシンプルなことが特徴である。

 NoSQLに相当するデータベースを,Merriman氏は扱うデータの形式に応じて三つに分類する(写真2)。(1)Key/Value型,(2)列指向の表形式型,(3)ドキュメント指向型である。

 (1)Key/Value型は,キーと値のペアの格納に特化したシンプルなもの。分散キャッシュのmemcachedや,米Amazon.comのAmazon Dynamoが採用するデータ・モデルとして知られている。

 (2)の列指向の表形式型は,列方向の操作を得意とする内部構造を持つ。RDBと同じ表形式であっても,行ではなく列の扱いに特化している。米GoogleのBigTableやApache Incubatorプロジェクトの一つであるCassandraなどがこの分類に入る。

 (3)のドキュメント指向型は,XMLやJSONドキュメントといった半構造データの格納にチューンしたもの。Merriman氏がかかわるMongoDB,ApacheプロジェクトのCouchDBなどが当たる。

 三つのタイプに共通する特徴として,Merriman氏は「スキーマレスであること」を挙げる。いずれもリレーショナル・モデルでは必須のスキーマ(データ型に相当)が不要で,「迅速で柔軟な拡張が可能」(同氏)であるとする。

 最後にMerriman氏はMongoDBを利用した事例として,金融関連情報サイト「The Business Insider」を紹介(写真3)。60万ページビュー/日のアクセス数を,「1台のMongoDBサーバーと3台のApacheサーバーだけでまかなっている」(Merriman氏)という。