Create an S3 stage

외부(즉, Amazon S3) 스테이지에서는 파일의 데이터를 테이블에 로드할 수 있도록 데이터 파일이 저장되는 위치를 지정합니다.

폴더 경로(또는 S3 용어로 접두사)가 포함되거나 포함되지 않은 지정된 S3 버킷의 파일에서 데이터를 직접 로드할 수 있습니다. 경로가 / 로 끝나면 해당 S3 폴더의 모든 오브젝트가 로드됩니다.

참고

이전 단계 에서, 지침에 따라 외부 S3 버킷에 액세스하기 위해 필요한 정책 및 권한으로 AWS IAM 역할을 구성한 경우에는 이미 S3 스테이지를 생성한 것입니다. 이 단계를 건너뛰고 S3 스테이지에서 데이터 복사하기 를 진행할 수 있습니다.

외부 스테이지

Snowflake는 S3 버킷의 파일에서 직접 로드하는 기능뿐만 아니라 파일을 스테이징 하기 위해 필요한 모든 정보를 캡슐화하는 명명된 외부 스테이지 생성을 지원하며, 여기에는 다음이 포함됩니다.

  • 파일이 스테이징되는 S3 버킷.

  • 버킷의 명명된 저장소 통합 오브젝트 또는 S3 자격 증명(보호된 경우).

  • 암호화 키(버킷의 파일이 암호화된 경우).

명명된 외부 스테이지는 선택 사항이지만 동일한 위치에서 정기적으로 데이터를 로드하려면 사용하는 것이 권장 됩니다.

참고

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>`_ 설명서를 참조하세요.

Create an external stage

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

참고

스테이지를 생성하려면 필요한 권한을 부여받거나 상속하는 역할을 사용해야 합니다. 자세한 내용은 /sql-reference/sql/create-stage`의 :ref:`label-create_stage_privileges 섹션을 참조하세요.

SQL을 사용하여 외부 스테이지 만들기

SQL을 사용하여 외부 스테이지를 만들려면 CREATE STAGE 명령을 사용하십시오.

다음 예에서는 SQL을 사용하여 encrypted_files/ 폴더 경로가 포함된 비공개/보호 S3 버킷인 mybucket 을 참조하는 my_s3_stage 외부 스테이지를 생성합니다. CREATE 문에는 S3 버킷에 액세스하기 위해 Option 1: Configure a Snowflake storage integration to access Amazon S3 에서 만든 s3_int 저장소 통합이 포함됩니다. 이 스테이지는 버킷 경로에 저장된 파일의 데이터를 설명하는 my_csv_format 이라는 명명된 파일 형식 오브젝트를 참조합니다.

CREATE STAGE my_s3_stage
  STORAGE_INTEGRATION = s3_int
  URL = 's3://mybucket/encrypted_files/'
  FILE_FORMAT = my_csv_format;

참고

스테이지에 대해 명명된 파일 형식 오브젝트(또는 개별 파일 형식 옵션)를 지정하면 나중에 스테이지에서 데이터를 로드하는 데 사용되는 COPY 명령에 동일한 파일 형식 옵션을 지정할 필요가 없습니다.

Python을 사용하여 외부 스테이지 만들기

외부 스테이지를 생성하려면 Snowflake Python APIs 의 StageCollection.create 메서드를 사용합니다.

앞의 SQL 예제와 유사하게, 다음 Python 예제는 mybucket 라는 폴더 경로로 encrypted_files/ 라는 이름의 S3 버킷을 참조하는 my_s3_stage 라는 외부 스테이지를 생성합니다.

from snowflake.core.stage import Stage

my_stage = Stage(
  name="my_s3_stage",
  storage_integration="s3_int",
  url="s3://mybucket/encrypted_files/"
)
root.databases["<database>"].schemas["<schema>"].stages.create(my_stage)

참고

Python API 는 현재 CREATE STAGE SQL 명령의 FILE_FORMAT 매개 변수를 지원하지 않습니다.

Create an external stage using Snowsight

Snowsight 를 사용하여 명명된 외부 스테이지를 만들려면 다음을 수행하십시오.

  1. Sign in to Snowsight.

  2. At the top of the navigation menu, select 대시보드 타일 추가하기 (Create) » Stage » External Stage.

  3. 외부 클라우드 저장소 공급자(Amazon S3, Microsoft Azure 또는 Google Cloud Platform)를 선택합니다.

  4. Create Stage 대화 상자에서 Stage Name 을 입력합니다.

  5. 스테이지를 생성할 데이터베이스와 스키마를 선택합니다.

  6. 외부 클라우드 저장소 위치의 URL 을 입력합니다.

  7. 외부 저장소가 공용이 아닌 경우 Authentication 을 활성화하고 세부 정보를 입력합니다. 자세한 내용은 CREATE STAGE 섹션을 참조하십시오.

  8. 원하는 경우 Directory table 을 선택 취소하십시오. 디렉터리 테이블을 사용하면 스테이지에서 파일을 볼 수 있지만 웨어하우스가 필요하므로 비용이 발생합니다. 지금은 이 옵션을 선택 취소하고 나중에 디렉터리 테이블을 활성화하도록 할 수 있습니다.

    Directory table`을 활성화하는 경우 선택적으로 :ui:`Enable auto-refresh`를 선택한 후 이벤트 알림 또는 알림 통합을 선택하여 파일이 추가되거나 제거될 때 디렉터리 테이블을 자동으로 새로 고칩니다. 자세한 내용은 :doc:`data-load-dirtables-auto 섹션을 참조하세요.

  9. 파일이 암호화된 경우 :ui:`Encryption`을 활성화하고 세부 정보를 입력합니다.

  10. (선택 사항) 생성된 SQL 문을 보려면 :ui:`SQL Preview`를 확장합니다. 스테이지에 대해 AUTO_REFRESH와 같은 추가 옵션을 지정하려면 워크시트에서 이 SQL 미리 보기를 열면 됩니다.

  11. Create 를 선택합니다.

다음 항목: S3 스테이지에서 데이터 복사하기