데이터프레임으로 RDB에 마트를 만들거나 마이그레이션을 고려할 때
DataFrame을 Bulk Insert 할 수 있는 방법이 있다.
pip install pandas
pip install sqlalchemy
pip install pymysql or psycopg2-binary
create table score(
date varchar(10),
name varchar(20),
age int,
score int
)
;
engine = create_engine("postgresql://postgres:postgres@localhost:5432/postgres", use_batch_mode=True)
score_df.to_sql(
name='score', # 테이블 네임
con=engine,
schema='public',
if_exists='append', # append:이어붙이기, fail-테이블 존재하면 에러, replace:테이블 삭제후 적재
index=True, # 인덱스 지정 여부
index_label = 'id', # 인덱스 컬럼
chunksize=2 # 2개 만큼 bulk를 만들어 insert, 옵션 안주면 전체 bulk로 insert
dtype = {
'date': sqlalchemy.types.VARCHAR(10),
'name': sqlalchemy.types.VARCHAR(20),
'age': sqlalchemy.types.INTEGER(),
'score': sqlalchemy.types.INTEGER(),
}