区分 Azure Cosmos DB 中的分区键和分区键范围
Differentiate between partition keys & partition key ranges in Azure Cosmos DB
我很难理解 Cosmos DB 中分区键和分区键范围之间的区别。我一般理解 cosmos db 中的分区键是每个文档中的 JSON property/path,用于在多个分区之间平均分配数据以避免任何不均匀的 "hot partitions" - 分区键决定文档的物理放置。
但我不清楚分区键范围是什么...这只是按集合中每个单独分区分组的从第一个到最后一个的文字分区键范围吗?我知道可以通过对端点 https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/pkranges
执行 GET 请求来找到范围,但只是在概念上想确保我理解。还不清楚如何精细地查看特定文档所属的特定分区键。
https://docs.microsoft.com/en-us/rest/api/cosmos-db/get-partition-key-ranges
您在要用作分区键的文档上定义 属性。
Cosmos db 为集合中的所有文档哈希 属性 的值,并将不同的分区键映射到不同的物理分区。
随着时间的推移,您的集合会增长,您最终可能会拥有,例如,分布在 5 个物理分区上的 100 个逻辑分区。
分区键范围只是分区键的集合,这些分区键按它们映射到的物理分区分组。
因此,在此示例中,您将获得 5 个 pkranges,每个 pkranges 具有 min/max
分区键值。
请注意,pkranges 可能会发生变化,因为在未来,随着您的集合的增长,物理分区将被拆分,导致一些分区键被移动到新的物理分区,从而导致先前范围的一部分被移动到新位置。
我很难理解 Cosmos DB 中分区键和分区键范围之间的区别。我一般理解 cosmos db 中的分区键是每个文档中的 JSON property/path,用于在多个分区之间平均分配数据以避免任何不均匀的 "hot partitions" - 分区键决定文档的物理放置。
但我不清楚分区键范围是什么...这只是按集合中每个单独分区分组的从第一个到最后一个的文字分区键范围吗?我知道可以通过对端点 https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/pkranges
执行 GET 请求来找到范围,但只是在概念上想确保我理解。还不清楚如何精细地查看特定文档所属的特定分区键。
https://docs.microsoft.com/en-us/rest/api/cosmos-db/get-partition-key-ranges
您在要用作分区键的文档上定义 属性。 Cosmos db 为集合中的所有文档哈希 属性 的值,并将不同的分区键映射到不同的物理分区。 随着时间的推移,您的集合会增长,您最终可能会拥有,例如,分布在 5 个物理分区上的 100 个逻辑分区。
分区键范围只是分区键的集合,这些分区键按它们映射到的物理分区分组。
因此,在此示例中,您将获得 5 个 pkranges,每个 pkranges 具有 min/max
分区键值。
请注意,pkranges 可能会发生变化,因为在未来,随着您的集合的增长,物理分区将被拆分,导致一些分区键被移动到新的物理分区,从而导致先前范围的一部分被移动到新位置。