我正在尝试使用以下代码从EMR 5节点集群将超过2000万条记录加载到我的Dynamodb表中。但是,它需要很多小时才能完全加载。我有更多的庞大数据要加载,但我想在几分钟内完成加载。如何实现这一目标?
下面是我的代码。我只是更改了原始列名称,并且有20个要插入的列。问题在于加载速度慢。
import boto3
import json
import decimal
dynamodb = boto3.resource('dynamodb','us-west')
table = dynamodb.Table('EMP')
s3 = boto3.client('s3')
obj = s3.get_object(Bucket='mybucket', Key='emp-rec.json')
records = json.loads(obj['Body'].read().decode('utf-8'), parse_float = decimal.Decimal)
with table.batch_writer() as batch:
for rec in records:
batch.put_item(Item=rec)