SQL

[MySQL]MySQL DB 구축하기 - Excel 파일 올리기

ha_data 2023. 12. 15. 19:26

My SQL DB에 엑셀파일 데이터를 적재하기 위해서는 세 가지 방법이 있다.

 

1. LOAD DATA LOCAL INFILE '파일.csv' INTO TABLE name

2. Import Wizard 사용하기

3. 파이썬에서 엑셀 -> 데이터 프레임 -> MySQL 연동 후 적재하기

 

이번 팀프로젝트에서는 3번 방법을 사용해서 DB에 데이터를 적재했다.

AWS RDS 라는 클라우드 DB를 사용했기 때문에 1번 방법은 사용이 불가능했고,

엑셀 파일 용량이 꽤 있었기 때문에 2번은 시간이 너무 오래 걸려서 패스했다.

 


파이썬으로 Excel 파일 MySQL DB에 업로드하기

1. 필요한 라이브러리 install & import

import pandas as pd
import chardet
import pymysql
import sqlalchemy
from sqlalchemy import create_engine

 

2. 엑셀 파일 선택 및 Mysql 연동하기

filepath = pd.read_csv("C:/Users/file.csv", encoding='latin-1')
pymysql.install_as_MySQLdb()

USER = "root"
PASSWORD = "pwd"
ENDPOINT ="hostname"
SCHEMA = "db name"

 

3. Mysql에 접속해서 테이블 생성하기

cur = conn.cursor()

cur.execute(f"CREATE DATABASE IF NOT EXISTS {SCHEMA};")

engine = create_engine(f"mysql+mysqldb://{USER}:{PASSWORD}@{ENDPOINT}:3306")

filepath.to_sql(
    "Table name",
    engine,
    schema=SCHEMA,
    index=False,
    if_exists="replace",
    chunksize=10000,
)

 

결과 !

 

두 테이블 모두 데이터가 잘 적재됐다! 

글로쓰니 너무 간단한데.. 이 간단한 방법을 찾기 위해 하루를 꼬박 고생했다.

AWS RDS는 파일 업로드 권한 설정 때문에 Local Infile 방법은 사용하기 어렵다는 걸 배웠음 ㅎㅎ