1

我正在尝试将约 1.1 亿条记录批量导入 DynamoDB。

使用 CFBatchRequest:

    $queue = new CFBatchRequest(800);

然后向其中添加 800 个 put_item() 只会导致大约 190 次写入/秒,而且奇怪的是每隔一段时间就会导致 cURL 错误。我使用什么大小的实例似乎并不重要。我试过做少于或多于 800 个。

做单件 put_item() 非常慢。而且batch_write_item() 没有重试功能,而且只限制在25 次。

我读到 EMR 根本不使用任何批处理,这里的搜索显示一些人遇到了问题。

有没有更好的方法来解决这个问题?

4

1 回答 1

0
  1. 您使用的是最新版本的 SDK 吗?(此时为1.5.11)
  2. 减少请求池的大小将减少批处理错误的机会。如果将其设置为 800,则几乎可以肯定会淹没 cURL。
  3. 如果这没有帮助,请在 AWS 官方论坛上PM我,参考这个 SO 线程,我们可以再聊聊。
于 2012-08-11T05:50:01.000 回答