次の操作を実行する python スクリプトがあります。テキスト ファイルを 1 行ずつ読み取ります。各行に関する情報は、DynamoDDB テーブルに記録する必要があります。取り込まれた各行を処理し、次のように 1 つの書き込みを実行します。
with open(fPath, 'r') as f:
for line in f:
# process line, extract data to be written into DDB into item_data
# also extract key
item = table.new_item(hash_key=key_from_line,attrs=item_data)
item.put()
実効スループット、つまり 1 秒あたりの書き込み回数 (平均) が、AWS DDB コンソールでテーブルに設定した最大スループットよりもはるかに低いことに気付きました。現在、ライン処理段階で大きな非効率性が存在する可能性があります。しかし、別の方法でテーブルに書き込むことでスピードアップできるかどうか疑問に思っています。たとえば、アイテムの配列を収集してから、それらを一度にすべて書き込むことは理にかなっていますか? もしそうなら、配列の最適なサイズを決定する方法はありますか? 書き込みを高速化する他の簡単な (そしておそらくそれほど単純ではない方法) はありますか?