パーティションキーを使用してCosmos DBコレクションを作成しました。これは開発環境なので、スループットを1000に減らしました。以下のエラーが発生します。
メッセージ:
"エラー":["パーティションキーが最大サイズの10 GBに達しました"]
Azure Cosmos DBコンテナーは、固定または無制限に作成できます。固定サイズのコンテナーの最大制限は10 GBで、スループットは10,000 RU /秒です。無制限のコンテナーを作成するには、2,500 RU /秒の最小スループットを指定する必要があります。
スループットを2500に増やしましたが、それでも同じエラーが発生します。
Azure Cosmos DBチームのエンジニアであるAravind Krishnaにメールを送り、この点についての説明を求めました。これは彼の答えの要約です:
Cosmos DBには、物理パーティションと論理パーティションがあります。コレクション内では、パーティションキーに同じ値を共有するすべてのドキュメントは、同じ論理パーティション内に存在します。 1つ以上の論理パーティションが物理パーティションを占有します。開発者にとって、物理的なパーティション分割は関係ありません。制御できるのは、論理パーティションに属するものだけです。
コレクションが固定(10GB)であるか無制限であるかに関係なく、10GBの制限は論理パーティションに適用されます。限目。
したがって、Sarvaは、パーティションキーを再考するか、ローリングログを実装して、デバッグログパーティション内のデータが10 GBのパーティション制限を超えないようにする必要があります。
このエラーが発生する理由は、unlimited collection (a.k.a. partitioned collection)
にはそのコレクション内のパーティションにあるサイズ制限がなくても、現在10 GBであるためです。パーティションの制限に達したため、このエラーが発生しています。これから link
(質問6):
多くの異なる値を持ち、ワークロードをこれらの値全体に均等に分散できるパーティションキープロパティを選択することが重要です。パーティション分割の自然な成果物として、同じパーティションキーを含むリクエストは、単一のパーティションの最大スループットによって制限されます。 さらに、同じパーティションキーに属するドキュメントのストレージサイズは10GBに制限されています。理想的なパーティションキーは、クエリを実行し、ソリューションがスケーラブルであることを保証するのに十分なカーディナリティがあります。
私が考え得る唯一の解決策は、コレクションを再作成し、この10 GBの制限を超えないことがわかっているパーティションキーを選択することです。古いコレクションから新しいコレクションにもデータを転送する必要があります。
この投稿は、コレクションのパーティションキーを選択するのに役立ちます。 https://docs.Microsoft.com/en-us/Azure/cosmos-db/partition-data#design-for-partitioning =。
さらに、このあたり blog post
、無制限のコレクションの最小RU /秒が2500ではなく1000になりました。
CosmosDBのデータは、選択したパーティションキーを使用してパーティション化されたコレクションに格納されます。 各パーティションはデータの10GBに制限されています。
無制限のコレクションはパーティションの数に制限はありませんが、固定されたコレクションは単一のパーティションに制限されます。唯一の違いです。固定コレクションがパーティションキーセットを必要としないのはそのためです(すべてが単一のパーティションに移動するため)。固定コレクションとパーティションの制限は同じサイズの10 GBです。
これらのパーティションが実際にCosmosDBサーバーに格納される方法は、ユーザーが制御できないインフラストラクチャであり、レプリケーションとパフォーマンスのために自動的に管理されます。十分なパーティションに分割できる限り、コレクションに必要なだけデータを格納できます。パーティションを少なくするよりも多くのパーティションを使用することをお勧めします。ID
フィールドを選択しても(すべてのパーティションに1つのレコードを配置するため)、問題なく機能します。 CosmosDBは自動的にパーティションをグループ化してサーバーをいっぱいにすることができますが、パーティションを分割することはできないため、設計では注意してください。