首页 > 解决方案 > 为 dynamoDB 的小对象计算 RCU

问题描述

假设我们有一个平均项目大小为 1 KB 的表。我们执行一个读取 3 个此类项目的查询。现在根据我阅读的内容,RCU 的数量应该是(强一致性读取):(读取的项目数)* ceil(item_size/4) = 3 * ceil(1/4) = 3*1 = 3。

所以想确认:这是正确的吗?或者我们是否使用单个 RCU,因为读取的消息的总大小为 3,小于 4。

标签: amazon-web-servicesamazon-dynamodb

解决方案


RCU 适用于 1 次高达 4KB 的强一致性读取。

因此,您可以为 1 个 RCU 查询()四个 1KB 的项目。

由于您只有 3 个要读取,因此将消耗 1 个 RCU。

使用 GetItem() 来获取相同的 3 条记录将花费 3 RCU。

假设您有 100 个匹配 (HK+SK) 查询的项目,但您还使用过滤器进一步选择要返回的记录;所以你只能得到 4 条记录。该查询将占用 25 个 RCU,因为即使没有返回记录,仍然需要读取这些记录。

参考可以在这里找到:

查询 - 读取具有相同分区键值的多个项目。返回的所有项目都被视为单个读取操作,其中 DynamoDB 计算所有项目的总大小,然后向上舍入到下一个 4 KB 边界。例如,假设您的查询返回 10 个项目,它们的组合大小为 40.8 KB。DynamoDB 将操作的项目大小四舍五入为 44 KB。如果查询返回 1500 项,每项 64 字节,则累积大小为 96 KB。


推荐阅读