![日本アイ・ビー・エム アナリティクス事業部 インフォメーション・アーキテクト 野間愛一郎氏](http://cz-cdn.shoeisha.jp/static/images/article/8544/8544_001.jpg)
ドキュメント・データベース「Cloudant」とは
「Cloudantという名称を聞いたことのある方」
冒頭で野間氏は参加者にこう尋ね、セッションは始まった。Cloudantはひと言で言うとドキュメント・データベースのDBaaSである(実はCloudantにはオンプレミス版も用意されているが、本セッションではDBaaS版についてのみ紹介)。元々は米マサチューセッツ工科大学(MIT)で物理学の博士号を取った人物が、大量の素粒子のデータを容易にかつパフォーマンスよく分析できるよう、「Apache CouchDB」に足りない機能を追加して開発されたものだという。したがって「Apache CouchDB」との互換性は「限りなく100%に近い」と野間氏は説明する。
「IBMというとホストのイメージがあるかと思うが、今年度からクラウドやソーシャル、モバイル、ビッグデータに注力している。Cloudantはクラウドとモバイル、ビッグデータという3つの領域をカバーできるため、IBMとしても非常にフォーカスしているソリューション」だと野間氏は語る。「日本ではまだ知名度はないが」と野間氏は前置きしながらも、RunKeeper(ランニングやウォーキングなどのデータを記録し、GPSで追跡できるサービス)、Hothead Games(ゲーム・デベロッパー)をはじめ、「いろいろなお客さま先で使われている」と語る。
ではなぜいまドキュメント・データベースに注目が集まっているのか。その理由は、ドキュメント・データベースはその名の通り、Webやモバイルアプリケーションでやりとりされるデータで広く一般的に利用されているドキュメント(JSON)を表形式に変換することなく、そのまま格納できる点にある。 従来のリレーショナル・データベースの場合、プロジェクトの途中で設計変更をしたいと思っても、変更自体に時間がかかり、その分、アプリケーションの開発も遅れてしまっていた。特にデータベースアーキテクトが入っているようなプロジェクトでは、変更そのものを許さないということもある。しかし柔軟で拡張可能なドキュメント・データベースなら、開発しながら必要なところだけを変更することも容易にできる。つまり「開発者が自分のデザインしたいアプリケーション通りにデータのデザインができるようになる」と野間氏は言う。特に開発スピードが速いWebやモバイルアプリケーションには最適なデータベースというわけだ。
実際、ドキュメント・データベースはどのような分野に適用されているのか。ユーザーが生成するコンテンツの収集(ソーシャル、地理情報など)や、製造装置などの機械が出すさまざまな連続データの格納・集計・分析、バックオフィス系(ログデータやユーザーのクリック・画面遷移履歴、通信記録)などで使われているという。また最近はIoTの分野にも広がっていると野間氏。「今はまだ実験段階だが、IBMでは米フォード社と共に、『つながる車』の検証実験をしている、車から送られてくるミリ秒単位のデータの蓄積にドキュメント・データベースが使われている。つまり今までのリレーショナル・データベースが苦手だった分野を中心に、ドキュメント・データベースが浸透しつつある」と野間氏は語る。
続いて野間氏はCloudantの具体的な機能についても紹介した。冒頭でも述べたように、CloudantはApache CouchDBをベースに機能追加したNoSQLドキュメント・データベースである。シンプルなHTTP RESTful APIを採用しており、主な標準機能としてレプリケーション、クライアントとの同期、MapReduce(マップリデュース)、全文検索機能、地理情報関数などを搭載している。またマルチテナントおよび個別のクラスターを提供している。
さらにCloudantの面白い特徴として野間氏が指摘したのは、IBM SoftLayerだけではなくRackSpace、Microsoft Azure、AWSの上でも稼働が可能なことだ。つまり「自分たちでクラウド事業者を選ぶことができる」というのである。そしてCloudantはこれらの機能をDBaaSという形で提供するのである。ドキュメント・データベースのメリットに、DBaaSのメリットが加わるというわけだ。
通常自社でデータベースを構築する場合、システム設計はもちろん、管理タスクに加え、ハードウェア、ソフトウェアの各項目に関する不確定要素やオーバーヘッド、リスクがある。ホスティングにしてもハードウェアに関する不確定要素やオーバーヘッド、リスクが削減されるのみで、その他は残る。一方DBaaSの場合、ユーザーが担当するのはシステム設計のみとなり、その他の不確定要素やオーバーヘッド、リスクはない。
とはいえ「DBaaSはリレーショナル・データベースを中心に普及はしつつあるものの、特にNoSQLの世界ではSLAまできっちり提供できているものはそんなにない」と野間氏は指摘する。不安に感じている人もいるだろう。しかしながらCloudantなら心配は無用だという。それは「サービス内容をきちんと保証した上で提供していく」と明言しているからだ。つまりCloudantなら、不確定要素の排除、リスクの最小化、生産性の最大化というクラウドサービスならではのメリットをすべて享受できるというのである。