Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Azure Microsoft

Azure Cosmos DBの使い方入門(作成~データ登録~SQL発行)

投稿日:2021年7月18日 更新日:

 

<目次>

(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とは?から知りたい方はご参照頂けたらと思います。

 
以降の手順では、上記の記事で紹介しているAzure Cosmos DBの構造に従って、下記の順序で作業をしていきます。
 
・Database Account(Azure Cosmos DBのリソース)⇒STEP1
・データベース(SQL Serverのデータベース相当)⇒STEP2
・コンテナ(SQL Serverのテーブル相当)⇒STEP2
・アイテム(SQL Serverの行相当)⇒STEP3

 

(図111)Azure Cosmos DBの構造

目次にもどる

(1-1) STEP1: Cosmos DBのリソースを作成する手順

最初のステップとして、Azure Cosmos DBを使うためのリソース(Azureのサービスの論理単位)を作成します。
●Cosmos DB作成画面を開く
・Azure Portalから「+リソースの作成」を選択し、cosmos db等で検索して「Azure Cosmos DB」を選択します。
(図121)

(図122)

(図123)

 

●Cosmos DBの作成条件の入力
作成条件(設定値、各種オプションの選択)について、主な設定項目の内容は以下の通りです。一部のタブ(ネットワーク、暗号化、タグ等)は飛ばしていますが、それらについては今回はデフォルト設定で進めています。
 
(表1)タブ「Basics」
タブ 項目名 説明
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)
スループットの指定が可能で、各コンテナ単位でスループットの単位(Request Unit/秒)を指定します。この設定値は手動で変更できる上に、オートスケール機能で自動調整する事も可能です。料金の課金もこの単位に基いて行われ、実際のRU(Request Unit)の数に関わらず、確保した時間単位のスループット(Request Unit/秒)に対して課金がされます。

②サーバレス(Serverless)
こちらはコンテナに対してスループットの単位を指定せずに利用します。課金も使用した時間単位のRU(Request Unit)の数に応じて支払います。

Basics アカウントの種類 Cosmos DBに付与するリソースのタグの1つです。特にCosmos DBの挙動には影響なく、単なるラベル情報となります。以下の2つから選択でき、後から変更も可能です。
①運用
⇒本番環境に対して適用します
②非運用
⇒本番でない環境(開発環境、テスト環境、ステージング環境など)
(図124)タブ「Basics」

 

(表2)タブ「グローバル配布」

タブ 項目名 説明
グローバル配布 Geo冗長性
(Geo-Redundancy)
高可用性を実現するためのオプションです。現在のリージョンで障害等により利用できない場合でも、データが別のリージョンで継続して利用できる事を保証します。
グローバル配布 マルチリージョン書き込み
(Multi-region writes)
リージョン間でデータを同期する事で、地理的に離れた場所でも最新のデータを素早く利用するためのオプションです。
グローバル配布 可用性ゾーン 特定リージョン内で複数のゾーンにレプリカを作成。

(図125)タブ「グローバル配布」

(表3)タブ「バックアップポリシー」

タブ 項目名 説明
バックアップポリシー ①バックアップポリシー
②バックアップ間隔
③バックアップ保有期間
④保存されたデータのコピー
⑤バックアップストレージの冗長性
Azure Cosmos DBは一定間隔にて自動でデータのバックアップを取得してくれます。またそのバックアップは可用性や性能に影響なく行われ、ストレージサービスに格納されるので、問題発生時のリカバリ等に利用できます。以下、各設定の概要です。

①バックアップポリシー
(a)定期的
・定期的なインターバルを設定してバックアップを取得。
・データのリストアはMSサポートにリクエストをする事で可能。
・バックアップは指定した期間の範囲で保有可能(MAX1ヵ月)
(b)継続的(※2021年4月時点ではまだ未完成機能)
・過去30日間の任意のポイントに復旧ができます

以降②~⑤は、①で「定期的」を選択した際のオプションで、バックアップのインターバル(間隔)の指定や、ストレージの冗長性(リージョン跨ぎorリージョン内)の選択

(図126)タブ「バックアップポリシー」

・上記の設定が完了したら「作成」を押下します。
(図127)①レビュー+作成

(図127)②デプロイ
(図127)③デプロイ完了
 
・作成が完了したら「リソースに移動」を押下すると、
(図128)
 

目次にもどる

(1-2) STEP2:「データベース」と「コンテナ」を作成する手順

続いてはCosmos DB内に「データベース」と「コンテナ」(テーブル相当)を作成する手順です。

●データベース・コンテナ作成画面を開く
・Cosmos DBの左メニューから「データエクスプローラー」を選択します。
(図131)

・「New Container」を選択します。
(図132)
 
●データベース・コンテナの作成条件の入力
・「New Container」を押下すると、その画面の最初にて「データベース」の作成条件を求められます。既存のものがあれば利用しても良いですが、無い場合は新規に作成します。続いてコンテナの各種設定も入力して「OK」を押下します。
 
(図133)①、②
 
(表4)データベース・コンテナ設定項目

タブ 項目名 説明
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 パーティションの設定です。これによりテーブルを区切り、検索を「効率化」(特定のパーティションから探す)等の性能改善を行います。
●データベース・コンテナの作成完了
作成が完了すると次のような画面が表示されます。

(図134)

目次にもどる

(1-3) STEP3:コンテナ内に「アイテム」を作成する手順

次にコンテナ内にSQLのテストをするための「アイテム」(行=レコード相当)を作成します。
 
●Cosmos DBのメニューで「データエクスプローラー」を開き、「SQL API」で「Items」を選択した状態で、上段メニューで「New Item」を押下。
(図135)

●「アイテム」の追加
こちらの記事(⇒★Cosmos DBの記事)で触れていますが、Cosmos DBのデータはJSON形式で保持しているため、アイテムは次のように「キー」と「値」をコロン区切りで列挙します。
 
・右側のスペースに以下のJSON型式のデータをコピーペーストします。
{
    "id": "1",
    "Name": "Apple",
    "Origin": "Aomori",
    "Color": "Red"
}

(図136)

・追記できたら「Save」を押下すると登録ができます。
登録内容が表示され、一部の項目(_etag、_selfなど)はシステム側で自動的に補われている事が分かります。
(図137)

目次にもどる

(1-4) STEP4:SQLを発行する手順

●Cosmos DBのメニューで「データエクスプローラー」を開き、「SQL API」でコンテナ名(≒テーブル名)を選択した状態で、上段メニューで「New SQL Query」を押下。

(図141)
 
●右側の窓の「Results」タブにクエリの実行結果が表示されます。
(図142)

 

●右側の窓の「Query Stats」タブを見ると、クエリのRU/s(Request Units/秒)などが確認できます。
RU/sの消費量などは、同じコンテナに対するSELECTでもクエリの複雑さによって消費量が変化します。例えば、ORDER BYを加えたら僅かにRU/sの消費が増えます。
 
(図143)
 

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Azure, Microsoft

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Azure Storageとは?特徴や4種類のストレージの概要をご紹介

  <目次> (1) Azure Storageとは?特徴や4種類のストレージの概要をご紹介  (1-1) Azure Storageとは?4種類のストレージの概要   (1-1-1) BL …

タスクスケジューラで「オペレーターまたは管理者が要求を拒否しました」エラーの発生例と解決策例のご紹介(一例)

  <目次> (1) タスクスケジューラで「オペレーターまたは管理者が要求を拒否しました」エラーの発生例と解決策例のご紹介(一例)  (1-1) 事象・発生状況  (1-2) 原因(例)   …

Azureリソースグループの作り方の手順について

  <目次> (1) Azureリソースグループの作り方の手順について  (1-1) Azureリソースグループとは?  (1-2) Azureリソースグループの作成手順  (1-3) Az …

Azure AI Search(旧Cognitive Search)の使い方をご紹介(Pythonサンプルあり)

  <目次> Azure AI Search(旧Cognitive Search)の使い方をご紹介(Pythonサンプルあり)  やりたいこと  概要  STEP0:前提条件  STEP1: …

Azureの「NSG」と「Azure Firewall」の違いについて

  <目次> (1) Azureの「NSG」と「Azure Firewall」の違いについて  (1-1) Azure Firewallとは?  (1-2) Azure Firewallの設 …

  • English (United States)
  • 日本語
Top