我想知道在更新具有ListAttribute的现有项目时如何计算DynamoDB的写入容量。
模型的概括概念如下:
Model A
id = UUID
name = Str
...other fields
Model A Map Attribute
Model B
id = UUID
modelA_list = ListAttr[Model A Map Attribute]
据我所知,唯一相关的计算信息是新写入,其中容量是通过向上舍入到下一个KB来计算的。因此,例如,如果我在所有组合的字段上总共有899个字符(假设是字母数字),则它将是总共999个字节(包括一个项目的100个字节),这将是1个WCU。如果我有901个字符,那么它将是2个WCU。
但是,如果我在预先存在的项目上使用UpdateItem,那么计算是否会添加到项目或整个项目中的其他字节?例如,如果我有一个模型A地图属性需要1个WCU,而模型B有10个模型A地图属性。如果我将另一个模型A地图属性附加到模型B,它会花费12 WCU吗?
答案 0 :(得分:4)
以下是计算更新项目的WCU的方法:
DynamoDB会考虑项目之前和之后的大小 更新。消耗的预配置吞吐量反映了较大的吞吐量 这些项目大小。即使您只更新项目的子集也是如此 属性,UpdateItem仍将消耗全部数量 预配置吞吐量("之前""之后"项目中较大者) 尺寸)。
参考:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/CapacityUnitCalculations.html