如何在DynamoDB查询中计算消耗的读取容量单位

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在DynamoDB查询中计算消耗的读取容量单位相关的知识,希望对你有一定的参考价值。

我在亚马逊上看过这个页面,并且明白1 RCU是一个4KB的项目。

如果我有一个包含50个项目的表,我已经读过扫描将读取完整的50个项目并使用50 RCU。但是让我说我​​做了一个查询,我的表是10乘5,它还会使用50 RCU吗?

答案

扫描包含50个项目的表将仅消耗50 RCU,如果50个项目的总大小相等于200KB(对于强一致性读取,或400KB用于最终一致读取)。大多数项目都不是那么大,所以50个项目通常只需要大约10KB来存储意味着对50个项目的表进行全面扫描,最终的一致性,只需要大约3 RCU。

消耗的读取容量单位(RCU)取决于多个因素:

如果使用GetItem操作读取项目,则消耗的容量按4KB的增量计费,基于项目的大小(即,200B项目和3KB项目将消耗1RCU,而5KB项目将消耗2 RCU )

如果您使用“查询”或“扫描”操作读取多个项目,则所消耗的容量取决于所访问项目的累积大小(即使对于从查询过滤掉的项目或使用过滤器时扫描,您也会收到费用)。因此,如果您的查询或扫描访问10个项目,每个项目大小约为200个字节,那么它将只消耗1个RCU。如果您阅读了10个项目,但每个项目的大小约为5KB,则总消耗容量将为13 RCU(50KB / 4KB = 12.5,向上舍入,为13)

更重要的是,如果您执行最终的一致性读取,那么您可以将每个容量单位的大小加倍。因此,读取10个5KB的项目只需要7 RCU。

你可以在这里阅读more about throughput capacity

有几点需要注意:

  • 单个项目可能大到400KB,因此读取项目可能会消耗多达100 RCU。
  • 在计算项目大小时,属性名称也会计入项目大小,而不仅仅是它们的值!

以上是关于如何在DynamoDB查询中计算消耗的读取容量单位的主要内容,如果未能解决你的问题,请参考以下文章

AWS dynamoDB:在过滤器之前或之后计算/应用的读取容量?

DynamoDB读取吞吐量低于容量而没有任何限制

超过预置吞吐量时应该怎么做?

DynamoDB 读取请求单位和写入请求单位

DynamoDB 到 Redshift

如何在 CloudFormation 上将 DynamoDB 读/写容量模式设置为按需