web-dev-qa-db-ja.com

ストアドプロシージャのパーティションキーを要求するAzureCosmos DB

GUID Idをパーティションキーとして使用していますが、ストアドプロシージャを実行しようとすると、問題が発生します。ストアドプロシージャを実行するには、パーティションキーを指定する必要があります。何がわかりません。この場合、値を提供する必要がありますか?支援してください。

7
Dadwals

ストアドプロシージャが登録されているコレクションが単一パーティションのコレクションである場合、トランザクションはコレクション内のすべてのドキュメントにスコープされます。コレクションがパーティション化されている場合、ストアドプロシージャは、単一のパーティションキーのトランザクションスコープで実行されます。次に、各ストアドプロシージャの実行には、トランザクションを実行する必要があるスコープに対応するパーティションキー値を含める必要があります。

ここ に言及した上記の説明を参照できます。

@Rafat Saroshが言ったように、GUID Idは適切ではありませんpartitioning key。状況に応じて、cityの方が適切な場合があります。データベースを調整する必要がある場合がありますpartitioning schemeパーティションキーは、定義後に削除または変更できないためです。

データのエクスポートjsonファイルに、次に importcityでパーティション化された新しいコレクションに Azure Cosmos DBデータ移行ツール

それがあなたを助けることを願っています。


要約すると:

問題:

SQLを実行してドキュメントをクエリするときに、特定のパーティションキー値を指定できません。

解決策:

1.クエリSQLを実行するときにEnableCrossPartitionQuerytrueに設定します(パフォーマンスのボトルネックがあります)

2.頻繁に照会されるフィールドをパーティショニングキーとして設定することを検討してください。

4
Jay Gong

このビデオを見てください https://youtu.be/F0wEDdxQER0?t=9m40s

パーティションキーの詳細については、こちらをご覧ください: https://docs.Microsoft.com/en-us/Azure/cosmos-db/partition-data

0
Rafat Sarosh