如何为Azure Cosmos DB确定一个好的分区密钥
我是Azure Cosmos DB的新手,但我想对以下方面有一个生动的了解:如何为Azure Cosmos DB确定一个好的分区密钥,azure,azure-cosmosdb,data-partitioning,Azure,Azure Cosmosdb,Data Partitioning,我是Azure Cosmos DB的新手,但我想对以下方面有一个生动的了解: 什么是分区密钥 目前我的理解很肤浅->具有相同分区键的项目将转到相同分区进行存储,这样在系统变大时可以更好地实现负载平衡 如何决定一个好的分区键? 有人能举个例子吗 非常感谢 1.什么是分区密钥 在azure cosmos db中,有两个分区:物理分区和逻辑分区 A.物理分区是一个固定数量的保留SSD备份存储,结合可变数量的计算资源 B.逻辑分区是物理分区中的一个分区,它存储与单个分区键值关联的所有数据 我认为您提到的
物理分区
和逻辑分区
A.物理分区是一个固定数量的保留SSD备份存储,结合可变数量的计算资源
B.逻辑分区是物理分区中的一个分区,它存储与单个分区键值关联的所有数据
我认为您提到的分区键是逻辑分区键。分区键充当数据的逻辑分区,并为Azure Cosmos DB提供自然边界,以便跨物理分区分发数据。更多详细信息,请参阅
2.如何确定一个好的分区密钥?有人能举个例子吗
您需要考虑选择一个具有广泛范围的属性名称并具有访问模式。一个理想的分区键是一个经常出现在您的查询中的筛选器,并且有足够的基数以确保您的解决方案是可扩展的。 例如,您的数据具有名为id和color的字段,并且您可以更频繁地作为过滤器查询颜色。您需要为分区键选择颜色而不是id,这对您的查询性能更有效。因为每个物品都有不同的id,但可能有相同的颜色。它的范围很广。另外,如果添加颜色,分区键是可伸缩的
更多详情,请阅读希望它能帮助您。您必须根据工作负载选择分区。它们可以分为两类
- 阅读沉重
- 写得很重
对于写入繁重工作负载选择分区键,其中属性更为唯一。例如,在IoT场景中,使用分区键,如deviceid_signaldatetime,它连接发送信号的设备id,信号的DateTime具有更大的唯一性。在这里可以找到非常好的解释和示例,从而更好地说明您正在搜索的答案。特别是:1)第一个问题的答案在0.58分钟开始;2)第二个问题的答案在5.50分钟开始