我们有一个写入容量为1,000的dynamodb表,但是当在一个事务中将约170个项目的批处理写入数据库时,它会遇到com.amazonaws.services.dynamodbv2.model.ProvisionedThroughputExceededException: The level of configured provisioned throughput for the table was exceeded
。
根据design doc,
As implemented, this protocol requires 7N+4 writes
,是否意味着在一次交易中写入170个项目实际上需要7 * 170 + 4 = 1194个单位?
答案 0 :(得分:0)
几乎。这意味着您将有170个项目的1194次写入。但是,对于单位数(写入容量),它取决于项目大小以及写入dynamodb的速度。来自doc:
1 write capacity unit per item × 100 writes per second = 100 write capacity units
和1个单位用于1KB的数据,所以:
1.5 KB / 1 KB = 1.5 --> 2 units
这意味着,如果您的商品是1.5KB,则需要2个单位才能写入1个商品。如果你在1秒内完成整批,即1194次写入,你实际上需要1194x2单位。 (我不确定,事务库需要写的项目有多大,它们实际上可能很小,所以只消耗1个单元)
你也可以考虑: