gpt4 book ai didi

azure-cosmosdb - 唯一 ID 是 CosmosDB 的最佳分区键

转载 作者:行者123 更新时间:2023-12-05 02:05:44 28 4
gpt4 key购买 nike

我正在尝试为同时具有客户 ID(每个客户的唯一值)和客户城市(在北美,会产生数千个可能的值)的 CosmosDB 表确定最佳分区键。

阅读 Azure 文档时,我看到了很多相互矛盾的信息,其中哪一个是最好的。一些文档指定更独特的值将提供跨分区的项目更好的分布。而其他文档指出最好使用 city。

所以我的问题是:

  1. 是否对每个分区键进行了哈希处理,并且每个分区是否包含具有一系列哈希值的键的项目?即 - 如果客户 ID 是分区键,一个分区的 ID 是 1 到 1000,另一个分区的 ID 是 1000 到 2000,等等?和city一样,一个partition会有多个city吗?或者,每个分区是否会以 1:1 的比例映射到特定的分区键(即 ID 或城市)?

  2. 根据以上所述,哪个更好(性能更高,成本更低)?拥有尽可能细化的分区键(id 客户 ID)?还是客户城市?

谢谢!

最佳答案

  • 是的,分区键被散列,这些散列决定了逻辑分区的物理存储位置
  • 不,分区只会包含具有相同分区键的记录(这基本上是重点,共同定位相关记录)。因此,在您的示例中,它们将按 1:1 的比例进行映射
  • 成本无关紧要,因为您无需为分区付费(尽管它们确实有大小限制),因此问题归结为性能,而这又取决于您的应用程序查询数据的方式。

理解分区如何工作的一个很好的类比是考虑查找某人的地址:

如果我只给了您我家的 key (项目 ID),您将需要尝试世界上的每一扇门,直到碰巧找到正确的那扇(也称为跨分区查询)。如果我告诉你国家(分区键),那么你可以立即消除数百万个门,但你仍然有数百万个门要检查,所以仍然不是很有效。如果我给你城市,更少,但仍有很多要检查....但如果我给你我的邮政编码,那么我们刚刚将查询从数十亿条记录优化到 15-20。

关于azure-cosmosdb - 唯一 ID 是 CosmosDB 的最佳分区键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63215052/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com