2017-12-13 31 views
1

私はAzure Cosmos DBに少し新しく、概念を理解しようとしています。Azure Cosmos DBコレクションのパーティションキー

私は、DocumentDBコレクションのために可能な限り最良のパーティションキーを決定するのを手伝っています。以下のパーティションキーを使用してパーティションが可能なイメージを参照してください。

this

ブログ記事 hereで述べたように

理想的なパーティション・キーは クエリでフィルタとして頻繁に表示され、あなたのソリューションを確保するのに十分なカーディナリティを有するものである スケーラブルであります。

上記の行から、私のケースでは、UserIdをパーティションキーとして使用できると思います。

誰かが、どのキーがパーティションキーの候補として最適ですか教えてください。

+0

なぜ誰かが私の質問に投票していないのか分かりません。私はやっていると答えを見つけるためにいくつかの研究を行っている。私はここに質問を投稿していますので、DocumentDBで作業している人が明確な理解を持っている人が私に示唆を与えることができます。 – Ganesh

+0

データへのアクセス方法も重要です。非常に最初のステップとして、データを頻繁に読み取らない場合は、可能な限り多くの値を持つキーを使用します。データの一部を定期的に読み取る場合は、できるだけ少ないパーティション内でクエリの結果を保持してください。両極端のバランスをとると、始める方法がわかります。クエリがuserIdによってフィルタリングされている場合、これは良い候補になります。 –

答えて

-2

それは依存しますが、ここで考慮すべきいくつかのことです。

あなたが言及したブログの記事は言う:

また、同じパーティションキーに属する文書の保存サイズは10ギガバイトに制限されています。理想的なパーティションキーは、クエリにフィルタとして頻繁に表示され、ソリューションのスケーラビリティを確保するのに十分なカーディナリティを持つパーティションキーです。

また、私は本当にパーティション・キーの選択はあなたが設計時に確認する必要があります重要な決定である

https://docs.microsoft.com/en-us/azure/cosmos-db/partition-data、この記事や動画をチェックすることをお勧めします。値の幅が広く、アクセスパターンも同じプロパティ名を選択する必要があります。

多くの値を持ち、これらの要件を満たすパーティションキーを必ず選択してください。

0

10 things to know about DocumentDB Partitioned Collectionsとから、パーティションキーの選択に関する多くの非常に良いアドバイスがありますので、ここでは繰り返さないことにします。

パーティションキーの選択は、データベースに格納されているデータと頻繁なクエリフィルタリングの条件によって異なります。

多くの場合、useridのようなパーティションにすることをお勧めします。あなたのビジネスロジックが与えられたuseridの多くのクエリを持っていて、何百ものエントリを検索したくないとします。このような場合、パーティション間でデータを照合するオーバーヘッドなしに、単一のパーティションからデータを迅速に抽出できます。

userのレコードが何百万もある場合は、単一パーティションから大量のデータを抽出するとすぐに照合のオーバーヘッドを超えてしまうため、useridのパーティション分割はおそらく最悪のオプションです。そのような場合は、すべてのパーティションでできるだけ均等にユーザーデータを配布する必要があります。パーティションキーとして別の列を見つける必要があるかもしれません。

データボリュームが非常に大きい場合は、ビジネスロジックに基づいて簡単なテストを行い、パフォーマンスに最適なパーティションキーを選択することをお勧めします。結局のところ、パーティショニングキーは、一旦セットアップされると変更することができません。

お手伝いします。

+0

この情報をお寄せいただきありがとうございます。はい、パーティションキーを選択する前にベースを実行します。 – Ganesh

+0

@ガネッシュ大丈夫です。あなたは他の人のリファレンスをフォーラムに記入することができます。 –

関連する問題