当我尝试在Dynamodb中写入100,000条记录时,遇到以下错误消息The level of configured provisioned throughput for the table was exceeded. Consider increasing your provisioning level with the UpdateTable API
。我已经使用BatchWriteItem
在1,000之后的1,000条记录中将数据插入到Dynamodb数据库中。
而且,当我尝试同时增加Maximum provisioned capacity
的读取和写入时,根据图像显示的容量不应超过40,000。谢谢,请让我知道如何解决该问题。
答案 0 :(得分:1)
我认为最好的措施是在循环(“试图在Dynamodb中写入100,000条记录”的循环)中插入故意的延迟。如果在每个BatchWriteItem
之后您的程序/线程将休眠几秒钟,那么您将在较长的时间段内分散写入,从而有效地减少了处理它们所需的(每秒)容量。
或者,您也可以尝试使用on demand mode。但是请注意,使用这种模式很难预测您的财务成本。但是,如果此写操作是一次性的,则可以暂时切换到此模式。
答案 1 :(得分:0)
我发现了这样的解决方案,我们在配置DynamoDB时需要添加maxRetries
和retryDelayOptions
选项:
let dynamodb = new AWS.DynamoDB({
apiVersion: '2012-08-10',
region: 'ap-southeast-1,
maxRetries: 13,
retryDelayOptions: {
base: 200
}
});