<目次>
(1) Azure Cosmos DBの使い方入門(作成~データ登録~SQL発行)
(1-0) Azure Cosmos DBとは?
(1-1) STEP1: Cosmos DBのリソースを作成する手順
(1-2) STEP2:「データベース」と「コンテナ」を作成する手順
(1-3) STEP3:コンテナ内に「アイテム」を作成する手順
(1-4) STEP4:SQLを発行する手順
(1) Azure Cosmos DBの使い方入門(作成~データ登録~SQL発行)
本記事は入門編という事で、まずはAzure Cosmos DBを導入し、簡単なSQLを発行するまでの手順(Hello World相当)をご紹介します。
(1-0) Azure Cosmos DBとは?
Azure Cosmos DBとは?は別記事にて整理しておりますので、Azure Cosmos DBとは?から知りたい方はご参照頂けたらと思います。
(図111)Azure Cosmos DBの構造
(1-1) STEP1: Cosmos DBのリソースを作成する手順
↓
↓
タブ | 項目名 | 説明 |
Basics | サブスクリプション (Subscription) |
Azure Cosmosアカウントを紐づけるサブスクリプションの名前を入力します。 |
Basics | リソースグループ (Resouce Group) |
Azure Cosmos DBに紐づけるリソースグループを選択します。 リソースグループの概念や作成方法については、こちらのページ(⇒★リソースグループのURL)をご参照頂けたらと思います。 |
Basics | アカウント名 | Azure Cosmos DBの一意な「アカウント名」を指定します。
Azure Cosmos DBではまず「アカウント」と呼ばれるAzure Cosmos DBのリソース(⇒★URL)があり、各データベースはこのアカウント配下に紐づきます。 「アカウント名」はデータベースにアクセスする際のURLに使用されるため、重要な項目となっています。 |
Basics | API | データベースで使用するAPIの種別を選択します。 Azure Cosmos DBには5種類のAPIが容易されており、扱うデータの形式に応じて選択する事ができます。SQLベース ・Core (SQL) ・Mongo DB ・Gremlin ・Azure Table ・Cassandra Azure Cosmos DBの5種類のAPIの概要については、こちらの記事(⇒★Azure Cosmos DBのマルチモデルAPIについて)でご紹介しているので、併せてご参照頂けたらと思います。 |
Basics | 場所 (Location) |
Azure Cosmos DBをホストする際のメインとなる地理的な立地(リージョン)を選択します。ご自身のサービスのユーザが居る場所に最も近い場所を選択する事で、最も高い性能を発揮できます。 |
Basics | 容量モード (Capacity Mode) |
以下の2つのオプションから選択します。両者で実施できる操作は一緒ですが、「課金の方法」が大きく異なります。
①プロビジョニングされたスループット(Provisioned Throughput) ②サーバレス(Serverless) |
Basics | アカウントの種類 | Cosmos DBに付与するリソースのタグの1つです。特にCosmos DBの挙動には影響なく、単なるラベル情報となります。以下の2つから選択でき、後から変更も可能です。 ①運用 ⇒本番環境に対して適用します ②非運用 ⇒本番でない環境(開発環境、テスト環境、ステージング環境など) |
タブ | 項目名 | 説明 |
グローバル配布 | Geo冗長性 (Geo-Redundancy) |
高可用性を実現するためのオプションです。現在のリージョンで障害等により利用できない場合でも、データが別のリージョンで継続して利用できる事を保証します。 |
グローバル配布 | マルチリージョン書き込み (Multi-region writes) |
リージョン間でデータを同期する事で、地理的に離れた場所でも最新のデータを素早く利用するためのオプションです。 |
グローバル配布 | 可用性ゾーン | 特定リージョン内で複数のゾーンにレプリカを作成。 |
(図125)タブ「グローバル配布」
(表3)タブ「バックアップポリシー」
タブ | 項目名 | 説明 |
バックアップポリシー | ①バックアップポリシー ②バックアップ間隔 ③バックアップ保有期間 ④保存されたデータのコピー ⑤バックアップストレージの冗長性 |
Azure Cosmos DBは一定間隔にて自動でデータのバックアップを取得してくれます。またそのバックアップは可用性や性能に影響なく行われ、ストレージサービスに格納されるので、問題発生時のリカバリ等に利用できます。以下、各設定の概要です。
①バックアップポリシー 以降②~⑤は、①で「定期的」を選択した際のオプションで、バックアップのインターバル(間隔)の指定や、ストレージの冗長性(リージョン跨ぎorリージョン内)の選択 |
(図126)タブ「バックアップポリシー」
↓
(1-2) STEP2:「データベース」と「コンテナ」を作成する手順
続いてはCosmos DB内に「データベース」と「コンテナ」(テーブル相当)を作成する手順です。
タブ | 項目名 | 説明 |
Add Container | Database id | プログラミングで言う所の「名前空間」のような論理的な区分です。名前空間を実世界で例えるなら、「中央区」(≒変数)は東京にも北海道にも埼玉にも複数存在しますが、都道府県(≒名前空間)が異なるので複数存在が可能です。この時の都道府県が「名前空間」に相当します。 |
Add Container | Provision database throughput | データベース内の全てのコンテナ(RDBのテーブル相当)で、スループットを共有する際に使用します。 |
Add Container | ①Throughput(autoscale) ②Max RU/s |
②Max RU/s Azure Cosoms DBのスループットの単位である「Request Unit(略してRU)」(リクエスト/秒)を設定します。この値を千単位~億単位まで、ワンクリックで機動的に変更が可能です。この「Request Unit」はデータベースの使用量を計測する際の単位としても利用されており、表示されている料金は使用するリージョンの数だけ発生します。 ①Throughput(autoscale) |
Add Container | Container id | リレーショナルデータベースでいう「テーブル名」に相当します。 |
Add Container | Indexing | インデックスはパーティションと似ていますが、目次のようなもので検索を「高速化」する事ができます。Azureにてこのインデックスの割り振りを自動化する事ができます。 |
Add Container | Partition key | パーティションの設定です。これによりテーブルを区切り、検索を「効率化」(特定のパーティションから探す)等の性能改善を行います。 |
(1-3) STEP3:コンテナ内に「アイテム」を作成する手順
{ "id": "1", "Name": "Apple", "Origin": "Aomori", "Color": "Red" }
(図136)
(1-4) STEP4:SQLを発行する手順
●Cosmos DBのメニューで「データエクスプローラー」を開き、「SQL API」でコンテナ名(≒テーブル名)を選択した状態で、上段メニューで「New SQL Query」を押下。