1

DynamoDB に 1 億 1000 万件のレコードを一括インポートしようとしています。

CFBatchRequest の使用:

    $queue = new CFBatchRequest(800);

それに 800 個の put_item() を追加しても、1 秒あたり約 190 回の書き込みしか発生せず、奇妙なことに cURL エラーが頻繁に発生します。使用するインスタンスのサイズは問題ではないようです。そして、私は800以下またはそれ以上を試しました.

シングルトンの put_item() を実行すると、信じられないほど遅くなります。また、batch_write_item() には再試行機能がなく、さらに 25 個に制限されています。

EMR はバッチ処理をまったく使用していないことを読みました。ここで検索すると、問題を抱えている人が何人かいます。

これにアプローチするより良い方法はありますか?

4

1 に答える 1

0
  1. SDK の最新バージョンを使用していますか? (現時点では 1.5.11)
  2. 要求プールのサイズを小さくすると、バッチ処理エラーの可能性が減少します。800 に設定すると、ほぼ確実に cURL がフラッディングされます。
  3. それでも問題が解決しない場合は、この SO スレッドを参照して、公式の AWS フォーラムで私にPMを送信してください。これについてもう少しチャットできます。
于 2012-08-11T05:50:01.000 に答える