본문 바로가기
Database

[MariaDB] 대용량 EXCEL 파일을 CSV 파일로 변환하여 DB에 INSERT 하기

by 뽀또그링 2023. 7. 4.

 

 

 

내 기준 굉장히 많은 양의 데이터였던 약 20만 건의 데이터 ..

이 엑셀 파일을 어떻게 효율적으로 DB에 넣을 수 있을 지 고민하게 되었다.

 

처음에는 프론트 단에서 파일을 스트링으로 읽고 배열에 나누어 담아

백 단으로 보내는 방법을 생각하고 구현했다.

 

나의 부족한 그램은 버티지 못하고

STS가 굉장히 힘들어했다 !!!

 

그래서 열심히 구글링 하고 찾아낸 방법 !

파일을 저장하고 저장 된 파일을 읽어와서 DB에 저장하기 !!

 

 

 

 

MyBatis xml 작성 예시

<insert id="fileDbInsert" parameterType="string">
	LOAD DATA LOCAL INFILE #{FILE_PATH}
        INTO TABLE ${TBL_NM}
        COLUMNS TERMINATED BY '|'
        IGNORE 1 ROWS
</insert>

저장된 곳의 파일 주소, 입력할 테이블 이름, 컬럼 구분자 설정해주면

대용량 데이터도 금방 입력되는 것을 확인할 수 있다 :)

 

 

 

 

엑셀 파일을 CSV 형식으로 변환하기 (EXCEL to CSV)

 

엑셀 파일 실행 - 파일 - 내보내기 - 파일 형식 변경 - CSV - 다른 이름으로 저장

 

실행 중인 파일을 종료한 후 해당 파일 우클릭 - 연결 프로그램 - 메모장 선택

 

구분자로 분리된 내용 확인 가능

 

 

파일 - 다른 이름으로 저장 - 인코딩을 UTF-8 로 지정 후 저장하면 끝 !

 

 

 

 

CSV 컬럼 구분 기호(구분자) 변경

 

 

엑셀 옵션도 함께 변경해주면 된다.

 

엑셀 실행 - 파일 - 옵션 - 고급 - 시스템 구분 기호 사용 체크

 

 

 

 

 

 

 

< 참고 문서 >

 

https://mariadb.com/kb/en/load-data-infile/

 

LOAD DATA INFILE

Read rows from a text file into a table.

mariadb.com