一、背景
AWS Dynamodb数据库在架构中起到的作用是配置数据库,s3上 buckect_a --> bucket_b --> bucket_c 对应着层与层之间的关系,总所周知,Dynamobd是非关系型数据库,数据插入的格式是键值对形式的
二、代码
import boto3
import json
import pandas as pd
AWS_ACCESS_KEY_ID=''
AWS_SECRET_ACCESS_KEY=''
AWS_SESSION_TOKEN=''
REGION_NAME=''
TABLE_NAME=''
FILE_PATH=''
# AWS credentials
dynamodb = boto3.resource('dynamodb', aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
aws_session_token=AWS_SESSION_TOKEN,
region_name=REGION_NAME)
# 获取dynamobd 表
table = dynamodb.Table(TABLE_NAME)
# csv导入,转为json格式
csv_data = pd.read_csv(FILE_PATH).to_json(orient="table", force_ascii=False, index=False)
# 将str转为dict(键值对的形式)
j = json.loads(csv_data)
for item in j['data']:
try:
resp = table.put_item(Item=item)
if resp['ResponseMetadata']['HTTPStatusCode'] == 200:
print("插入成功}")
else:
print(f"数据未成功插入,响应码:{resp['ResponseMetadata']['HTTPStatusCode']}")
print(f"响应结果详情: {resp['ResponseMetadata']}")
except Exception as e:
print(f"插入数据时发生异常,详情如下: {e}")