多彩なアプリケーションの開発を可能にする便利な機能
JSONの分析やテキストの検索
Cloudantでは、MapReduceを使った高速な分散処理の実現に加え、日本語に対応したテキスト検索機能も実装しています。
地理情報の照会・分析
モバイル・IoTのアプリケーションでは個々の位置情報を利用したアプリケーションの開発が盛んです。Cloudantには地理情報関数が実装されており、距離・面積・空間を条件とした位置情報の照会や、最近接や予測経路などの分析などの処理を実行できます。
米国のある損保会社では、Cloudantのこの機能を活用し、竜巻の発生時にタブレットで被害があった場所の地理情報を取得してサーバーに送り、サーバー上の気象情報と合わせて、どこにどれだけの被害があったかを地図上に表示するアプリケーションを提供しています。また、ロンドンで空いている駐車場を地図上に示すパーキングサービスアプリの事例もあります。
モバイルアプリケーションとの連携
Cloudantでは、サーバー上のデータベースに加え、モバイル端末上のローカルデータベースを提供しています。サーバーと通信できない状況ではローカルデータベースにデータを読み書きし、通信が可能になったときにサーバー上のデータベースと同期をとることができます。
RunKeeper社は、iOS/Android用フィットネスアプリを提供するスタートアップ企業です。このアプリは、ウォーキングやランニングといったユーザーの活動に関し、地図へのコース表示や、走行距離、消費カロリーなどの記録などを行います。情報はモバイル端末に保存され、適宜サーバーのデータベースに同期されます。
同社では当初、アプリのバックエンドでRDBを利用していましたが、ユーザー数が増えるにつれ、パフォーマンスにボトルネックが発生したことから、Cloudantに移行しました。現在では3,000万人以上のユーザーが利用しています。Cloudantの便利な機能だけでなく、後述するスケーラビリティの高さがよくわかる事例といえるでしょう。
RunKeeper社の事例は、こちらのページから詳細を記したPDF文書をダウンロードできます。
RDBとの連携を実現するWarehousing機能
NoSQLデータベースを利用しデータが蓄積されると、そのデータをSQLで参照したいというニーズが必ず出てきます。そのような場合も、Cloudantはボタン1つで自動的にSQLを使って参照可能な環境を準備できます。
Cloudantでは、非構造化データを自動的に構造化データに変換し、クラウド型のデータウェアハウス「dashDB」と自動連携するWarehousing機能を利用することができます。Cloudantのコンソールから [Warehousing]-[Create a Warehouse]のメニューを選ぶだけで、「JSONデータの解析 → スキーマ定義 → 表の作成 → データのロード」が実行されます。
センサーデータやログの一部を抽出し、RDBで分析や集計を行いたいというニーズはあるものの、最初は大量にあるデータのどの部分を使ってどのような分析や集計を行えるかがわからない場合があります。また、RDBの導入にはコストも時間もかかります。そのため、まずは低コストで簡単に利用できるCloudantにデータを保存して、MapReduceを利用した分析・集計を実施し、より深い分析をRDBで実施する場合に、Warehousing機能によりすぐにRDBにデータを投入する、といった使い方が可能です。
RDBとの連携を可能にするWarehousing機能は、CloudantとdashDBの連携によって実現される、他のNoSQLデータベースにはない独自の機能です。
運用の手間やコストの軽減を実現する機能
高いスケーラビリティにより、スモールスタート後、必要に応じてスケールアウト
マネージドサービスの利点の1つは、データ容量やビジネス規模に合わせて柔軟に対応できるスケーラビリティです。トランザクションやデータ容量の増加に応じてノードを追加し、データベースをスケールアウトできます。ノードを追加するには、IBMのサポートに連絡するだけです。
モバイルゲームアプリの開発を行うHothead Gamesでは、当初はCloudantで6ノードを使用していました。公開したゲームが話題を呼び、ユーザーが急増したため、6か月間で約200ノードまで拡張しています。
高可用性を確保するクラスター構成
Cloudantではマスター-マスター型のクラスタリングを行います。すなわち、すべてのノードに同じデータが格納されるため、どこかのノードに障害が発生してもサービスを継続できます。
データのレプリケーションも容易で、日本国内と海外など距離が離れたクラスターをレプリケーションすることも可能です。ネットワーク障害などでいずれかのデータベースに書き込みができなくても、RDBのようにすべてのデータベースへの書き込みが保留されるということはなく、データは書き込みが可能な他のノードに保管され、その後すべてのノード間で同期されます。バージョン管理機能(MVCC)により、データの書き込み順序は正しく保たれます。
また、更新データは書き込み時にメモリではなくログに記録されます。そのため、書き込んだデータは障害時に失われることなく保証され、高い可用性を確保できます。
IBM Cloudantのこうした構成や機能、性能などについては、こちらのページから詳細を記したPDF文書をダウンロードできます。