Dynamodb:是否会根据读取或写入容量删除计数?

Cla*_*ton 11 java amazon-web-services amazon-dynamodb

我无法在亚马逊上找到这方面的文档:有人知道删除操作是否会影响您的读取或写入容量?

我曾预料到它会算作"写",但我在测试中看到的行为似乎表明相反.有人能证实吗?

Ste*_*pel 13

好问题 - 虽然这似乎没有明确指出,但仍有两个强有力的暗示被计算为写操作(正如人们所期望的那样):

1)第时序数据和访问模式在亚马逊DynamoDB置备吞吐量准则解决效率缺失,是指受影响的写入吞吐量:

删除整个表比逐个删除项目效率要高得多,这实际上使写入吞吐量翻了一倍,就像执行put操作一样多的删除操作.

2)第响应的内DeleteItem API列出的返回值ConsumedCapacityUnits并且是指写容量单元:

操作消耗的写入容量单位数.此值显示应用于预配置吞吐量的数量.有关更多信息,请参阅Amazon DynamoDB中的预配置吞吐量.

  • 两年后,该链接背后的文章有一个明确的解释:"当您发出DeleteItem请求时,DynamoDB使用已删除项目的大小来计算预配置的吞吐量消耗." (6认同)

alb*_*ano 5

是的,确实如此。文档清楚地说:

PutItem, UpdateItem, 并DeleteItem允许条件写入,您可以在其中指定一个表达式,该表达式的计算结果必须为 true 才能使操作成功。如果表达式的计算结果为 false,DynamoDB 仍将消耗表中的写入容量单位:

  • 如果项目存在,则消耗的写入容量单位数取决于项目的大小。(例如,失败的条件写入 1 KB 项目将消耗一个写入容量单位;如果项目是两倍大小,则失败的条件写入将消耗两个写入容量单位。)

  • 如果该项不存在,DynamoDB 将消耗一个写入容量单位。

资料来源:http : //docs.aws.amazon.com/amazondynamodb/latest/developerguide/CapacityUnitCalculations.html#ItemSizeCalculations.Writes