Google Cloud Storage로 언로드하기¶
기존에 Google Cloud Storage 계정이 있고 Cloud Storage 버킷을 사용하여 파일을 저장 및 관리하는 경우 Snowflake 테이블에서 데이터를 언로드할 때 기존 버킷과 폴더 경로를 사용할 수 있습니다. 이 항목에서는 COPY 명령을 사용하여 테이블의 데이터를 클라우드 저장소 버킷으로 언로드하는 방법을 설명합니다. 그러면 언로드된 데이터 파일을 로컬 파일 시스템으로 다운로드할 수 있습니다.
아래 다이어그램과 같이 클라우드 저장소 버킷으로 데이터를 언로드하는 작업은 다음의 두 단계로 수행됩니다.
- 1단계:
COPY INTO <위치> 명령을 사용하여 Snowflake 데이터베이스 테이블에서 클라우드 저장소 버킷의 1개 이상 파일로 데이터를 복사합니다. 이 명령에서는 클라우드 저장소 버킷을 참조하는 명명된 외부 스테이지 오브젝트를 지정(권장)하거나 버킷의 URI 및 저장소 통합(필요한 경우)을 지정하여 버킷에 간접적으로 언로드하도록 선택할 수 있습니다.
사용하는 방법에 관계없이, 이 명령을 수동으로 실행하거나 스크립트 내에서 실행할 경우 이 단계에서는 세션에 대해 실행 중인 현재 가상 웨어하우스가 필요합니다. 웨어하우스는 테이블의 행을 쓰기 위한 컴퓨팅 리소스를 제공합니다.
- 2단계:
Google에서 제공하는 인터페이스/도구를 사용하여 클라우드 저장소 버킷에서 파일을 다운로드합니다.
팁
이 항목 세트의 지침에서는 데이터 언로드 준비하기 를 읽고 원하는 경우 명명된 파일 형식을 생성한 것으로 가정합니다.
시작하기 전에 데이터 언로드 고려 사항 에서 모범 사례, 팁 및 기타 지침을 확인할 수도 있습니다.
이 항목의 내용:
데이터 언로드용 클라우드 저장소 구성하기¶
Snowflake가 클라우드 저장소 버킷에 쓸 수 있으려면, 외부 클라우드 저장소에 대한 인증 책임을 Snowflake ID 및 액세스 관리(IAM) 엔터티에 위임하도록 저장소 통합 오브젝트를 구성해야 합니다.
구성 지침은 Google Cloud Storage용 통합 구성하기 를 참조하십시오.
데이터를 외부 스테이지로 언로드하기¶
외부 스테이지는 데이터를 언로드하기 위한 최상의 유연성을 제공하는 명명된 데이터베이스 오브젝트입니다. 그리고 데이터베이스 오브젝트이므로 명명된 스테이지에 대한 권한을 모든 역할에 부여할 수 있습니다.
명명된 외부 스테이지는 다음과 같이 웹 인터페이스 또는 SQL을 사용하여 생성할 수 있습니다.
- Classic Console:
- SQL:
명명된 스테이지 만들기¶
다음 예에서는 폴더 경로가 unload
인 my_ext_unload_stage
외부 스테이지를 생성합니다. 스테이지가 참조하는 오브젝트는 다음과 같습니다.
Google Cloud Storage용 통합 구성하기 에서 생성한 이름이
gcs_int
인 명명된 저장소 통합데이터 언로드 준비하기 에서 생성한 이름이
my_csv_unload_format
인 명명된 파일 형식CREATE OR REPLACE STAGE my_ext_unload_stage URL='gcs://mybucket/unload' STORAGE_INTEGRATION = gcs_int FILE_FORMAT = my_csv_unload_format;
명명된 스테이지에 데이터 언로드하기¶
외부 스테이지를 사용하여 테이블에서 클라우드 저장소 버킷으로 데이터를 언로드하려면 COPY INTO <위치> 명령어를 사용합니다.
다음 예에서는
my_ext_unload_stage
스테이지를 사용하여mytable
테이블의 모든 행을 클라우드 저장소 버킷에 있는 1개 이상의 파일로 언로드합니다.d1
파일 이름 접두사가 파일에 적용됩니다.COPY INTO @my_ext_unload_stage/d1 FROM mytable;
클라우드 저장소에서 제공하는 도구를 사용하여 버킷에서 오브젝트(즉, 명령을 통해 생성된 파일)를 검색합니다.
클라우드 저장소 버킷으로 데이터를 직접 언로드하기¶
COPY INTO <위치> 명령을 사용하여 테이블의 데이터를 지정된 클라우드 저장소 버킷으로 직접 언로드합니다. 이 옵션은 동일한 테이블 및 버킷 매개 변수를 사용하여 정기적으로 데이터를 언로드하지 않는 임시 언로드의 경우에 적합합니다.
클라우드 저장소 버킷에 대한 URI 및 버킷에 액세스하기 위한 저장소 통합을 지정해야 합니다.
다음 예에서는
mytable
테이블의 모든 행을 클라우드 저장소 버킷에서 폴더 경로 접두사가unload/
인 1개 이상의 파일로 언로드합니다.COPY INTO 'gcs://mybucket/unload/' FROM mytable STORAGE_INTEGRATION = gcs_int;
클라우드 저장소 콘솔(또는 유사 클라이언트 애플리케이션)을 사용하여 버킷에서 오브젝트(즉, 명령을 통해 생성된 파일)를 검색합니다.