csv_to_mysql.py:
import time
import pandas as pd
import pymysql
from sqlalchemy import create\_engine
import configparser
# pandas에서 read\_csv할 때 'utf-8'으로 인코딩 하는 경우 에러가 날 수도 있음. -> 'cp949' 인코딩 사용
df = pd.read\_csv("./qa\_sample.csv", encoding='cp949')
# 설정 파일 경로
config\_path = "./settings.ini"
# 설정 파일 읽기
config = configparser.ConfigParser(interpolation = None)
config.read(config\_path)
# params
user = config\['database'\]\['user'\]
password = config\['database'\]\['password'\]
host = config\['database'\]\['host'\]
port = int(config\['database'\]\['port'\])
database = config\['database'\]\['database'\]
# 실행 시작 시간
start\_time = time.time()
# DB 접속 엔진 객체 생성
engine = create\_engine(f'mysql+pymysql://{user}:{password}@{host}:{port}/{database}', encoding='utf-8')
# DB 테이블 명
table\_name = "qa"
# DB에 DataFrame 적재
df.to\_sql(index = False,
name = table\_name,
con = engine,
if\_exists = 'append',
method = 'multi',
chunksize = 10000)
settings.ini 파일 예시:
[database]
user = root
password = root
host = localhost
port = 3000
'데이터 엔지니어링' 카테고리의 다른 글
Airflow: 외부 시스템과 통신 | 시스템 간 데이터 이동 (0) | 2022.09.07 |
---|---|
[빅데이터를 지탱하는 기술] 1장 빅데이터 기초 지식과 Druid (0) | 2022.05.20 |