【问题标题】:Throughput value for Azure Cosmos dbAzure Cosmos db 的吞吐量值
【发布时间】:2017-09-12 22:04:25
【问题描述】:

我对分区如何影响 Azure Cosmos DB 的大小限制和吞吐量值感到困惑(在我们的例子中,我们使用的是 documentdb)。如果我正确理解documentation

  1. 对于分区集合,10G 存储限制适用于每个分区吗?

  2. 吞吐量值 ex。 400RU/S适用于每个分区,不是集合?

【问题讨论】:

    标签: azure azure-cosmosdb


    【解决方案1】:
    1. 无论您使用单分区集合还是多分区集合,每个分区都可以达到 10 Gb。这意味着单分区集合不能超过该大小,而多分区集合可以

    取自Azure Cosmos DB FAQ

    什么是集合?

    集合是一组文档及其关联的 JavaScript 应用程序逻辑。集合是一个计费实体,其中成本由吞吐量和使用的存储决定。集合可以跨越一个或多个分区或服务器,并且可以扩展以处理几乎无限量的存储或吞吐量。
    集合也是 Azure Cosmos DB 的计费实体。根据预置吞吐量和已用存储空间,每个集合按小时计费。有关详细信息,请参阅 Azure Cosmos DB 定价。

    1. 集合计费,其中一个集合可以有一个或多个分区。由于 Azure 分配分区来托管您的集合,因此 RU 的数量需要是每个集合。否则,拥有大量分区的客户将获得比拥有相同集合但分区更少的其他客户更多的 RU。

    有关详细信息,请参阅下面引用中的粗体文本:

    取自Azure Cosmos DB Pricing

    预置吞吐量

    在任何规模下,您都可以存储数据和预置吞吐能力。 每个容器按小时计费,基于存储的数据量(以 GB 为单位)和预留的吞吐量,以 100 RUs/秒为单位,最低为 400 RUs/秒。无限容器每个分区至少有 100 RU/秒。

    取自Request Units in Azure Cosmos DB

    当开始一个新的集合、表格或图表时,您可以指定您希望保留的每秒请求单位数(RU 每秒)。根据预配的吞吐量,Azure Cosmos DB 分配物理分区来托管您的集合,并随着数据的增长跨分区拆分/重新平衡数据。

    【讨论】:

    • 重要的是要提到如何在多分区集合中跨物理分区分布 RU,以便进行适当的容量规划。有关更多信息,请参阅我的答案。
    【解决方案2】:

    此处的其他答案为吞吐量配置提供了一个很好的起点,但未能触及文档中未经常提及的重要点。

    您的吞吐量实际上是按集合中的物理分区数划分的。因此,对于为具有 10 个物理分区的 1000RU/s 配置的多分区集合,它实际上是每个分区 100RU/s。因此,如果您有更频繁地访问的热分区,即使您没有超过分配给集合的总 RU,您也会收到限制错误。

    对于单个分区集合,您显然会获得为该分区分配的完整 RU,因为它是唯一的。

    如果您使用多分区集合,则应努力选择具有均匀访问模式的分区键,以便您的工作负载可以均匀分布在底层分区中,而不会出现瓶颈。

    【讨论】:

      【解决方案3】:
      1. 对于分区集合,10G 存储限制适用于每个分区吗?

      没错。分区集合中的每个分区的大小最大为 10GB。

      1. 整个值前。 400RU/S 适用于每个分区,而不是集合?

      吞吐量是在集合级别,而不是在分区级别。分区集合的进一步最小 RU/S 是 2500 RU/S 而不是 400RU/S。 400RU/S 是未分区集合的默认值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-24
        • 2018-08-06
        • 2021-04-05
        • 1970-01-01
        • 2020-08-29
        • 1970-01-01
        相关资源
        最近更新 更多