Unload into Google Cloud Storage¶
기존에 Google Cloud Storage 계정이 있고 Cloud Storage 버킷을 사용하여 파일을 저장 및 관리하는 경우 Snowflake 테이블에서 데이터를 언로드할 때 기존 버킷과 폴더 경로를 사용할 수 있습니다. 이 항목에서는 COPY 명령을 사용하여 테이블의 데이터를 클라우드 저장소 버킷으로 언로드하는 방법을 설명합니다. 그러면 언로드된 데이터 파일을 로컬 파일 시스템으로 다운로드할 수 있습니다.
아래 다이어그램과 같이 클라우드 저장소 버킷으로 데이터를 언로드하는 작업은 다음의 두 단계로 수행됩니다.
- 1단계:
COPY INTO <위치> 명령을 사용하여 Snowflake 데이터베이스 테이블에서 클라우드 저장소 버킷의 1개 이상 파일로 데이터를 복사합니다. 이 명령에서는 클라우드 저장소 버킷을 참조하는 명명된 외부 스테이지 오브젝트를 지정(권장)하거나 버킷의 URI 및 저장소 통합(필요한 경우)을 지정하여 버킷에 간접적으로 언로드하도록 선택할 수 있습니다.
사용하는 방법에 관계없이, 이 명령을 수동으로 실행하거나 스크립트 내에서 실행할 경우 이 단계에서는 세션에 대해 실행 중인 현재 가상 웨어하우스가 필요합니다. 웨어하우스는 테이블의 행을 쓰기 위한 컴퓨팅 리소스를 제공합니다.
- 2단계:
Google에서 제공하는 인터페이스/도구를 사용하여 클라우드 저장소 버킷에서 파일을 다운로드합니다.
팁
이 항목 세트의 지침에서는 File formats to unload data 를 읽고 원하는 경우 명명된 파일 형식을 생성한 것으로 가정합니다.
시작하기 전에 데이터 언로드 고려 사항 에서 모범 사례, 팁 및 기타 지침을 확인할 수도 있습니다.
Configure Cloud Storage for unloading data¶
Snowflake가 클라우드 저장소 버킷에 쓸 수 있으려면, 외부 클라우드 저장소에 대한 인증 책임을 Snowflake ID 및 액세스 관리(IAM) 엔터티에 위임하도록 저장소 통합 오브젝트를 구성해야 합니다.
구성 지침은 Configure an integration for Google Cloud Storage 를 참조하십시오.
Unload data into an external stage¶
외부 스테이지는 데이터를 언로드하기 위한 최상의 유연성을 제공하는 명명된 데이터베이스 오브젝트입니다. 그리고 데이터베이스 오브젝트이므로 명명된 스테이지에 대한 권한을 모든 역할에 부여할 수 있습니다.
명명된 외부 스테이지는 다음과 같이 웹 인터페이스 또는 SQL을 사용하여 생성할 수 있습니다.
- Snowsight:
탐색 메뉴에서 Catalog » Database Explorer 를 선택합니다. 그런 다음 <db_name> » :ui:`Stages`를 선택합니다.
- SQL:
Create a named stage¶
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`를 참조하세요.
Unload data to the named stage¶
외부 스테이지를 사용하여 테이블에서 클라우드 저장소 버킷으로 데이터를 언로드하려면 COPY INTO <위치> 명령어를 사용합니다.
다음 예에서는
my_ext_unload_stage스테이지를 사용하여mytable테이블의 모든 행을 클라우드 저장소 버킷에 있는 1개 이상의 파일로 언로드합니다.d1파일 이름 접두사가 파일에 적용됩니다.클라우드 저장소에서 제공하는 도구를 사용하여 버킷에서 오브젝트(즉, 명령을 통해 생성된 파일)를 검색합니다.
Unload data directly into a Cloud Storage bucket¶
COPY INTO <위치> 명령을 사용하여 테이블의 데이터를 지정된 클라우드 저장소 버킷으로 직접 언로드합니다. 이 옵션은 동일한 테이블 및 버킷 매개 변수를 사용하여 정기적으로 데이터를 언로드하지 않는 임시 언로드의 경우에 적합합니다.
클라우드 저장소 버킷에 대한 URI 및 버킷에 액세스하기 위한 저장소 통합을 지정해야 합니다.
다음 예에서는
mytable테이블의 모든 행을 클라우드 저장소 버킷에서 폴더 경로 접두사가unload/인 1개 이상의 파일로 언로드합니다.클라우드 저장소 콘솔(또는 유사 클라이언트 애플리케이션)을 사용하여 버킷에서 오브젝트(즉, 명령을 통해 생성된 파일)를 검색합니다.