Cosmos DB ことはじめ

Microsoft Japan Data Platform Tech Sales Team

大蔵 一功

Cosmos DB とは

Cosmos DB は、Microsoft Azure が提供する No SQL データベースサービスです。複数のデータモデルを利用することができ、簡単な操作でリージョン間でのデータレプリケーションやスケールの変更を行うことができます。

デバイスから発生するセンサー系のログや、 EC サイト上で取引される商品のカタログデータの格納に利用されます。また、 Cosmos DB に格納されたデータは、 Azure Search や Power BI 等の、Microsoft Azure 上で提供される他のサービスと組み合わせて、簡単に利用することができます。

Azure Cosmos DB は Microsoft のグローバルに分散されたデータベース サービスであり、柔軟なスケールアウト、短い待ち時間の保証、5 つの整合性モデル、包括的な保証を提供する SLA を特徴としています

Cosmos DB の特徴

Cosmos DB は、次のような特徴があります。

  1. グローバルデータ分散
  2. 複数データモデルのサポート
  3. 柔軟なスケーラビリティ
  4. 包括的なSLA

グローバルデータ分散

Cosmos DB は、全 Azure リージョンで利用可能です。最初に Primary となるリージョンを選択します。Secondary リージョンに対するデータのレプリケーションは Azure Portal や PowerShell, SDK で簡単に設定することができます。Secandary リージョンは複数選択することができます。

複数データモデルのサポート

Cosmos DB では、 DocumentDB / MongoDB / テーブル / グラフ 4 つの API をデータモデルに応じて選択し、使用することができます。

API データモデル クエリ
DocumentDB ドキュメント SQL
MongoDB ドキュメント MongoDB
テーブル キー / バリュー
グラフ グラフ Gremlin

柔軟なスケーラビリティ

Cosmos DB は、Request Unit( 以下、 RU) といわれる値で、予めスループットを予約します。 RU は必要に応じてオンラインで更新することが出来ます。また、データを格納するストレージについては、ユーザが意識することなく自動でスケールします。 RU とストレージは独立してスケールします。

包括的なSLA

Cosmos DB では、可用性・スループット・データ整合性・レイテンシーのに対して SLA が定義されています。それぞれ、99.99% という非常に高い SLA が定義されています。

Cosmos DB の利用開始

Azure Portal からのプロビジョニング

Azure Portal にて、Cosmos DB を検索・選択し、 [ 作成 ] をクリックします。

cosmosdb_deploy_1 cosmosdb_deploy_2

次に、 Cosmos DB のアカウントを作成します。アカウント ID 、API、リソースグループ、リージョンを選択し、[ 作成 ] をクリックします。

image

API は、次の 4 つ API から、1 つ選択します。

image

完了後、概要ページからコレクションを作成します。[ コレクションの追加 ] をクリックします。

image

コレクション ID 、 ストレージ容量、初期スループット容量、パーティションキー、データベースを選択・記述し、[ OK ] をクリックします。

image

Cosmos DB は階層型リソースモデルを採用しています。下図のように、データベース、コレクションは階層構造になっており、アカウントに従属しています。この図にある「 DocumentDB Account 」とは、先に作成した Cosmos DB のアカウントを指します。この階層構造は、どの API を選択しても同じです。

Azure Cosmos DB 階層型リソース モデル

パーティション キーは、Cosmos DB 内部で行われるパーティション分割に使用されます。Cosmos DB は、データをパーティション毎に分割し、ストレージに格納します。パーティション キーは、データの論理パーティションとして機能し、データを分散配置する際の境界として使用されます。

コレクションの作成が完了すると、概要ページのコレクションの箇所に行が追加されます。

image

今回は、Cosmos DB の特徴と Portal 上からのデプロイ方法をお伝えしました。是非、 Cosmos DB をご利用いただければ幸いです。

関連リンク

導入事例 : 富士フイルムソフトウエア株式会社様

導入事例 : 岐阜大学様

セッション動画 : de:code2017 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう