Azure Cosmos DB for NoSQL のしくみ
Azure Cosmos DB の基本がわかったので、次に、アカウントを使い始めるために必要なリソースと情報を確認しましょう。 この情報は、Azure Cosmos DB for NoSQL が自分のデータ セットで機能するかどうかを判断するのに役立ちます。 また、追加の構成が必要な場合は、どの程度かを判断するのに役立ちます。
Azure Cosmos DB for NoSQL のコンポーネントは何ですか?
Azure Cosmos DB を使い始めるには、アカウント、データベース、コンテナー、アイテムなどのさまざまなリソースを最初に Azure で作成します。
取引先企業
アカウントは、SaaS アプリケーションの高可用性とテナント分離の基本的な単位です。 Azure Cosmos DB for NoSQL では、データに対するリージョン (複数も可) をアカウント レベルで構成できます。 また、アカウントには、API 要求に使用されるグローバルに一意な DNS 名も含まれます。 要求の既定の整合性レベルをアカウント レベルで設定することもできます。 アカウントの管理や作成は、Azure portal、Azure Resource Manager テンプレート、Azure CLI、または Azure PowerShell を使用して行うことができます。
データベース
各アカウントには、1 つまたは複数のデータベースを含めることができます。 データベースは、Azure Cosmos DB for NoSQL でコンテナーを管理するための論理ユニットです。
コンテナー
コンテナーは、Azure Cosmos DB for NoSQL でのスケーラビリティの基本単位です。 Azure Cosmos DB では、コンテナー レベルでスループットをプロビジョニングします。 必要に応じて、コンテナー レベルでインデックス作成ポリシーまたは既定の有効期限値を構成することもできます。 コンテナー内のデータは、Azure Cosmos DB for NoSQL によって自動的かつ透過的にパーティション分割されます。
項目
個々のドキュメントは、Azure Cosmos DB 用の NoSQL API により、コンテナー内の "アイテム" として JSON 形式で格納されます。 Azure Cosmos DB for NoSQL では、JSON ファイルがネイティブにサポートされており、JSON ドキュメントでの書き込み操作はアトミックであるため、高速で予測可能なパフォーマンスを提供できます。
パーティション分割とパーティション キー
すべての Azure Cosmos DB for NoSQL コンテナーで、スケール アウト用のデータの分散に使用されるパーティション キー パスを指定する必要があります。バックグラウンドで、Azure Cosmos DB for NoSQL により、このパスとパーティション キー値を使用して、データの論理的なパーティション分割が行われます。 たとえば、次のような JSON ドキュメントがあるとします。
{
"id": "35b5bf7d-5f0e-4209-b7cb-8c5c70c3bb59",
"deviceDisplayName": "shared-printer",
"acquiredYear": 2019,
"department": {
"name": "information-technology",
"metadata": {
"location": "floor-5-unit-27"
}
},
"queuedDocuments": [
{
"sender": "user-293749329",
"sentTime": "2019-07-26T05:12:37",
"pages": 5,
"spoolRef": "3f4b759c-3230-4269-a88e-de7620ad91c0"
},
{
"device": {
"type": "mobile"
},
"sentTime": "2019-11-12T13:08:42",
"spoolRefs": [
"6a86682c-be5a-4a4a-bacd-96c4d1c7ece6",
"79e78fe2-93aa-4688-89db-a7278b034aa6"
]
}
]
}
コンテナーでパーティション キーのパスとして /department/name
を指定すると、このドキュメントのパーティション キーの値は information-technology
になります。 データ ワークロードをサポートするために必要な物理リソースは、Azure Cosmos DB for NoSQL によってバックグラウンドで自動的に管理されます。
コンテナーのパーティション キー パスを選択することは、アプリケーションのスケーリングを可能にするために不可欠であり、新しいワークロードにとって最も重要な設計上の決定事項の 1 つです。 詳細な技術的説明とベスト プラクティスについては、パーティション キーの選択に関するドキュメントを参照してください。