我可以使用Boto3的DynamoDb BatchWrite插入多少条记录

时间:2018-11-23 11:57:15

标签: python-3.x amazon-dynamodb boto3

通过使用Boto3的批处理插入,最大可以将多少条记录插入Dynamodb的表中。假设我正在从大小为6gb的S3存储桶中读取我的输入json。

并且在批量插入时会引起任何性能问题。任何样本都是有帮助的。我只是根据我的发现开始研究这个问题。

谢谢。

2 个答案:

答案 0 :(得分:2)

您可以使用Boto3 batch_writer()函数执行此操作。批处理写入器负责将项目分块成批,重试等。您将批处理写入器创建为上下文管理器,将所有项目添加到上下文中,然后当批处理写入器退出上下文时发送您的批处理请求。 >

import boto3
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('table-name')

with table.batch_writer() as writer:
    for item in table_data:
        writer.put_item(Item=item)

在GitHub上有一个完整的工作代码示例:https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/python/example_code/dynamodb/batching/dynamo_batching.py

答案 1 :(得分:1)

您可以在BatchWriteItem的服务文档中找到类似的信息:

  

对BatchWriteItem的一次调用最多可以写入16 MB的数据,其中可以包含多达25个放置或删除请求。单个要写入的项目最大可以为400 KB。

除了消耗写入容量单位之外,没有性能问题。