0

大量のファイルを次のように処理しています。最初にすべてのファイルをEC2インスタンスにダウンロードしてから、各ファイルを順番に処理してDynamoDDBテーブルにインデックスを付けるスクリプトを実行します(テーブルの各アイテムは1行に対応します)ファイル内)。次に、ファイルなどの次のバッチをダウンロードします。

現在、AWS GUIコンソールを介してプロビジョニングされたスループットを調整していますが、ダウンロードフェーズとインデックス作成フェーズの両方で同じになります。明らかに、これは最適ではありません。ダウンロード中はデータベースとまったく通信しないため、このフェーズで必要な書き込みスループットは基本的に0です。

したがって、私がやりたいのは、インデックス作成を開始するときにプロビジョニングされたスループットをプログラムで調整し、インデックス作成を停止してダウンロードを開始するときにプログラムで調整することです。

1回のリクエストで書き込みt/pをどれだけ増やすことができるかについて制限はありますか?たとえば、5から120に変更できますか?そうでない場合、リクエストの数とt / pを値Xから値Y(X << Y)に調整するために必要な時間を計算するにはどうすればよいですか?t / pを減らすために同様の計算を行う必要がありますか?

Pythonbotoを使用しています。

ありがとう

4

1 に答える 1

0

スケールアップするときは、書き込みプロビジョニングを 2 倍にすることしかできないため、5 の場合は最大 10 まで可能で、それが開始されるまで 20 ~ 30 秒待ってから、再び 20 まで倍増します。好きなだけスケールダウンできます。

AWS FAQに従って:

Q: 1 回のリクエストでプロビジョニングされたスループットを変更できる量に制限はありますか? はい。Amazon DynamoDB では、1 回の UpdateTable API 呼び出しで、プロビジョニングされたスループット レベルを最大 100% 変更できます。スループットを 100% 以上向上させたい場合は、単純に UpdateTable を再度呼び出すことができます。

たとえば、テーブルに 1,000 単位の書き込み容量がプロビジョニングされている場合、1 回の API 呼び出しでテーブルを 3,000 に更新することはできません。これは、1 回の UpdateTable 操作で許可されている最大変更数を超えているためです。スループットを 1,000 単位から 3,000 単位の書き込み容量に増やすには、UpdateTable を呼び出して最初にスループットを 2 倍の 2,000 にし、次に UpdateTable をもう一度呼び出して 3,000 書き込み/秒に到達させます。

于 2013-02-07T17:44:12.003 に答える