CSV 파일 가져오기

이 페이지에서는 CSV 파일을 AlloyDB 데이터베이스로 가져오는 방법을 설명합니다.

가져오기를 실행하는 절차에는 다음 작업이 포함됩니다.

  1. Cloud Storage 버킷에 CSV 파일을 업로드합니다.

  2. 가져오기 작업을 실행할 클라이언트 호스트를 준비합니다.

  3. 데이터베이스로 CSV 파일을 가져옵니다.

  4. 절차를 실행하기 위해 만든 리소스를 삭제합니다.

시작하기 전에

  • 사용 중인 Google Cloud 프로젝트에 소유자 (roles/owner) 또는 편집자(roles/editor) 기본 IAM 역할이 있어야 하며, 또는 다음 사전 정의된 IAM 역할이 있어야 합니다.
    • AlloyDB 관리자 (roles/alloydb.admin) 또는 AlloyDB 뷰어(roles/alloydb.viewer)
    • 스토리지 관리자(roles/storage.admin)
    • Compute 인스턴스 관리자 (v1) (roles/compute.instanceAdmin.v1)

CSV 파일 업로드

CSV 파일을 업로드하려면 Cloud Storage 버킷을 만든 다음 해당 버킷에 CSV 파일을 업로드하면 됩니다.

  1. AlloyDB 데이터베이스가 있는 프로젝트 및 리전에 표준 스토리지, 리전 스토리지 버킷을 만듭니다.

  2. 만든 스토리지 버킷에 CSV 파일을 업로드합니다.

클라이언트 호스트 준비

가져오기 작업을 실행할 클라이언트 호스트를 준비하려면 데이터베이스가 있는 AlloyDB 기본 인스턴스에 연결할 수 있는 Compute Engine VM을 만들고 이 VM에 psql 도구와 Google Cloud CLI를 설치합니다.

  1. psql 클라이언트를 인스턴스에 연결 안내에 따라 적절한 연결과 psql 도구가 설치된 Compute Engine VM을 만듭니다. 이 안내를 따를 때는 가져오는 CSV 파일을 수용할 수 있을 만큼 충분한 로컬 스토리지를 Compute Engine VM에 할당해야 합니다.

  2. gcloud CLI를 설치하여 Cloud Storage 버킷의 CSV 파일에 대한 명령줄 액세스를 제공합니다.

CSV 파일 가져오기

CSV 파일을 가져오려면 데이터베이스가 있는 AlloyDB 기본 인스턴스의 IP 주소를 가져온 다음 psql 도구를 사용하여 CSV 데이터를 포함할 테이블을 만든 후 가져옵니다.

  1. 세부정보를 확인하여 데이터베이스가 있는 AlloyDB 기본 인스턴스의 IP 주소를 가져옵니다.
  2. Compute Engine VM에 SSH를 통해 연결합니다.

    콘솔

    1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

      VM 인스턴스로 이동

    2. 가상 머신 인스턴스 목록에서 만든 인스턴스 행에서 SSH를 클릭합니다.

      인스턴스 이름 옆에 있는 SSH 버튼

    gcloud

    gcloud compute ssh 명령어를 사용하여 만든 인스턴스에 연결합니다.

    gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME

    다음을 바꿉니다.

    • PROJECT_ID: 인스턴스가 포함된 프로젝트의 ID입니다.
    • ZONE: 인스턴스가 있는 영역의 이름입니다.
    • VM_NAME: 인스턴스 이름입니다.
  3. CSV 파일을 클라이언트 호스트의 로컬 파일 시스템에 복사합니다.
    gcloud storage cp gs://BUCKET_NAME/CSV_FILE_NAME .
  4. CSV 파일을 가져옵니다.
    1. psql 클라이언트 도구를 실행한 다음 psql 프롬프트에서 데이터베이스에 연결합니다.
      psql -h IP_ADDRESS -U postgres
      \c DB_NAME
      

      postgres 사용자의 비밀번호를 입력하라는 메시지가 표시됩니다.

      • IP_ADDRESS: 기본 인스턴스의 IP 주소
      • DB_NAME: CSV 데이터를 저장할 데이터베이스의 이름입니다.
    2. CSV 데이터를 포함할 테이블을 만듭니다. 예를 들면 다음과 같습니다.
      CREATE TABLE weather (
        city     varchar(80),
        temp_lo  int,
        temp_hi  int,
        prcp     real,
        date     date
      );

      위의 CREATE TABLE 문은 설명용입니다. CSV 데이터와 열이 일치하는 테이블을 만듭니다.

    3. CSV 파일에서 데이터를 가져옵니다.
    \copy TABLE_NAME(COLUMN_LIST)
      FROM 'CSV_FILE_NAME'
      DELIMITER ','
      CSV HEADER
    ;
    • TABLE_NAME: 이전 단계에서 만든 테이블의 이름입니다.
    • (COLUMN_LIST): 데이터를 가져올 테이블 열의 이름을 쉼표로 구분하여 CSV 파일에 데이터가 표시되는 순서대로 나열한 목록입니다.
    • CSV_FILE_NAME: CSV 파일
    • HEADER: CSV 파일에 무시할 헤더 행이 포함되어 있음을 나타냅니다. 그렇지 않은 경우 이 매개변수를 생략합니다.

    psql\copy 명령어는 데이터 가져오기 작업을 제어하기 위해 PostgreSQL의 COPY 명령어와 동일한 옵션과 인수를 사용합니다.

리소스 삭제

CSV 파일을 가져온 후 Cloud Storage 버킷을 삭제하고 가져오기 절차 중에 사용한 Compute Engine VM을 삭제할 수 있습니다.