외부 볼륨 구성

외부 볼륨은 Snowflake를 Iceberg 테이블의 외부 클라우드 저장소에 연결하는 데 사용하는 이름이 지정된 계정 수준의 Snowflake 오브젝트입니다. 외부 볼륨은 저장소 위치에 대한 ID 및 액세스 관리(IAM) 엔터티를 저장합니다. Snowflake는 IAM 엔터티를 사용하여 테이블 데이터, Iceberg 메타데이터 및 테이블 스키마, 파티션 및 기타 메타데이터를 저장하는 매니페스트 파일에 액세스하기 위해 저장소에 안전하게 연결합니다.

단일 외부 볼륨이 하나 이상의 Iceberg 테이블을 지원할 수 있습니다.

외부 볼륨을 생성해야 Snowflake에서 Apache Iceberg™ 테이블을 생성할 수 있습니다.

외부 볼륨 만들기

외부 볼륨을 생성하는 단계는 클라우드 저장소 공급자에 따라 다릅니다.

구체적인 지침은 다음 항목을 참조하십시오.

각 외부 볼륨은 특정 활성 저장소 위치 과 연결되며, 하나의 외부 볼륨은 여러 개의 Iceberg 테이블을 지원할 수 있습니다. 그러나 필요한 외부 볼륨의 수는 테이블 데이터를 어떻게 저장, 구성하고 보호할 것인지에 따라 달라집니다.

동일한 저장 위치(예: 동일한 S3 버킷) 아래의 하위 디렉터리에 모든 Snowflake-Iceberg 테이블에 대한 데이터와 메타데이터를 저장할 경우 단일 외부 볼륨을 사용할 수 있습니다. Snowflake 관리 테이블에 대해 이러한 디렉터리를 구성하려면 데이터 및 메타데이터 디렉터리 섹션을 참조하십시오.

또는 여러 개의 외부 볼륨을 생성하여 다양한 저장 위치를 각기 다르게 보호할 수 있습니다. 예를 들어, 다음과 같은 외부 볼륨을 생성할 수 있습니다.

  • 외부에서 관리되는 Iceberg 테이블을 위한 읽기 전용 외부 볼륨입니다.

  • Snowflake 관리 테이블에 대한 읽기 및 쓰기 액세스 권한이 구성된 외부 볼륨입니다.

외부 볼륨 확인

구성한 외부 볼륨을 사용하여 Snowflake가 저장소 공급자에 성공적으로 인증할 수 있는지 확인합니다. SQL 또는 Snowsight 를 사용하여 외부 볼륨을 확인할 수 있습니다.

SQL 사용하기

SQL을 사용하여 외부 볼륨을 확인하려면 SYSTEM$VERIFY_EXTERNAL_VOLUME 함수를 호출합니다.

확인하려는 외부 볼륨의 이름을 지정합니다.

SELECT SYSTEM$VERIFY_EXTERNAL_VOLUME('my_s3_external_volume');
Copy

Snowsight 사용하기

Snowsight 를 사용하여 외부 볼륨을 확인하려면 다음 단계를 따릅니다.

  1. Snowsight 에 로그인합니다.

  2. 탐색 메뉴에서 Catalog » External data 를 선택합니다.

  3. External volumes 탭을 선택합니다.

  4. 연결을 확인할 외부 볼륨을 선택합니다.

  5. » Verify connection 를 선택합니다.

계정, 데이터베이스 또는 스키마 수준에서 기본 외부 볼륨 설정

기본값으로 :ref:`기존 외부 볼륨을 설정 <label-tables_iceberg_configure_external_volume_set_existing>`하거나 생성 시 기본값으로 :ref:`새 외부 볼륨을 설정 <label-tables_iceberg_configure_external_volume_set_new>`할 수 있습니다.

기본값으로 기존 외부 볼륨 설정

기존 외부 볼륨을 Iceberg 테이블에 사용할 기본값으로 설정하려면 다음 수준에서 EXTERNAL_VOLUME 매개 변수를 설정할 수 있습니다.

계정:

계정 관리자는 ALTER ACCOUNT 명령을 사용해 계정에 대한 매개 변수를 설정할 수 있습니다. 계정에 대해 값이 설정된 경우 계정에서 생성된 모든 Iceberg 테이블은 기본적으로 이 외부 볼륨에서 읽고 볼륨에 씁니다.

오브젝트:

사용자는 적절한 CREATE <오브젝트> 또는 ALTER <오브젝트> 명령을 실행하여 데이터베이스 또는 스키마 수준에서 EXTERNAL_VOLUME 매개 변수 값을 재정의할 수 있습니다. 가장 낮은 범위가 지정된 선언이 사용됩니다(스키마 > 데이터베이스 > 계정).

적절한 ALTER <object_type> 명령을 사용하여 오브젝트를 수정하는 데 필요한 최소 권한 외에도, 역할에는 외부 볼륨에 대한 USAGE 권한이 있어야 합니다.

참고

  • 매개 변수 EXTERNAL_VOLUME의 변경 사항은 변경 이후 생성된 테이블에만 적용됩니다. 기존 테이블은 생성 시 지정된 외부 볼륨을 계속 사용합니다.

  • 또는 Snowsight 를 사용하여 외부 볼륨을 생성할 때 계정, 데이터베이스 또는 스키마 수준에서 기본 외부 볼륨을 설정할 수 있습니다.

다음 문은 my_database_1 이라는 데이터베이스의 외부 볼륨(my_s3_vol)을 설정합니다.

ALTER DATABASE my_database_1
  SET EXTERNAL_VOLUME = 'my_s3_vol';
Copy

데이터베이스 수준에서 외부 볼륨을 설정한 후 외부 볼륨을 지정하지 않고도 해당 데이터베이스에 Iceberg 테이블을 생성할 수 있습니다. 다음 문은 Snowflake를 카탈로그로 사용하고 데이터베이스에 설정된 기본 외부 볼륨(my_s3_vol)을 사용하는 Iceberg 테이블을 my_database_1 에 생성합니다.

CREATE ICEBERG TABLE iceberg_reviews_table (
  id STRING,
  product_name STRING,
  product_id STRING,
  reviewer_name STRING,
  review_date DATE,
  review STRING
)
CATALOG = 'SNOWFLAKE'
BASE_LOCATION = 'my/product_reviews/';
Copy

기본값으로 새 외부 볼륨 설정

Snowsight 에서 외부 볼륨을 생성할 때 새 외부 볼륨을 Iceberg 테이블에 사용할 기본값으로 설정하려면 구성 설정의 Scope 필드를 사용하여 계정, 데이터베이스 또는 스키마 수준에서 외부 볼륨을 기본값으로 설정합니다.

Snowsight 에서 외부 볼륨을 생성하는 방법에 대한 지침은 다음 섹션을 참조하세요.

Snowsight 를 사용하여 외부 볼륨에 대한 USAGE 권한 부여

USAGE 권한은 외부 볼륨을 참조하고 외부 볼륨에 대한 세부 정보를 볼 수 있는 권한을 부여합니다. 자세한 내용은 외부 볼륨 권한 섹션을 참조하십시오.

Snowsight를 사용하여 외부 볼륨에 대한 USAGE 권한을 부여하려면 다음 단계를 따릅니다.

  1. Snowsight 에 로그인합니다.

  2. OWNERSHIP 권한을 부여하려는 외부 볼륨에 대한 USAGE 권한이 있는 역할로 전환합니다.

    역할 전환에 대한 지침은 기본 역할 전환 섹션을 참조하세요. OWNERSHIP 권한에 대한 자세한 내용은 외부 볼륨 권한 섹션을 참조하세요.

  3. 탐색 메뉴에서 Catalog » External data 를 선택합니다.

  4. External volumes 탭을 선택합니다.

  5. USAGE 권한을 부여하려는 외부 볼륨을 선택합니다.

  6. + Privilege 를 선택합니다.

  7. Roles 필드에서 외부 볼륨에 대한 USAGE 권한을 부여하려는 역할을 선택합니다.

  8. Privileges 필드에서 :ui:`USAGE`를 선택합니다.

  9. Grant privileges 을 선택합니다.

Snowsight를 사용하여 저장소 위치 추가

참고

SQL을 사용하여 외부 볼륨에 저장소 위치를 추가하려면 ALTER EXTERNAL VOLUME 명령의 ADD STORAGE_LOCATION 매개 변수를 사용합니다.

Snowsight를 사용하여 명명된 저장소 위치를 외부 볼륨에 추가하려면 다음 단계를 따릅니다.

  1. Snowsight 에 로그인합니다.

  2. 저장소 위치를 추가하려는 외부 볼륨에 대한 OWNERSHIP 권한이 있는 역할로 전환합니다.

    자세한 지침은 기본 역할 전환 섹션을 참조하십시오.

  3. 탐색 메뉴에서 Catalog » External data 를 선택합니다.

  4. External volumes 탭을 선택합니다.

  5. 저장소 위치를 추가하려는 외부 볼륨을 선택합니다.

  6. » Add storage location 를 선택합니다.

  7. 클라우드 저장소 공급자를 선택하고 추가하는 저장소 위치에 대한 구성을 지정합니다.

    1. Amazon S3 탭을 선택합니다.

    2. 추가하는 저장소 위치에 대한 구성을 지정합니다.

      필드

      설명

      Location name

      추가 저장소 위치의 이름을 입력합니다.

      Region type

      데이터 파일을 저장하는 클라우드 저장소 공급자를 지정합니다.

      • Standard (default): 중국 외부에 있는 공용 AWS 리전의 S3 저장소입니다.

      • Government (GovCloud): AWS :ref:`정부 리전 <label-us_gov_regions>`의 S3 저장소입니다.

      S3 role ARN

      데이터 파일을 포함한 S3 버킷에 대한 권한을 부여하는 ARN ID 및 액세스 관리(AWS) 역할의 대/소문자를 구분하는 IAM(Amazon Resource Name)을 지정합니다.

      :ref:`IAM 역할을 생성 <label-configure_external_volume_s3_create_iam_role>`할 때 이 값을 기록했습니다.

      Encryption (optional)

      사용되는 암호화 유형을 지정합니다. 가능한 값은 다음과 같습니다.

      Connectivity

      보안 태세를 강화하기 위해 아웃바운드 비공개 연결을 사용할지 여부를 지정합니다. 이 매개 변수 사용에 대한 자세한 내용은 Amazon Web Services 용 외부 볼륨에 대한 비공개 연결 섹션을 참조하십시오. 가능한 값은 다음과 같습니다.

      • Public (default): 공용 인터넷을 사용합니다.

      • Private (AWS PrivateLink): 아웃바운드 비공개 연결을 사용합니다.

      Storage base URL

      추가 저장소 위치의 기본 URL을 지정합니다.

  8. Add storage location 을 선택합니다.