Postgresql CSV파일 업로드

2024. 2. 12. 01:29기타

회사에서 일을 하다보면 CSV 파일을 Postgresql로 가져와서 사용하는 경우가 왕왕 있다. 

CSV 파일을 Postgresql에 불러오는 방법에 대해서 소개해본다. 

 

1. DBeaver 가져오기 

가장 쉬운 방법은 DBeaver라는 어플리케이션이 있는데, Postgres 뿐만 아니라 다양한 DBMS를 지원하며 데이터베이스를 개발하는데 있어서 일을 쉽게 해주는 마법의 툴로 자주 이용하는데.. 이를 이용한 방법이 가장 쉽다.

DBeaver의 데이터 가져오기

원하는 스키마에 오른쪽 버튼을 누르고 데이터 가져오기를 누르면 클릭만을 통해 쉽게 가져올 수 있으며 테이블 생성도 알아서 컬럼 타입에 맞게 해줌으로 자주 사용하는 방법이다.

 

2. psql 사용하기

다만 위의 방법은 데이터 크기가 작은 csv파일에 한해서 유용하지만... 데이터가 1기가 이상 넘어가면 많이 버거워진다.

이번에 30기가 용량의 csv파일을 서버의 postgresql에 적재하려고 1번의 방법을 사용했다가 컴퓨터가 자꾸 멈춰 다른방법을 찾았어야 했는데... 이것이 2번째 방법이다.

 

1. SFTP를 통해 csv파일을 서버로 옮긴다

2. Dbeaver를 활용해 미리 Create table을 통해 csv파일과 맞는 형식의 컬럼타입을 지정해서 테이블을 만들어둔다.

3. Linux Server Console에서 아래와 같은 명령어를 친다.

   - psql -d <db명> -U  <postgres 유저명> -p <포트번호> 

4. 위 그림과 같은 Console이 나오면 아래와 같은 명령어를 친다.

    - \COPY <테이블명> FROM '</파일 디렉토리/파일명.csv>' DELIMITER ',' CSV HEADER;

 

이렇게 하면 좀더 빠르게 RDB에 적재되는 것을 확인할 수 있었다... 물론 테이블을 만들 때 컬럼이 많다면 조금 힘들겠지만... 

 

다만 테이블이 입력될 때 타입이랑 안맞는 값이 CSV파일에 있다면 들어가다가 에러가 나기 떄문에 미리 확인하고 넣어주자.