如何为 Azure Cosmos DB 确定合适的分区键

She*_*629 5 azure data-partitioning azure-cosmosdb

我是 Azure Cosmos DB 的新手,但我想对以下内容有一个生动的了解:

  1. 分区键是什么?

目前我的理解还很肤浅 -> 具有相同分区键的项目将转到相同的分区进行存储,这可以在系统变大时更好地进行负载平衡。

  1. 如何决定一个好的分区键?有人可以举个例子吗?

多谢!

Jay*_*ong 1

1.什么是分区键?

在 azure cosmos db 中,有两个分区:physical partitionlogical partition

答:物理分区是固定数量的预留 SSD 支持的存储与可变数量的计算资源的结合。

B.逻辑分区是物理分区中的一个分区,它存储与单个分区键值关联的所有数据。

我认为您提到的分区键是逻辑分区键。分区键充当数据的逻辑分区,并为 Azure Cosmos DB 提供跨物理分区分布数据的自然边界。更多详细信息,您可以参考如何分区工作

2.如何确定一个好的分区键?有人可以举个例子吗?

您需要考虑选择一个具有广泛值范围且具有均匀访问模式的属性名称。理想的分区键是在查询中经常作为过滤器出现的键,并且具有足够的基数以确保您的解决方案可扩展。

例如,您的数据具有名为id和 的字段color,并且您更频繁地查询coloras 过滤器。您需要选择color,而不是id,作为分区键,这对查询性能更有效。因为每个项目都有不同id但也可能有相同的color。它的范围很广。此外,如果添加color,分区键是可扩展的。

更多详细信息,请阅读Azure Cosmos DB 中的分区和缩放

希望对您有帮助。