Google Cloud Storage로 언로드하기

기존에 Google Cloud Storage 계정이 있고 Cloud Storage 버킷을 사용하여 파일을 저장 및 관리하는 경우 Snowflake 테이블에서 데이터를 언로드할 때 기존 버킷과 폴더 경로를 사용할 수 있습니다. 이 항목에서는 COPY 명령을 사용하여 테이블의 데이터를 클라우드 저장소 버킷으로 언로드하는 방법을 설명합니다. 그러면 언로드된 데이터 파일을 로컬 파일 시스템으로 다운로드할 수 있습니다.

아래 다이어그램과 같이 클라우드 저장소 버킷으로 데이터를 언로드하는 작업은 다음의 두 단계로 수행됩니다.

1단계

COPY INTO <위치> 명령을 사용하여 Snowflake 데이터베이스 테이블에서 클라우드 저장소 버킷의 1개 이상 파일로 데이터를 복사합니다. 이 명령에서는 클라우드 저장소 버킷을 참조하는 명명된 외부 스테이지 오브젝트를 지정(권장)하거나 버킷의 URI 및 저장소 통합(필요한 경우)을 지정하여 버킷에 간접적으로 언로드하도록 선택할 수 있습니다.

사용하는 방법에 관계없이, 이 명령을 수동으로 실행하거나 스크립트 내에서 실행할 경우 이 단계에서는 세션에 대해 실행 중인 현재 가상 웨어하우스가 필요합니다. 웨어하우스는 테이블의 행을 쓰기 위한 컴퓨팅 리소스를 제공합니다.

2단계

Google에서 제공하는 인터페이스/도구를 사용하여 클라우드 저장소 버킷에서 파일을 다운로드합니다.

Unloading data to Cloud Storage

이 항목 세트의 지침에서는 데이터 언로드 준비하기 를 읽고 원하는 경우 명명된 파일 형식을 생성한 것으로 가정합니다.

시작하기 전에 데이터 언로드 고려 사항 에서 모범 사례, 팁 및 기타 지침을 확인할 수도 있습니다.

이 항목의 내용:

데이터 언로드용 클라우드 저장소 구성하기

Snowflake가 클라우드 저장소 버킷에 쓸 수 있으려면, 외부 클라우드 저장소에 대한 인증 책임을 Snowflake ID 및 액세스 관리(IAM) 엔터티에 위임하도록 저장소 통합 오브젝트를 구성해야 합니다.

구성 지침은 Google Cloud Storage용 통합 구성하기 를 참조하십시오.

데이터를 외부 스테이지로 언로드하기

외부 스테이지는 데이터를 언로드하기 위한 최상의 유연성을 제공하는 명명된 데이터베이스 오브젝트입니다. 그리고 데이터베이스 오브젝트이므로 명명된 스테이지에 대한 권한을 모든 역할에 부여할 수 있습니다.

명명된 외부 스테이지는 다음과 같이 웹 인터페이스 또는 SQL을 사용하여 생성할 수 있습니다.

Classic Console

Databases Databases tab » <db_이름> » Stages 을 클릭합니다.

SQL

CREATE STAGE

명명된 스테이지 만들기

다음 예에서는 폴더 경로가 unloadmy_ext_unload_stage 외부 스테이지를 생성합니다. 스테이지가 참조하는 오브젝트는 다음과 같습니다.

명명된 스테이지에 데이터 언로드하기

  1. 외부 스테이지를 사용하여 테이블에서 클라우드 저장소 버킷으로 데이터를 언로드하려면 COPY INTO <위치> 명령어를 사용합니다.

    다음 예에서는 my_ext_unload_stage 스테이지를 사용하여 mytable 테이블의 모든 행을 클라우드 저장소 버킷에 있는 1개 이상의 파일로 언로드합니다. d1 파일 이름 접두사가 파일에 적용됩니다.

    COPY INTO @my_ext_unload_stage/d1
    FROM mytable;
    
    Copy
  2. 클라우드 저장소에서 제공하는 도구를 사용하여 버킷에서 오브젝트(즉, 명령을 통해 생성된 파일)를 검색합니다.

클라우드 저장소 버킷으로 데이터를 직접 언로드하기

  1. COPY INTO <위치> 명령을 사용하여 테이블의 데이터를 지정된 클라우드 저장소 버킷으로 직접 언로드합니다. 이 옵션은 동일한 테이블 및 버킷 매개 변수를 사용하여 정기적으로 데이터를 언로드하지 않는 임시 언로드의 경우에 적합합니다.

    클라우드 저장소 버킷에 대한 URI 및 버킷에 액세스하기 위한 저장소 통합을 지정해야 합니다.

    다음 예에서는 mytable 테이블의 모든 행을 클라우드 저장소 버킷에서 폴더 경로 접두사가 unload/ 인 1개 이상의 파일로 언로드합니다.

    COPY INTO 'gcs://mybucket/unload/'
      FROM mytable
      STORAGE_INTEGRATION = gcs_int;
    
    Copy
  2. 클라우드 저장소 콘솔(또는 유사 클라이언트 애플리케이션)을 사용하여 버킷에서 오브젝트(즉, 명령을 통해 생성된 파일)를 검색합니다.