NoSQLが普及し始めた理由は、1秒当たりの入出力件数が100万を超えるような処理を、リアルタイムに実施する必要性が高まっているからだ(図1)。ガートナー ジャパンの堀内秀明リサーチ部門アプリケーションズマネージングバイスプレジデントは、「RDBが備える豊富な機能は不要で、高速かつ安価なデータベースを求めるユーザーがNoSQLに着目している」と分析する。
利用事例も急増
ここにきて、利用事例も増えてきた。「会員の購買履歴の分析にかかる時間が1日では話にならない。最新の購買履歴を5分でサービスに反映できなければ、販売機会のロスにつながる」。自社開発のNoSQL「ROMA」を、商品のレコメンド(推薦)機能などに展開している楽天の森正弥執行役員兼技術研究所長はこう言い切る。
楽天が処理時間にこだわるのは、会員の購買履歴を解析してレコメンド商品を提示するのに1日かかると、ユーザーが購入した商品と同じものがレコメンドされかねないからだ。楽天の会員数は、2010年9月時点で約6700万人。楽天トラベルの「最近見た宿」をはじめとして、「詳細は明かせないが、ROMAは楽天のかなりのサービスで使われている」(森所長)。いずれも分単位で解析を終えるためには、データの入出力が高速なNoSQLを必要とした。
自社開発のNoSQL「ddd」をトラフィック解析に利用しているインターネットイニシアティブ(IIJ)の前橋孝広プラットフォームサービス部アプリケーションプラットフォーム課シニアエンジニアは、「数十億のパケット情報を生データのまま格納、解析するには、NoSQLが不可欠」と話す。数十億のパケットを格納・解析するという要件に対して、RDBでは性能が足りなかった。
以下では、NoSQLの特徴を見たうえで、RDBとの使い分けを探る。最後に、さらなる高速化の追求や、クラウド環境での利用に向けたデータベース製品の進化を説明する。