分区与RU

时间:2018-10-22 22:23:53

标签: azure azure-cosmosdb

场景:我们有大约800,000个用户在使用我们的系统。 我们需要每2周为每个用户存储5-6KB的报告。任何时候只有少数用户(50-100)使用该系统,它们可以访问报告。我认为用UserId进行“分区”是合理的,因为数据将非常均匀地散布,并且始终将一次在一个分区上进行查询。

问题:我的困惑是,我们为这个集合分配了5,000RU的吞吐量。这些RU是否在所有分区上都具有弹性?还是始终固定为5,000RUs / 800,000分区= 0.00625 RUs /分区?

2 个答案:

答案 0 :(得分:4)

如@nick所述,RU是跨物理分区而不是逻辑分区分配的。同一物理分区中可能有一个或多个逻辑分区,但是每个基础物理分区的最大容量为10GB和10,000 RU。

如果您已分配5,000个RU,则这些RU会平均分配到分配的物理分区上。如果您创建一个具有5,000 RU作为初始分配的集合,则可能会发现您有5个物理分区,每个分区有1,000 RU。您可以在数据库的指标刀片中进行检查(查看吞吐量,单个集合)。

当物理分区达到其10GB限制或RU达到10,000 RU容量时,物理分区的数目将被重新排列或增加。然后,将逻辑分区拆分为不同的(或新的)物理分区。而且,如果物理分区数量增加而不增加RU,则每个分区的RU会减少一点(例如,如果您将物理分区从5个减少到10个,则现在将5,000个RU分成10种方法,而不是5种,即500 RU分区而不是1,000)。

答案 1 :(得分:3)

它在每个物理分区之间平均共享。您在想的是逻辑分区,这没有任何意义。文档中不清楚,但是您可以找到类似here的提示。

这个较早的帖子还解释了: "The provisioned throughput of a collection is distributed evenly among the partitions within a collection."

即使这篇文章很旧(2年),我也找不到其他说明。测试它也会为您带来相同的结果。