IBM Cloudant とは何ですか?
IBM Cloudantは、 HTTP を備えたデータベース・アズ・ア・サービス DBaaS です IBM Cloudで動作し、常時稼働のアプリケーション用に、JSONデータを安全に、柔軟に、かつ高い可用性を備えて保存します。
IBM Cloudant はオープンソースデータベース Apache CouchDB の親戚のような存在で、サービスとして提供されるため、顧客はサーバー管理、ネットワーク、負荷分散、データベースのアップグレード、チューニング、ライセンス料などを心配する必要がありません。暗号化された HTTP 経由で利用でき、使用量とデータ量に応じて課金されます。
IBM Cloudantは IBM Cloudに存在し、データベースと呼ばれるコレクションにJSONドキュメントを保存します。 データベース内の各JSONドキュメントは、IBM Cloudantがアベイラビリティゾーンの停止中であっても利用可能な状態を維持できるように、(サポートされている場合、複数のアベイラビリティゾーンにわたって)3重に保存されます。
最後に、データを地域間で双方向にレプリケートできる。 アプリケーションは最小限のダウンタイムで地域の障害に耐えることができます。
クエリーとインデックス作成
IBM Cloudantには多くのクエリーオプションがあります:
- 文書の主要な「
_id
フィールドを使用して、個々の文書を効率的に検索します。 - 顧客定義のセカンダリキーによるデータ選択と集計のための MapReduceビュー。
- ApacheLucene ベースの検索インデックス で、フリーテキストのマッチングや、1 つ以上の指名されたインデックスされたフィールドに対するクエリを行います。
- IBM Cloudantクエリ, a MongoDB-like declarative query language that sits atop MapReduce views, search indexes and the primary index to provide a higher-level API.
利点
柔軟性
リレーショナル・データベース とは異なり、IBM Cloudantドキュメントのスキーマをデータベースに宣言する必要はありません。 この柔軟性により、開発者はアプリケーションのオブジェクトをJSONに変換してデータベースに簡単に格納することができ、コストのかかるデータベーススキーマの移行を行うことなく、後で設計を変更することができる。
スケーラビリティー
IBM Cloudantは、非常に小規模でゼロコスト(当社のLiteプランの場合)から、保存データ量と1秒あたりの読み取り、書き込み、クエリAPI呼び出しの割合に比例した線形課金コストで非常に大規模なものまで拡張できるように設計されています。 IBM Cloudantには、数百のデータベースがあり、データベース1つあたり数十億のドキュメントを保存できる可能性があります。 合計すると IBM Cloudantは数十テラバイトのデータを保存できます。
有料プランは、予想される需要に合わせたり、静かな時間帯にスケールバックするために、ウェブUIまたはAPIを介してスケールアップおよびスケールダウンすることができます。
地域間同期
IBM Cloudantの レプリケーション により、2つ以上のIBM Cloudantデータベースの変更を、同じインスタンスでも、別のインスタンス(おそらく別の場所)でも、双方向に書き込むことができます。 これにより、より高い可用性を実現するために、地域をまたいだトポロジー を展開したり、地理的に分離したバックアップを提供したり、データベースのCDNのように、アプリケーションのデータの書き込み可能なコピーをユーザーの近くに置いたりすることができる。
常時可用性
IBM Cloudantサービスは、世界中のIBMエンジニアによって24時間365日管理されています。 ハードウェアのリフレッシュ、ディスクドライブの交換、オペレーティングシステムのアップグレード、IBM Cloudantコードのリリースはすべて、ダウンタイムなしで処理されます。
HTTP API、ダッシュボード、およびSDK
IBM Cloudantには HTTP があり、各インスタンスには ウェブUI が備わっているため IBM Cloudant、データベース、インデックス、ドキュメントの管理が容易です。
IBM Cloudantは、アプリケーションが Node.js、Java、Python、Go でプログラム的にデータベースとやり取りするためのSDKを提供します。
IBM CloudantのSDKは、IBMのIAM(Identity and Access Management)サービスと透過的に相互作用し、データベースレベルでIBM Cloudantインスタンスへのアクセス制御を提供します。