如何为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.逻辑分区是物理分区中的一个分区,它存储与单个分区键值关联的所有数据 我认为您提到的

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

  • 什么是分区密钥
  • 目前我的理解很肤浅->具有相同分区键的项目将转到相同分区进行存储,这样在系统变大时可以更好地实现负载平衡

  • 如何决定一个好的分区键? 有人能举个例子吗
  • 非常感谢

    1.什么是分区密钥

    在azure cosmos db中,有两个分区:
    物理分区
    逻辑分区

    A.物理分区是一个固定数量的保留SSD备份存储,结合可变数量的计算资源

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

    我认为您提到的分区键是逻辑分区键。分区键充当数据的逻辑分区,并为Azure Cosmos DB提供自然边界,以便跨物理分区分发数据。更多详细信息,请参阅

    2.如何确定一个好的分区密钥?有人能举个例子吗

    您需要考虑选择一个具有广泛范围的属性名称并具有访问模式。一个理想的分区键是一个经常出现在您的查询中的筛选器,并且有足够的基数以确保您的解决方案是可扩展的。 例如,您的数据具有名为id和color的字段,并且您可以更频繁地作为过滤器查询颜色。您需要为分区键选择颜色而不是id,这对您的查询性能更有效。因为每个物品都有不同的id,但可能有相同的颜色。它的范围很广。另外,如果添加颜色,分区键是可伸缩的

    更多详情,请阅读


    希望它能帮助您。

    您必须根据工作负载选择分区。它们可以分为两类

    • 阅读沉重
    • 写得很重
    读取繁重的工作负载是指读取的数据多于写入的数据,如产品目录,目录的插入/更新频率较低,浏览产品的人较多

    写重负载是指数据写入量大于读取量的负载。常见场景是物联网设备从多个传感器发送多个数据。您将向Cosmos DB写入大量数据,因为您可能每秒都会获取数据

    对于读取繁重工作负载选择分区键,该属性在筛选查询中使用。产品示例是产品id,当用户想要阅读信息和浏览评论时,它主要用于获取数据


    对于写入繁重工作负载选择分区键,其中属性更为唯一。例如,在IoT场景中,使用分区键,如deviceid_signaldatetime,它连接发送信号的设备id,信号的DateTime具有更大的唯一性。

    在这里可以找到非常好的解释和示例,从而更好地说明您正在搜索的答案。特别是:1)第一个问题的答案在0.58分钟开始;2)第二个问题的答案在5.50分钟开始