[英]Export csv to dynamodb using boto3
我的要求是我有1000萬個CSV記錄,並且要將CSV導出到DynamoDB? 任何人都可以請你幫忙。 而且也可以導出制表符分隔的值嗎?
提前致謝。
將您的csv轉換為json格式並使用AWS BatchWriteItem DynamoDB API
確保在json中添加主鍵數據
import csv
import boto3
def convert_csv_to_json_list(file):
items = []
with open(file) as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
data = {}
data['temp'] = row['temp']
#populate remaining fields here
#................
items.append(data)
return items
def batch_write(items):
dynamodb = boto3.resource('dynamodb')
db = dynamodb.Table('table-name')
with db.batch_writer() as batch:
for item in items:
batch.put_item(Item=item)
if __name__ == '__main__':
json_data = convert_csv_to_json_list('file')
batch_write(json_data)
使用AWS BatchWriteItem DynamoDB API執行批量插入。
循環訪問文件內容並將其分批插入。
import boto3
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('sample_table')
with table.batch_writer() as batch:
for i in range(50):
batch.put_item(
Item={
'ORDERNO': 'dummy',
'DIRECTION': 'dummy',
'LATITUDE': 'dummy',
'LONGITUDE': 'dummy'
}
)
不太好的方法,但是沒有任何編碼
AWS Datapipeline具有用於在不同AWS服務之間進行數據遷移的模板,但對於dynamodb,它只能加載dynamodb備份數據,而不能使用CSV。
不是直截了當的方法,但是您可以做到。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.