区分Azure Cosmos DB中的分区键和分区键范围

时间:2019-07-08 22:37:40

标签: azure-cosmosdb partitioning

我很难理解Cosmos DB中分区键和分区键范围之间的差异。我通常了解cosmos db中的分区键是每个文档中的JSON属性/路径,用于在多个分区之间平均分配数据,以避免任何不均匀的“热分区”-分区键决定文档的物理位置。

但是我不清楚分区键范围是多少...这只是从集合中每个分区的第一个到最后一个分组的字面量分区键的范围吗?我知道可以通过对端点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

1 个答案:

答案 0 :(得分:1)

您在文档上定义要用作分区键的属性。 Cosmos db对集合中的所有文档的该属性哈希值,并将不同的分区键映射到不同的物理分区。 随着时间的流逝,您的集合将会增长,并且最终可能会在5个物理分区上分配100个逻辑分区。

分区键范围只是分区键的集合,这些分区键按它们映射到的物理分区分组。 因此,在此示例中,您将获得5个pkrange,每个分区的min/max分区键值。

请注意,pkrange可能会更改,因为将来随着集合的增长,物理分区将被拆分,从而导致某些分区键被移至新的物理分区,从而导致先前范围的一部分被移至新位置。