止めることが許されないならCassandraを
Q:Cassandraは、NoSQLのマーケットにおいてどのような位置づけにあるデータベースですか?
ムクファディン:NoSQLの中でもCassandraはオペレーショナルなデータベースになります。ユーザーの近いところにあって、Oracleのようなデータベースをリプレイスする存在でもあります。Cassandraはインターネット時代になり、スケーラビリティがありなおかつ稼働し続けるというニーズに応えるために出てきました。何1,000万、何億といった莫大な数のユーザーが利用しても稼働し続ける。そのために、マルチデータセンターでもアクティブ、アクティブの分散構成で、ダウンタイムのないデータベースとなっています。
Q:NoSQLデータベースは他にもさまざまなものがあります。それらとCassandraの大きな違いはどのようなところでしょうか?
ムクファディン:有名なNoSQLデータベースとしてはドキュメントデータベースの「MongoDB」があります。これはJSONベースで柔軟性の高いデータベースです。「CouchDB」はKey-Valueストアで、インメモリで動くことが特徴でしょう。「HBase」はHadoopのエコシステムの1つであり、Hadoopの中でデータを扱うためのものです。その他にも「Riak」などもありますが、これもまたKey-Valueストアです。
これらに対しCassandraは、フルスキーマのNoSQLデータベースです。Riakと近い存在とも言えます。特長はユーザーに近く、ダウンタイムがないビジネスで利用するためのデータベースとして生まれていることです。止まってしまうとビジネスに影響の出るような領域で利用することを前提としています。
実際にそういう目的で、スタートアップはもちろん大企業でもCassandraは使われています。SONY PlayStation Networkでは、かつてセキュリティの問題で30日間ものダウンタイムを経験しました。2度とそんな状況を起こしたくないと選んだのがCassandraでした。データが1つのサーバーにしかないと、そこに障がいが発生した際に迅速に復旧できないことがあります。さらに拡張性の面でもCassandraの評価は高いものがあります。Oracleのようなデータベースでは容易に拡張できないような場合に、Cassandraを選択するユーザーがたくさんいます。
Q:データを分散してさらに拡張性を確保しようとすると、データの一貫性が犠牲になりませんか?
ムクファディン:当初は、データベースのデータの整合性について理解するのには難しいものがありました。でもよくよく考えてみると、システムのさまざまな処理においてはデータの一貫性の確保というのがそれほど大きな問題にはならないことが分かってきたのです。Cassandraにおいては、むしろJoinがないといったことや、クエリーの機能性のほうが今では問題になります。
Cassandraでは、独自のデータモデルの考え方を理解することがもっとも重要です。これがしっかりしていれば、NoSQLデータベースで問題と思われるようなことはほとんどうまくいきます。
Q:Cassandraのデータモデルを理解するのは難しいですか?
ムクファディン:たしかにリレーショナルに慣れている人には難しい面はあります。私自身、ここ3、4年はCassandraのデータモデルを理解してもらうことに力を注いでいます。データモデルについては、まだまだディスカッションが必要だと思っています。
私は14年間ほどOracleデータベースの管理者をやっていました。私のように長い間リレーショナルなデータモデルに慣れてきた人間には、データモデルの議論をしている際にここが課題だったのかと分かる瞬間があります。「ああ、なるほどな」という瞬間があるのです。
ライバルはOracle Database
Q:今までの話を聞いていると、「Oracle vs Cassandra」という構図が見えてきます。Cassandraサイドとしては、Oracleのような商用リレーショナルデータベースをどう捉えているのでしょうか?
ムクファディン:リレーショナルデータベースは、インターネットの規模感やこれから出てくるIoTの世界で利用するデータベースとしては、拡張性の面などから必ずしも適しているとは言えません。Cassandraが解決しようとしているのが、まさにこのIoTのような領域のニーズです。そう考えると、IoTなどの分野においては、Oracleのようなデータベースとかち合うことはないでしょう。実際のところ、Oracleなどに取って替わろうというものではありません。適材適所でデータベースは選ぶべきです。野球をするのにゴルフのクラブを使わないのと一緒です。なので、Cassandraでデータウェアハウスを作るといった使い方はお薦めしません。
Q:IoTなどの領域で使うデータベースに最適だとは言うものの、Cassandraはまだまだ発展途上にあるのではと思います。現状のCassandraの弱点はどんなところでしょうか?
ムクファディン:Oracleのようなデータベースには、10年、20年とかかって積み上げてきた実績があります。Cassandraはまだ6年ほどで、当初挙げられていた課題はここ最近になって解決してきたところです。今、我々が注力しているのは、使いやすさ、管理のしやすさです。あとはインデックスの仕組みにも力を入れています。これは、扱いやすさにつながるものです。もう1つ解決したいのが、扱えるデータのサイズです。1つのノードで使えるデータの量が増える方向にあります。これを拡大するのも次のステップの課題です。
さらに、タイムシリーズデータの扱いにも取り組んでいます。時系列のデータを扱いやすくする。これはIoTが普及してくると、重要になると考えています。その他にも不正検知などでもタイムシリーズの機能は重要です。
Q:市場ではリレーショナルデータベースの競合がNoSQLデータベースというようにNoSQLデータベースを一括りに見てしまう傾向もあります。Cassandraには、競合となるような存在はありますか?
ムクファディン:もっとも大きな競合はOracleだと思っています。NoSQLのベンダーはどれをとってもビジネスのサイズはまだまだ小さい。一方のOracleは極めて大きなマーケットを持っています。Oracleのマーケット規模に比べたら、NoSQLを全部合わせても50分の1くらいしかないでしょう。そう考えれば、競合はやはりOracleだと思っています。