\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 파일의 전체 경로입니다.
\copytarget_tablefrom '/path/to/local/filename.csv' WITH DELIMITER ',' CSV;
CSV 파일에 열 머리글 정보가 있는 경우 이 버전의 명령 및 파라미터를 사용할 수 있습니다.
\copytarget_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를 대상 데이터베이스로 사용합니다.
대상 LinuxmacOS, 또는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