昨年末から「NoSQL」という言葉をネット上で見かけるようになった。字面だけを見ると「もはやSQLは必要ない」(No SQL)という意味にも取れる。だが実際には、「SQLだけに限らない」(=Not Only SQL)というのが正しいようだ。

 NoSQLとは、SQL言語を利用しない非リレーショナルデータベース(RDB)を総称した表現である。代表的なものとして、数値や文字列といったデータ(value)を1個のキー(key)にひも付けて管理する「key-valueストア」がある。

 key-valueストアで処理できるのは、keyで検索を実行してvalueの値を読み書きすることだけである。「販売単価が100円以上、1000円未満の製品情報だけを抽出」といった、SQLでは当たり前のように処理できる操作をNoSQLでは実行できない。RDBのようにデータの一貫性を厳密に保持しているわけでもない。

 過去にRDBのSQLを使って某製造業の基幹業務システムを開発した経験を持つ記者から見ると、「こんな単純なデータベースで、企業の基幹業務システムが構築できるのだろうか」という疑問を抱いてしまう。だが、key-valueストアの適用領域を知って、NoSQLが「Not Only SQL」であることに納得がいった。

膨大データを高速に処理できる

 key-valueストアを使った具体例を一つ、見てみよう。インターネット接続事業者であるインターネットイニシアティブ(IIJ)が提供するクラウド「IIJ GIO」だ。IIJは、クラウド上を流れるネットワークのトラフィック情報を解析するのに、key-valueストアを活用している。

 IIJは、ルーターやLANスイッチが出力するパケットの送信元/送信先IPアドレスやポート番号などのフロー情報を収集し、ネットワークが正常に稼働しているのかどうかを監視している。ネットワーク障害をいち早く見つけ出し、迅速に原因を特定して障害復旧を図るためだ。

 このフロー情報の収集と解析に、IIJはこれまでRDBを利用していた。フロー情報は1件当たりのデータ量こそ小さいが、5分当たり数十万から数百万件と膨大な件数のレコードが発生する。RDBはクエリー操作によって複雑な集計処理を実行できる半面、大量のデータを保持したり、高速に処理することが得意でないという欠点を持つ。IIJでも短期間のフロー情報しか管理できなかった。

 数千台規模のサーバーを運用するIIJ GIOでは、発生するフロー情報はさらに膨れ上がる。クラウドの信頼性を高めるには、長期間にわたってフロー情報を保持しておき、後から解析できるようにしておく必要がある。

 しかもIIJは、IIJ GIOを業界最安値で提供しようと考えていた。運用コストを抑えるためにも、RDBのままでは限界があった。

 RDBの限界を突破する解決策として、IIJはNoSQLであるkey-valueストアに着目した。key-valueストアは、指定したkeyごとにデータを複数のコンピュータに振り分けて、集計を分散処理させるのに適したデータベースだからだ。分散処理を実現できれば、コストを抑えながらパフォーマンスをほぼ無制限に高めることができる。

 IIJは、key-valueストアを活用した独自の分散システム「ddd」(distributed database daemon)を開発。IIJ GIOの運用基盤に実装している。数百億超のレコードを保持し、いろいろな条件で高速にデータを抽出することを可能にした。

ネット企業が相次ぎ採用

 NoSQLは、インターネット関連企業が積極的に採用を進めている。大手ソーシャル・ネットワーキング・サービス(SNS)のミクシィは「Tokyo Tyrant」、同じく大手SNSのグリーは「Flare」、大規模ショッピングサイトを運営する米Amazon.comは「Amazon Dynamo」、同じく楽天は「ROMA」と呼ぶ独自のkey-valueストアを開発している。

 ブロードバンドが普及して利用者が急増し、インターネットで発信される情報は膨張の一途をたどっている。インターネットは、それ自体が巨大なデータベースになろうとしている。そこに散らばる無数の情報を低コストで効率よく管理する手法として最適化されたのが、NoSQLなのである。

 逆に言えば、RDBがこれまで担ってきた領域ではNoSQLは必ずしも最適な手法ではない。クラウド関連エンジニアがそろって指摘するのは、「企業の会計システムに求められるデータ処理はNoSQLでは担えない」ということである。

 NoSQLはRDBを駆逐する存在ではない。データベースを最適化するための選択肢が、新たに一つ加わったに過ぎないのである。

 新たな選択肢として注目を集めるNoSQLについて、4月2日に発行した「みてわかるクラウドマガジン vol.1」で詳しく取り上げた。本書ではNoSQLをパソコンにインストールして、実際に利用するまでの手順をきめ細かく解説している。ぜひ、書店で手にとってご覧いただき、NoSQLを体験していただければと思う。