我将大量数据编入DynamoDB并尝试批量写入以增加实际吞吐量(即使索引更快)。这里是(this是原始源)的代码块:boto dynamodb:有没有优化批量书写的方法?
def do_batch_write(items,conn,table):
batch_list = conn.new_batch_write_list()
batch_list.add_batch(table, puts=items)
while True:
response = conn.batch_write_item(batch_list)
unprocessed = response.get('UnprocessedItems', None)
if not unprocessed:
break
# identify unprocessed items and retry batch writing
我使用博托2.8.0版。如果items
有超过25个元素,我会得到一个例外。 有没有办法增加这个限制?此外,我注意到有时候,即使items
更短,也不能一次处理所有这些。但是似乎没有这种情况发生的频率,或者尝试之后有多少元素未经处理,并且原始长度为items
。 有没有办法避免这种情况,并尝试一口气写下所有内容?现在,最终目标是加快处理速度,而不是避免重复,因此在连续尝试之间长时间睡眠不是一种选择。
THX
我已经做了一些在同一台机器上运行多个索引工作的实验。这并没有增加实际的吞吐量。我认为网络是我的瓶颈。 – 2013-03-26 18:19:52
您是否尝试在与DynamoDB表相同的区域中的EC2实例上运行它? – garnaat 2013-03-26 18:46:01
他们在默认情况下不在同一个地区吗? – 2013-03-27 12:53:02