꿈은 데이터분석가, 취미는 계획

[MY SQL] csv import 속도 느릴 때 해결방법! 본문

SQL/SQL 활용하기

[MY SQL] csv import 속도 느릴 때 해결방법!

data_2080 2024. 7. 24. 17:02
728x90

Table Data Import Wizard로 데이터 로드 시 느림...

이전 글에서 스키마를 생성하고 import Wizard로 데이터를 올렸는데
이때는  python에서 집계한 df이라 양이 적었다(123개 레코드)
원본df을 불러오려고 동일한 방법을 사용하니 몇 시간이 지나도 안된다....

 

*데이터를 올리기 위해 스키마와 테이블 생성이 미리 되어야 하니 참고!

https://o-s-o-jjj.tistory.com/45(데이터 로드 전 스키마와 테이블 생성방법)

LOAD DATA INFILE을 사용

그래서 쿼리로 csv파일을 로드하는 방법이 빠르다길래 진행해봤다!

결론부터 말하자면 9개의 컬럼, 655,038개의 레코드가 단 7초만에 올라갔다!!!

 

1) LOAD DATA INFILE: 내 파일의 경로를 넣어주고(SQL에서는 경로에서 \가 아닌 \\를 써야 인식됨)
    * SQL에서는 지정된 경로 외에서 파일을 불러오는 경우 오류가 발생하므로 아래 글 참고!
      https://o-s-o-jjj.tistory.com/45

2) FIELDS TERMINATED BY ',': CSV 파일에서 각 필드(열)가 쉼표(,)로 구분됨
3) LINES TERMINATED BY '\n': 파일의 각 행이 줄 바꿈 문자(\n)로 구분됨

4) IGNORE 1 LINES: 파일의 첫 번째 줄을 무시(첫줄은 헤더이므로 제외)

5) csv의 순서대로 컬럼명 넣기

 

LOAD DATA INFILE 'C:\\Data_Study\\Meta_Code\\data\\event_purchase_df.csv'
INTO TABLE event_purchase
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(user_id, event_time, event_type, product_id, price, user_session, event_day, segment, repurchase);
728x90