Shoeisha Technology Media

EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

すごいアプリケーションを作りたいならCassandraを使ってみよう

2015/10/23 06:00

 いまや、エンタープライズな領域で利用されるNoSQLデータベースにもさまざまなものがある。そんな中でも「Cassandra」は、分散データベース管理システムとして大規模データの格納で評価されているNoSQLデータベースの1つだろう。実際にビッグデータを扱うデータベースとしてどのような点が優れているのか、DataStax社に所属していてApache Cassandraのチーフ・エバンジェリストでもあるパトリック・ムクファディン氏に話を訊いた。

止めることが許されないならCassandraを

Apache Cassandraのチーフ・エバンジェリストでもあるパトリック・ムクファディン氏
Apache 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だと思っています。

※この続きは、会員の方のみお読みいただけます(登録無料)。


著者プロフィール

  • 谷川 耕一(タニカワ コウイチ)

    EnterpriseZine/DB Online チーフキュレーター ブレインハーツ取締役。AI、エキスパートシステムが流行っていたころに開発エンジニアに、その後雑誌の編集者を経て、外資系ソフトウェアベンダの製品マーケティング、広告、広報などを経験。現在は、オープンシステム開発を主なターゲットにし...

  • DB Online編集部(ディービーオンライン ヘンシュウブ)

    DB Online編集部 翔泳社 EnterpriseZine(EZ)が提供するデータベース/データテクノロジー専門メディア「DB Online」編集部です。皆様からの情報お待ちしています。 Twitter : https://twitter.com/db_online Fac...

バックナンバー

連載:DB Press

もっと読む

この記事もオススメ

All contents copyright © 2006-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5