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 방법은 사용하기 어렵다는 걸 배웠음 ㅎㅎ
'SQL' 카테고리의 다른 글
[SQL] BOOLEAN, NULL 값 처리하기|채널별 월별 매출액 테이블 만들기 (0) | 2024.01.02 |
---|---|
[SQL]JOIN이란? INNER, LEFT, FULL, CROSS JOIN (1) | 2024.01.02 |
[SQL]GROUP BY와 CTAS, 데이터 품질 확인하기 (1) | 2024.01.01 |
[SQL] google colab으로 sql 실습하기 (0) | 2024.01.01 |
[TIL]KEY-VALUE|JSON_OBJECT,EXTRACT|JSON_INSERT,REPLACE (0) | 2023.12.08 |