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:
명명된 스테이지 만들기¶
Snowflake는 Amazon S3 및 Google Cloud Storage에 업로드할 때 멀티파트 업로드를 사용합니다. 이 프로세스로 인해 외부 스테이지의 저장소 위치에 불완전한 업로드가 남아 있을 수 있습니다.
불완전한 업로드가 누적되지 않도록 하려면 수명 주기 규칙을 설정하는 것이 좋습니다. 지침은 `Amazon S3<https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpu-abort-incomplete-mpu-lifecycle-config.html>`_ 또는 `Google Cloud Storage<https://cloud.google.com/storage/docs/lifecycle#abort-mpu>`_ 설명서를 참조하세요.
다음 예에서는 폴더 경로가 unload 인 my_ext_unload_stage 외부 스테이지를 생성합니다. 스테이지가 참조하는 오브젝트는 다음과 같습니다.
gcs_int`라고 명명된 저장소 통합입니다. 지침은 :doc:/user-guide/data-load-gcs-config`을 참조하세요.my_csv_unload_format`라고 명명된 파일 형식입니다. 지침은 :doc:/user-guide/data-unload-prepare`를 참조하세요.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;
클라우드 저장소 콘솔(또는 유사 클라이언트 애플리케이션)을 사용하여 버킷에서 오브젝트(즉, 명령을 통해 생성된 파일)를 검색합니다.