我们最近开始测试 Cosmos DB 作为奥尔良集群的持久存储。
我们的 Cosmos DB 场景是作为一个具有低延迟和大量替换、点读取和创建的键值存储。因此,我们的文档 ID 和分区键相同,因此每个分区基本上有 1 个文档。
但是,在 Cosmos DB Insights 中,我们看到我们正在达到 100% 标准化 RU 消耗:
当我们深入挖掘时,我们会看到一个热图,该热图将 100% RU 消耗放在 PartitionKeyRangeID 0 上,而没有其他可用的 PartitionKeyRange。
我的理解是,由于我们有与文档一样多的分区,所以我们应该会遇到这个问题。我也不确定 PartitionKeyRangeID 0 意味着什么,因为我们应该至少有几千个分区
PartitionKeyRangeID 对应物理分区。
您的逻辑分区键经过哈希处理,哈希空间被划分为分配给每个物理分区的范围。例如,在具有两个分区的集合中,分区 1 的范围可能为 0x00000000000000 到 0x7FFFFFFFFFFFFFF,分区 2 的范围可能为 0x80000000000000 到 0xFFFFFFFFFFFFFF。
在这种情况下,您似乎只有一个物理分区,并且已达到最大容量。
每个物理分区每秒支持高达 10k RU,因此,如果您要将集合扩展到强制拆分以上(或者如果每个分区存储容量限制需要拆分),您会看到额外的物理分区。
预配置吞吐量中的 RU 预算在物理分区之间分配。当您有多个物理分区时,热图非常有用,因此您可以识别某些物理分区已满而其他物理分区空闲的情况(这可能是由于热逻辑分区造成的)。
我在申请中得到的同样的信息是如何将其减少到常规。