我正在为batchWriteItem使用DynamoDB API。
我在PHP SDK2上编写了一个包装器,它没有问题。
我有我的代码,用于将batchWriteItem请求拆分为25个项,以及重新尝试响应的UnprocessedItems键中的项。现在,我正在使用它将一个大型数据库迁移到DynamoDB,但是发生了一些奇怪的事情.
简而言之,UnprocessedItems**.**一次只处理一个项,并在 batchWriteItem中返回其余的项。
详细地说,这就是正在发生的事情:
batchWriteItem放置25个项目。UnprocessedItems。UnprocessedItems中返回。UnprocessedItems中返回。我将我的写容量单位设置为8,ConsumedWriteCapacityUnits metrics指标显示它目前运行在1~ 1.5之间。
有人知道为什么会这样吗?
我正在确认这些项目实际上正在被放入DB中,但是,如果batchWriteItem所做的只是一个接一个地处理项目,那么它确实没有任何意义。
======更新======
我发现batchWriteItem在Throttled Requests中的价值正在飞涨。
这是否意味着唯一的解决方案是提高写入容量单位,以便它能够处理节流请求?
发布于 2013-09-04 21:56:50
是的,听起来你需要增加你的写容量单位。有关吞吐量如何工作的详细信息,您应该在亚马逊DynamoDB论坛上提出问题并咨询亚马逊DynamoDB开发者指南。
另外,batchWriteItem上已经有一个包装器内置在SDK中,称为WriteRequestBatch类。
https://stackoverflow.com/questions/18606034
复制相似问题