如何从JSON文件快速高效批量创建Amazon DynamoDB表项?
批量导入JSON数据到Amazon DynamoDB的高效方案
方法一:用AWS CLI的batch-write-item批量写入
这是最直接的手动方案,适合一次性操作:
- 转换JSON格式:DynamoDB的批量写入要求每个Item的属性带上类型标识(比如字符串用
S,数字用N)。如果你的原始JSON是普通键值对,写个简单的Python脚本快速转换就行,比如:
import json # 读取原始JSON文件 with open('original_data.json', 'r') as f: items = json.load(f) # 转换为batch-write-item要求的格式 batch_items = { '你的表名': [ {'PutRequest': {'Item': {k: {'S': str(v)} if isinstance(v, str) else {'N': str(v)} for k, v in item.items()}}} for item in items ] } # 拆分批次(每次最多25条) batches = [batch_items['你的表名'][i:i+25] for i in range(0, len(batch_items['你的表名']), 25)] # 保存每个批次到单独文件 for idx, batch in enumerate(batches): with open(f'batch_{idx}.json', 'w') as f: json.dump({'你的表名': batch}, f)
- 批量执行写入:用AWS CLI循环调用每个批次文件:
for file in batch_*.json; do aws dynamodb batch-write-item --request-items file://$file done
这个方法把10万次单写变成4000次批量请求(每次25条),效率提升明显。
方法二:用AWS Data Pipeline可视化导入
如果不想写代码,用Data Pipeline的可视化流程更省心:
- 把你的JSON文件上传到Amazon S3桶
- 登录AWS控制台,进入Data Pipeline服务,创建新管道
- 选择“导入数据到DynamoDB”的模板,配置数据源为S3上的JSON文件,目标为你的DynamoDB表
- 配置字段映射(自动识别或手动匹配),启动管道后,系统会自动批量处理所有数据,无需手动拆分批次
方法三:用Amazon S3 + Lambda临时处理(适合技术稍熟的用户)
- 把JSON文件上传到S3,触发一个临时Lambda函数
- Lambda函数读取S3文件,按25条拆分批次,调用DynamoDB的
batch_write_itemAPI批量写入 - 写完后删除Lambda函数即可,全程不用本地执行脚本
内容的提问来源于stack exchange,提问作者HansJuergen
相关产品推荐
相关产品推荐

