为什么DynamoDB简单的deleteItem操作使用2个CapacityUnits?

时间:2014-04-02 16:15:41

标签: amazon-dynamodb

我有一个简单的删除操作,如下所示:

{
  "TableName":"demo_events",
  "Key":{
    "category":{"S":"Demo"},
    "DynamoID":{"S":"164933868Slt1396454204"}
  },
 "Expected":{
    "category":{
      "Exists":true,
      "Value"{"S":"Demo"}
    }
 },
 "ReturnConsumedCapacity":"TOTAL",
 "ReturnItemCollectionMetrics":"SIZE"}

数据库中只有一个具有该ID的项目。答案如下:

{ 
  ConsumedCapacity: { 
    CapacityUnits: 2, 
    TableName: 'demo_events'
  },
  ItemCollectionMetrics: { 
    ItemCollectionKey: { 
      category: { S: 'Demo' } 
    },
    SizeEstimateRangeGB: [ 0, 1 ] } 
}

这不应该只消耗1个写入单元吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

对于只写一个项目的PutItem,UpdateItem和DeleteItem,DynamoDB将项目大小四舍五入到下一个1 KB。如果除了键属性之外,项目中还有其他属性,则它们总共可以加起来超过1 KB。

如果表上有本地二级索引(LSI),DeleteItem也会从LSI中删除相应的项目,项目大小将占用的总写入容量单位。当为表定义LSI时,DeleteItem响应返回ItemCollectionMetrics。似乎根据样本响应为表格定义了LSI

问候