Azure Cosmos DB for NoSQL のしくみ

完了

Azure Cosmos DB の基本がわかったので、次に、アカウントを使い始めるために必要なリソースと情報を確認しましょう。 この情報は、Azure Cosmos DB for NoSQL が自分のデータ セットで機能するかどうかを判断するのに役立ちます。 また、追加の構成が必要な場合は、どの程度かを判断するのに役立ちます。

Azure Cosmos DB for NoSQL のコンポーネントは何ですか?

Azure Cosmos DB を使い始めるには、アカウント、データベース、コンテナー、アイテムなどのさまざまなリソースを最初に Azure で作成します。

Azure Cosmos DB for NoSQL アカウントがデータベースの親リソースであり、データベース自体がコンテナーの親リソースであることを示す図。

アカウント

アカウントは、分散と高可用性の基本となる単位です。 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 つである場合があります。 詳細な技術的説明とベスト プラクティスについては、パーティション キーの選択に関するドキュメントを参照してください。