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 上で提供される他のサービスと組み合わせて、簡単に利用することができます。
Cosmos DB の特徴
Cosmos DB は、次のような特徴があります。
- グローバルデータ分散
- 複数データモデルのサポート
- 柔軟なスケーラビリティ
- 包括的な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 を検索・選択し、 [ 作成 ] をクリックします。
次に、 Cosmos DB のアカウントを作成します。アカウント ID 、API、リソースグループ、リージョンを選択し、[ 作成 ] をクリックします。
API は、次の 4 つ API から、1 つ選択します。
完了後、概要ページからコレクションを作成します。[ コレクションの追加 ] をクリックします。
コレクション ID 、 ストレージ容量、初期スループット容量、パーティションキー、データベースを選択・記述し、[ OK ] をクリックします。
Cosmos DB は階層型リソースモデルを採用しています。下図のように、データベース、コレクションは階層構造になっており、アカウントに従属しています。この図にある「 DocumentDB Account 」とは、先に作成した Cosmos DB のアカウントを指します。この階層構造は、どの API を選択しても同じです。
パーティション キーは、Cosmos DB 内部で行われるパーティション分割に使用されます。Cosmos DB は、データをパーティション毎に分割し、ストレージに格納します。パーティション キーは、データの論理パーティションとして機能し、データを分散配置する際の境界として使用されます。
コレクションの作成が完了すると、概要ページのコレクションの箇所に行が追加されます。
今回は、Cosmos DB の特徴と Portal 上からのデプロイ方法をお伝えしました。是非、 Cosmos DB をご利用いただければ幸いです。
関連リンク
セッション動画 : de:code2017 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう