NewSQLと呼ばれる、新たなデータベース分野が確立しつつある。高速処理というNoSQLの強みを生かしながら、RDBの使い勝手を加えようというのが製品のコンセプト。キーとバリューから成るKVSに対して、なぜ、SQLによるアクセスや、トランザクション処理が可能なのか。その仕組みを明らかにする。
「NewSQL」を知っているだろうか。NECが2012年2月に発売開始したデータベース「InfoFrame Relational Store」がその一つ。大量データの高速処理に強い「KVS(キーバリュー型データストア)」に対して、SQLを使ってアクセスできる。従来のRDB(リレーショナルデータベース)、NoSQL(Not Only SQL)に続く“第3”のデータベースと言える。
NewSQLとしては、オープンソースの「VoltDB」が有名だ。その登場の背景には、NoSQLの存在がある。NoSQLは高速処理が持ち味だが、多くの製品はSQLを使えないだけでなく、トランザクション制御のニーズにも応えられない。
なぜならNoSQLは、非構造化データを含む大量データを、高速かつ単純に読み書きすることに重きを置いているからだ。ログ解析などを想定し、スピードや拡張性でRDBをしのぐこと。NoSQLの目標はそこにある。
実現のためにNoSQLが選んだのが、SQLを使わずに、データをシンプルに出し入れする技術。その一つが、ID(キー)に対して値(バリュー)を組み合わせて格納するKVSである。グーグルの「Bigtable」「Apache Hbase」「Oracle Coherence」、楽天の「ROMA」など、様々な製品が生み出された。
シンプルなデータ構造を特徴とするNoSQLは、スケールアウトが容易だ。ただし、トランザクション機能を備えないことに加え、SQLのような共通言語がないために開発効率が悪いことが弱みとされてきた。NoSQLのシンプルさはそのままに、RDBの使い勝手を実現することがNewSQLのコンセプト。具体的には、KVSに対するSQLでのアクセス、およびトランザクション機能の実装である(表)。InfoFrame Relational Storeの仕組みを見よう。