ストレージのパーティションを使用してエンティティ データへのアクセスを高速化する

オプションのパーティション キーを指定して、Azure heterogenous storage の NoSql テーブルに格納された非リレーショナル カスタム エンティティ データの論理的パーティションを作成できます (Azure Cosmos DB).。 パーティション キーがあることで、データ項目をテーブル内の論理的なセットにグループ化できるため、大規模なデータセット (数百万レコード) のアプリケーション パフォーマンスが向上します。 たとえば、製品を含むテーブルを製品カテゴリーに論理的にグループ化することで、製品カテゴリー内のすべてのアイテムを検索しやすくすることができます。 パーティション キーの値は、文字列または数値タイプにできます。 一度指定すると、パーティション キーの値は変更できません。

パーティション キーが指定されていない場合、テーブルが論理的な境界となり、大規模なデータセットから単一のアイテムまたは論理的に関連する項目のセットを取得しても、パーティション キーを使用した場合ほどのパフォーマンスは発揮できません。

パーティションの作成とアクセス

新しい論理パーティションを作成するには、一意の新しいパーティション キー値を使用する必要があります。 同じ論理パーティションに追加のアイテムを作成したり、論理パーティションに属するアイテムを取得、更新、削除する場合は、同じ値を使用する必要があります。

「CustomerPartition」 という名前の新しいストレージ パーティションに新しいカスタマー エンティティ レコードを作成する HTTP コマンドです。

POST [Organization URI]/api/data/v9.1/new_msdyn_customers?partitionid="CustomerPartition"
Content-Type: application/json
{
  "new_firstname": "Monica",
  "new_lastname": "Thompson",
}

指定されたストレージ パーティションから 1 つ、またはすべての顧客レコードを取得する HTTP コマンドです。

GET [Organization URI]/api/data/v9.1/new_msdyn_customers(<cID>)?partitionId="CustomerPartition"
GET [Organization URI]/api/data/v9.1/new_msdyn_customers?partitionId="CustomerPartition"

指定したストレージ パーティションの顧客レコードを更新する HTTP コマンドです。

PATCH [Organization URI]/api/data/v9.1/new_msdyn_customers(<cID>)?partitionid="CustomerPartition"
Content-Type: application/json
{
  "new_firstname": "Cora",
  "new_lastname": "Thomas",
}

指定したストレージ パーティションの顧客レコードを削除する HTTP コマンドです。

DELETE [Organization URI]/api/data/v9.1/new_msdyn_customers(<cID>)?partitionId="CustomerPartition"

重要

GET や DELETE コマンドの場合、パーティション識別子パラメータは大文字と小文字を区別し、「partitionId」 のように大文字の 「I」 で指定する必要があります。

追加情報

パーティション キーとパーティション管理の詳細を次に示します。

  • キー値は、環境内で一意である必要があります。
  • パーティションのデータ容量は 20GB に制限されており、パーティションの現在のサイズを確認する方法はありません。
  • ひとつの環境で割り当てられるパーティションの数に定義された制限はありません。
  • パーティションの割り当ては自動的に行われます。 作成の操作中に一意のパーティション キーを指定すると、パーティションが作成されます。 パーティションからすべてのデータが削除されると、そのパーティションは削除されます。
  • キーの名前を変更する方法はありません。
  • 現時点では、エンティティの作成、更新、取得、削除操作のみがストレージのパーティション分割に対応しています。

関連項目

Web API を使用してエンティティ レコードを作成する
Web API を使用してエンティティ レコードを取得する
Web API を使用したエンティティの更新と削除
Azure Cosmos DB におけるパーティション分割と水平スケーリング