최근 airflow로 batch작업을 이관 하던 중 dataframe을 DB로 바로 저장할 수 있는 라이브러리를 찾아서 소개시켜드립니다.

 

insert문을 실행하지 않고 python으로 생성한 dataframe을 DB로 저장 시킵니다.

from sqlalchemy import create_engine
import pandas as pd

#test.csv를 dataframe형태로 읽기
df = pd.read_csv('test.csv')

#mysql+pymysql은 mairaDB에 대한 sqlalchemy의 드라이버를 의미합니다.
#SQLite 데이터베이스는 mysql+pymysql대신 sqlite를 적어주시면 됩니다.
connection_string = 'mysql+pymysql://유저명:password@localhost:3306/database'

#mariadb에 연결
engine = create_engine(connection_string)

#dataframe을 mairadb에 저장
#if_exists는 테이블이 이미 존재하는 경우 어떻게 처리할지에 대한 매개변수입니다. replace를 입력하여 기존 테이블을 대체할 수 있습니다.
df.to_sql("table명", engine, index = False, if_exists="replace")

 

python을 사용하시는 분들은 dataframe을 이용해 편리하게 DB에 데이터를 적재할 수 있습니다.

+ Recent posts