[Python] DynamoDB 및 Mysql 접근법

Python으로 좀 더 쉽고 간편하게 업무적인 요구 사항을 만족하는 스트립트를 만들 수 있다.

이번글의 Mysql 접속 방법과 AWS DynamoDB를 접근하는 방법에 대해 정리하겠다.

설치

pip3 install boto3
pip3 install pymysql

기본적으로 python3.7를 사용하여 구성 하였다.

MySQL

def selectData(IdFrom,IdTo):
        #Mysql 연결
    conn = pymysql.connect(host='localhost', user='root', password='test', db='test', charset='utf8', port=3306)
    cur = conn.cursor()

    sql = "select * from book where book_id>%s AND book_id<%s order by id limit 10"%(str(IdFrom),str(IdTo))
    cur.execute(sql)
    rows = cur.fetchall()
        #Row를 가지고 처리

DynamoDB

def putData():
    dynamodb = boto3.resource('dynamodb',aws_access_key_id='xxx',aws_secret_access_key='xxxx',region_name='ap-northest-2')
    table = dynamodb.Table('book')

    rows = cur.fetchall()

    # with table.batch_writer() as batch: ## batch writer 를 사용 가능함
    for row in rows:
        table.put_item(Item={
                'book_id': row[0]
                'title': row[1],
                'publish_timestemp': row[2].strftime("%Y%m%dT%H%M%S"),
                'price':Decimal(str(row[3])),
            })

Dynamo DB는 Double 대신 Decimal 타입을 지원하기에 type 변환을 해줘야 한다.