【发布时间】:2022-01-15 15:12:30
【问题描述】:
我正在将条目写入 DynamoDB 表:
import time
...
for item in my_big_map.items():
Ddb_model(column1=item[0], column2=item[1], column_timestamp=time.time()).save()
我怀疑这很慢,所以我正在考虑使用诸如concurrent.futures 之类的多线程策略将每个条目写入表:
def write_one_entry(item):
Ddb_model(column1=item[0], column2=item[1], column_timestamp=time.time()).save()
with concurrent.futures.ThreadPoolExecutor() as executor:
executor.map(write_one_entry, my_big_map.items())
但是,我在 PynamoDB 的文档中发现了这种 batch writes 的做法。看起来这是一种加速写入操作的便捷方式。
是否也使用了多线程策略?
PynamoDB 实现是否比使用concurrent.futures 进行批量写入更好?
【问题讨论】:
-
没有回答你的问题,但是 - 你为什么不使用 SDK?
-
我正在研究由前任工程师编写的既定包。我不知道为什么选择了 Pynamo。如果我切换到 SDK,这将是一个严重的重构项目……我应该切换的任何理由?
标签: python-3.x multithreading amazon-web-services amazon-dynamodb pynamodb