簡體   English   中英

使用boto3將csv導出到dynamodb

[英]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。

不是直截了當的方法,但是您可以做到。

  1. 將csv文件上傳到S3
  2. 創建管道以將數據從S3復制到RDS實例(創建一個RDS mysql)。
  3. 使用數據庫遷移服務將數據從RDS復制到dynamodb。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM