使用Projection Expressinos查询DynamoDB会降低读取容量单位消耗吗?

vdk*_*vdk 6 database amazon-web-services nosql amazon-dynamodb

一直在浏览DynamoDB文档,但无法验证以下内容.

  1. 在DynamoDB中ProjectionExpression的主要目的是什么?
  2. 它是否会降低读取容量单位消耗量?
  3. 如果不是 - 无论您是读取整个项目还是只读几个属性,Dynamodb都会收取相同的金额?

任何帮助表示赞赏!谢谢!

小智 10

根据AWS CLI命令参考:https://awscli.amazonaws.com/v2/documentation/api/latest/reference/dynamodb/query.html “DynamoDB根据项目大小计算消耗的读取容量单位数,而不是根据返回到应用程序的数据量。无论您请求所有属性(默认行为)还是仅请求其中一些属性(使用投影表达式),消耗的容量单位数都是相同的。该数字也将是无论是否使用 FilterExpression 都是一样的”


ket*_*iya 9

  1. 通过使用一个 ProjectionExpression,您可以减少 DynamoDB 和您的应用程序之间传输的数据量,从而限制网络带宽。
  2. 它没有。我试过了,但找不到关于此的官方文档。但是,如果您在上查看内容Query,它会说来自 a 的过滤器FilterExpression“在处理查询之后,但在将结果返回给用户之前应用”。我会为ProjectionExpressions假设相同的行为。
  3. 与上面的 #2 类似,您需要为阅读整个项目付费,而不仅仅是您请求的属性。这样做的另一个证明是对他们是如何计算的读/写单元的文档。他们从不单独提及属性。