我对分区如何影响Azure Cosmos DB的大小限制和吞吐量值感到困惑(在我们的例子中,我们使用的是documentdb)。如果我正确理解documentation。
对于分区集合,10G存储限制是否适用于每个分区?
吞吐量值ex。 400RU / S适用于每个分区,而不是收集?
答案 0 :(得分:2)
什么是收藏?
集合是一组文档及其关联的JavaScript应用程序逻辑。集合是可计费实体,其中成本由吞吐量和使用的存储量决定。集合可以跨越一个或多个分区或服务器,并且可以扩展以处理几乎无限量的存储或吞吐量 集合也是Azure Cosmos DB的计费实体。每个集合按小时计费,具体取决于预配置的吞吐量和已用存储空间。有关更多信息,请参阅Azure Cosmos数据库定价。
有关详情,请参阅下面引文中的粗体文字:
预配吞吐量
无论如何,您都可以存储数据并提供吞吐量容量。 每个容器按小时计费,基于存储的数据量(以GB为单位)和以100 RU /秒为单位保留的吞吐量,最小值为400 RU /秒。无限制的容器每个分区至少有100 RU /秒。
取自Request Units in Azure Cosmos DB:
在开始新的集合,表格或图表时,您可以指定要保留的每秒请求单位数(RU /秒)。根据预配置的吞吐量,Azure Cosmos DB会分配物理分区来托管您的集合,并在分区增长时分割/重新平衡数据。
答案 1 :(得分:1)
此处的其他答案为吞吐量配置提供了一个很好的起点,但未能触及在文档中经常没有提到的重点。
您的吞吐量实际上分为集合中的物理分区数。因此,对于具有10个物理分区的1000RU / s的多分区集合,它实际上是每个分区100RU / s。因此,如果您有更频繁访问的热分区,即使您没有超过分配集合的总RU,您也会收到限制错误。
对于单个分区集合,您显然可以获得为该分区分配的完整RU,因为它是唯一的分区。
如果您正在使用多分区集合,则应努力选择具有偶数访问模式的分区密钥,以便您的工作负载可以均匀分布在底层分区中,而不会出现瓶颈。
答案 2 :(得分:0)
- 对于分区集合,10G存储限制是否适用于每个分区?
醇>
这是正确的。分区集合中的每个分区最大可以为10GB。
- 整个价值ex。 400RU / S适用于每个分区,而不是集合?
醇>
吞吐量处于收集级别而不是分区级别。分区收集的最小RU / S是2500 RU / S而不是400RU / S. 400RU / S是非分区集合的默认设置。