当我尝试写入100,000条记录时出现了ProvisionedThroughputExceededException错误

时间:2019-10-18 04:52:17

标签: node.js amazon-dynamodb

当我尝试在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。谢谢,请让我知道如何解决该问题。

2 个答案:

答案 0 :(得分:1)

我认为最好的措施是在循环(“试图在Dynamodb中写入100,000条记录”的循环)中插入故意的延迟。如果在每个BatchWriteItem之后您的程序/线程将休眠几秒钟,那么您将在较长的时间段内分散写入,从而有效地减少了处理它们所需的(每秒)容量。

或者,您也可以尝试使用on demand mode。但是请注意,使用这种模式很难预测您的财务成本。但是,如果此写操作是一次性的,则可以暂时切换到此模式。

答案 1 :(得分:0)

我发现了这样的解决方案,我们在配置DynamoDB时需要添加maxRetriesretryDelayOptions选项:

let dynamodb = new AWS.DynamoDB({
    apiVersion: '2012-08-10',
    region: 'ap-southeast-1,
    maxRetries: 13,
    retryDelayOptions: {
        base: 200
    }
});