<p>看来这是可能的。在</p>
<p>批处理写入可能无法写入“所有”项。在本例中,API成功,但未写入的项在响应中被指示为“UnprocessedItems”。您需要对此进行调查,然后重试这些项目。在</p>
<p>发生这种情况的典型原因是表吞吐量超过了(可能还有其他原因)。在</p>
<p>添加相关代码片段(感谢以下要点):</p>
<pre><code>while True:
response = dynamodb_conn.batch_write_item(batch_list)
unprocessed = response.get('UnprocessedItems', None)
if not unprocessed:
break
batch_list = dynamodb_conn.new_batch_write_list()
unprocessed_list = unprocessed[table_name]
items = []
for u in unprocessed_list:
item_attr = u['PutRequest']['Item']
item = dynamodb_table.new_item(
attrs=item_attr
)
items.append(item)
batch_list.add_batch(dynamodb_table, puts=items)
</code></pre>
<p>这些额外的阅读资料将告诉你细节——最后一个也是python代码。在</p>
<ol>
<li><a href="http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html" rel="nofollow">BatchWriteItem - Amazon DynamoDB</a></li>
<li><a href="http://agiletesting.blogspot.in/2012/05/correct-way-of-using-dynamodb.html" rel="nofollow">The correct way of using DynamoDB BatchWriteItem with boto</a></li>
<li>Python的要点:<a href="https://gist.github.com/griggheo/2698152" rel="nofollow">https://gist.github.com/griggheo/2698152</a></li>
</ol>