0

DynamoBにINSERTまたはUPDATEがあるときにトリガーされるPythonラムダ関数があります。わかっているように、ストリームベースの呼び出しです。 Dynamodbに1000個のレコードが挿入されていて、バッチサイズを1に設定した場合、ラムダは各レコードを順番に実行しています。 1000レコードすべてを並行して実行する(同時実行)にはどのように変更しますか?私は私の仕事のために使用しているもの以外の "concurrent.futures import ThreadPoolExecutor"のような追加のPythonモジュールをインポートする必要がありますか? (私のコードは本当にここに投稿するのが大変です)ストリームベースのラムダ同時実行

答えて

0

ストリームの処理の並列性を制御することはできません。

AWS DynamoDBストリームは、DynamoDBテーブルの行をシャードに分割します。各シャードは順次処理されます(一度に1バッチ)。これは、行の "順序どおりの"処理を保証するためです。

ただし、テーブルに書き込みが多い場合、DynamoDBストリームは分割して、より小さな親と子のシャードに分割できます。破片は並行して処理することができます。

は、あなたができる最善の制御は「1からアップあなたのデータベースの更新を同時に処理できると確信しているならば、あなたは、同時に複数の行にあなたを処理することができ、「バッチサイズ」を増やしているhttp://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html

を参照してください。あなたのラムダ関数の中でバッチサイズ> 1を受け取るでしょう。

+0

ありがとうございます!それは働いている。 – pyhotshot