DocumentDB 用户定义的性能定价

DocumentDB User Defined Performance Pricing

我正在考虑为 DocumentDB 迁移到新的分区 collections 并且有几个问题文档和定价计算器似乎有点不清楚。

定价:

在以下情况下,我的分区 collection 将按 1GB 数据收费 30.02 美元/月,每小时 RU 使用量固定为 500:

这是否意味着如果我的用户每天平均只访问 500 RU 的数据大约 12 小时,这意味着我的 collection 有一半时间未使用,但仍然 运行 和 AVAILABLE(未关闭)价格降至 15.13 美元/月,如计算器所示:

或者自从我的 collection 启动并且 运行 后,我会被收取 30.01 美元/月的全部费用吗?

当我尝试在分区上启动最低选项时,当我访问门户网站并看到 606 美元/月的估计但没有任何详细信息时,我感到很困惑 collection:

如果我连续 744 小时每秒使用分配给我的所有 10,100 RU,该门户是否仅指示当月我可以支付的最高费用?

如果按小时使用计费,并且在第二种情况下使用的某些小时平均使用的 RU 下降到 100,成本会进一步下降吗?分区 collections 的 Azure 计费是否根据每小时使用量而不是像现有 S1/S2/S3 层那样的总运行时间波动?

如果是这样,那么系统如何确定该小时的收费标准?如果 RU 使用的大部分时间是 100/秒,但在那个小时的几秒钟内它会飙升到 1,000,它会在整个小时内以秒为单位平均下来并且只向我收取 200-300 RU 的费用吗?我需要为那个小时使用的最高 RU 付费吗?

表现:

由于我的数据将位于不同的分区并需要分区 id/key 才能访问,因此迁移到此方案会影响性能吗?如果是这样,我能期待什么,或者它会不会被我的用户检测到?

重试和错误处理:

我假设我在当前场景中使用的 TransientFaultHandling Nuget 包仍然适用于新场景,但可能不会用得那么多,因为我的 RU 容量要大得多,或者我是否需要重新考虑我的方式处理超过 RU 上限的请求?

因此,Azure documentDB 的定价方式是您付费保留一定数量的数据存储大小(以 GB 为单位)and/or 吞吐量(以请求单位 (RU) 为单位)。这些费用按储备到位的每小时收费(不需要使用)。此外,只要有一个文档帐户处于活动状态就被认为是一个活动的 S1 订阅,直到创建了一个文档数据库,然后你的数据库的定价才会接管。有两个选项可用:

选项 1 (Original Pricing)

您可以选择 S1、S2 或 S3。每个都提供相同的 10GB 存储空间,但吞吐量不同,分别为 250RU/1000RU/2500RU。

选项 2 (User-defined performance)

这是新的定价结构,可以更好地分离尺寸和吞吐量。此选项还提供分区。请注意,对于用户定义的性能,您将按使用的 GB 数据存储量收费 (Pay as you go storage)。

With user-defined performance levels, storage is metered based on consumption, but with pre-defined performance levels, 10 GB of storage is reserved at the time of collection creation.

单分区集合

最低设置为 400RU 和 1GB 数据存储。

最大设置为 10,000RU 和 250GB 数据存储。

分区集合

最低设置为 10,000RU 和 1GB 数据存储。

最大值设置为 250,000RU 和 250GB 数据存储(EDIT 可以要求更大)。

因此,您至少要支付与所选选项相关的每小时费用。不幸的是,不支付一个小时的唯一方法是删除数据库和帐户。

不同 RU 的成本

就在 1 小时的时间范围内更改您的 RU 而言,您需要按照您请求的峰值储备 RU 的成本为该小时付费。因此,如果您的电量为 400RU,然后将其提高到 1000RU 1 秒,您将按该小时的 1000RU 费率收费。即使对于其他 59 分钟 59 秒,您将其设置回 400RU。

Will I see a performance hit by moving to this scenario since my data will be on separate partitions and require partition id/key to access?

其中一个关于性能的话题有一些需要考虑的事情,但总的来说没有。

如果您有一个具有足够值的合理分区键,您应该不会看到性能下降。这意味着您需要对数据进行分区,以便在查询时可以使用分区键,并且需要使用相同的分区键将查询所需的数据保留在同一分区中。

如果您在没有 partitionkey 的情况下进行查询,您将看到严重的惩罚,因为查询是按分区解析和执行的。

选择分区键时要记住的一件事是每个分区的限制,即 10GB 和 10K RU。这意味着您希望在分区上均匀分布以避免出现 "hot" 分区,这意味着即使您总共扩展到足够多的 RU,您也可能会收到 429 个特定分区。