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 によって自動的かつ透過的にパーティション分割されます。
項目
NoSQL API for Azure Cosmos DB は、個々のドキュメントを 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 つです。 詳細な技術的な説明とベスト プラクティスについては、 パーティション キーの選択 に関するドキュメントを確認してください。