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

时间:2012-02-21 22:39:56

标签: java amazon-web-services amazon-dynamodb

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

我原本以为它会算作“写”,但我在测试中看到的行为似乎表明相反。有人可以证实这一点吗?

2 个答案:

答案 0 :(得分:13)

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

1)Provisioned Throughput Guidelines in Amazon DynamoDB中的时间序列数据和访问模式部分解决了有效删除问题,并且指的是受影响的写入吞吐量:

  

删除整个表比删除更有效   逐个项目,这使写入吞吐量基本上翻了一番   你执行与put操作一样多的删除操作。

2)DeleteItem API中的响应部分列出了返回值 ConsumedCapacityUnits 并引用了写入容量单位:

  

操作消耗的写入容量单位数。这个   value显示应用于预配置吞吐量的数字。对于   更多信息,请参阅Provisioned Throughput in Amazon DynamoDB

答案 1 :(得分:2)

是的,确实。文件清楚地说:

  

PutItemUpdateItemDeleteItem允许条件写入,其中   您指定一个必须求值为true的表达式   操作成功。如果表达式的计算结果为false,则为DynamoDB   仍将使用表格中的写入容量单位:

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

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

  •   

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