\copy 명령을 사용하여 PostgreSQL DB 인스턴스의 테이블로 데이터 가져오기 - Amazon Relational Database Service

\copy 명령을 사용하여 PostgreSQL DB 인스턴스의 테이블로 데이터 가져오기

PostgreSQL \copy 명령은 psql 대화형 클라이언트 도구에서 사용할 수 있는 메타 명령입니다. \copy를 사용하여 RDS for PostgreSQL DB 인스턴스의 테이블로 데이터를 가져올 수 있습니다. \copy 명령을 사용하려면 먼저 \copy가 대상 DB 인스턴스에 복사할 데이터의 대상을 갖도록 테이블 구조를 생성해야 합니다.

\copy를 사용하여 클라이언트 워크스테이션으로 내보내고 저장된 파일과 같은 쉼표로 구분된 값(CSV) 파일에서 데이터를 로드할 수 있습니다.

CSV 데이터를 대상 RDS for PostgreSQL DB 인스턴스로 가져오려면 먼저 psql을 사용하여 대상 DB 인스턴스에 연결합니다.

psql --host=db-instance.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=target-db

그리고 다음 파라미터와 함께 \copy 명령을 실행하여 데이터 대상과 해당 형식을 식별합니다.

  • target_table - CSV 파일에서 복사되는 데이터를 수신해야 하는 테이블의 이름입니다.

  • column_list - 테이블의 열 사양입니다.

  • 'filename'- 로컬 워크스테이션에 있는 CSV 파일의 전체 경로입니다.

\copy target_table from '/path/to/local/filename.csv' WITH DELIMITER ',' CSV;

CSV 파일에 열 머리글 정보가 있는 경우 이 버전의 명령 및 파라미터를 사용할 수 있습니다.

\copy target_table (column-1, column-2, column-3, ...) from '/path/to/local/filename.csv' WITH DELIMITER ',' CSV HEADER;

\copy 명령이 실패하면 PostgreSQL이 오류 메시지를 출력합니다.

다음 예와 같이 \copy 메타 명령과 함께 psql 명령을 사용하여 데이터베이스 미리 보기 환경에서 새 DB 인스턴스를 생성합니다. 이 예제에서는 source-table을 원본 테이블 이름으로, source-table.csv를 .csv 파일로, target-db를 대상 데이터베이스로 사용합니다.

Linux, macOS 또는 Unix 대상:

$psql target-db \ -U <admin user> \ -p <port> \ -h <DB instance name> \ -c "\copy source-table from 'source-table.csv' with DELIMITER ','"

Windows의 경우:

$psql target-db ^ -U <admin user> ^ -p <port> ^ -h <DB instance name> ^ -c "\copy source-table from 'source-table.csv' with DELIMITER ','"

\copy 명령에 대한 자세한 내용은 PostgreSQL 설명서의 메타 명령(Meta-Commands) 섹션에서 psql 페이지를 참조하세요.