AWS DynamoDB 如何计算查询的读取单元数?
How does AWS DynamoDB count read units for Query?
我正在研究 table,其中每个项目大约是。 3KB 大小。
现在根据文档,read units
在 4s 中计算 - 即对于每个小于 4 kb 的项目,它将被计为 4KB,并占用1 个阅读单元。
假设我有 table 件 100
件商品,每件尺寸 3kb
件(总计 table = 300kb
)。我查询了50
项满足查询条件,返回给我
现在,读取的单位是否会像这样计算:50 items
of 3kb size (rounded to 4kb)
= 200kb
= 200/4 = 50 read units
?
感谢任何帮助! :) 谢谢!
我认为这应该可以澄清问题:
DynamoDB calculates the number of read capacity units consumed based on item size, not on the amount of data that is returned to an application.
查询时,可以指定一个参数ReturnConsumedCapacity
来获取消耗的读取容量单位数:
TOTAL — The response includes the aggregate number of read capacity units consumed.
这也取决于你是使用最终一致性读取(默认用于查询)还是强一致性:
- 对于最终一致读取(1个单位是2个读取):200 / 4 / 2 = 25个单位
- 对于高度一致读取(1个单位是1个读取):200 / 4 / 1 = 50个单位
是的,如果您阅读 50 篇 3K 的文章,每篇都具有 高度一致的 阅读,成本将为 50 单元。如果你最终一致读取,答案将是一半 - 25.5 个单位。
但是,如果您还没有意识到,还有另一个重要的成本问题。您提到您实际上有 100 个项目,但使用 "query condition" 只能检索其中的一半。 DynamoDB 实际上有两种类型的 "conditions" 查询。其中一个叫做 key conditions (KeyConditions
or KeyConditionExpression
) 另一个是 post-query filters(QueryFilter
或 FilterExpression
)。如果您使用关键条件,您只需为检索到的项目付费——如您所愿。但是,如果您使用过滤,您将为所有项目付费,而不仅仅是检索到的项目。因此,在您的示例中,您将支付 100 个单位而不是 50 个单位。
我正在研究 table,其中每个项目大约是。 3KB 大小。
现在根据文档,read units
在 4s 中计算 - 即对于每个小于 4 kb 的项目,它将被计为 4KB,并占用1 个阅读单元。
假设我有 table 件 100
件商品,每件尺寸 3kb
件(总计 table = 300kb
)。我查询了50
项满足查询条件,返回给我
现在,读取的单位是否会像这样计算:50 items
of 3kb size (rounded to 4kb)
= 200kb
= 200/4 = 50 read units
?
感谢任何帮助! :) 谢谢!
我认为这应该可以澄清问题:
DynamoDB calculates the number of read capacity units consumed based on item size, not on the amount of data that is returned to an application.
查询时,可以指定一个参数ReturnConsumedCapacity
来获取消耗的读取容量单位数:
TOTAL — The response includes the aggregate number of read capacity units consumed.
这也取决于你是使用最终一致性读取(默认用于查询)还是强一致性:
- 对于最终一致读取(1个单位是2个读取):200 / 4 / 2 = 25个单位
- 对于高度一致读取(1个单位是1个读取):200 / 4 / 1 = 50个单位
是的,如果您阅读 50 篇 3K 的文章,每篇都具有 高度一致的 阅读,成本将为 50 单元。如果你最终一致读取,答案将是一半 - 25.5 个单位。
但是,如果您还没有意识到,还有另一个重要的成本问题。您提到您实际上有 100 个项目,但使用 "query condition" 只能检索其中的一半。 DynamoDB 实际上有两种类型的 "conditions" 查询。其中一个叫做 key conditions (KeyConditions
or KeyConditionExpression
) 另一个是 post-query filters(QueryFilter
或 FilterExpression
)。如果您使用关键条件,您只需为检索到的项目付费——如您所愿。但是,如果您使用过滤,您将为所有项目付费,而不仅仅是检索到的项目。因此,在您的示例中,您将支付 100 个单位而不是 50 个单位。