pandas DATAFRAME bulk insert

code_able·2023년 3월 11일
0

데이터프레임으로 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
)
;

sqlalchemy로 db 커넥션

engine = create_engine("postgresql://postgres:postgres@localhost:5432/postgres", use_batch_mode=True)

bulk insert

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(),
		}

referenece

profile
할수 있다! code able

0개의 댓글