S3 호환 저장소용 외부 볼륨 구성하기

S3 호환 스토리지에 데이터 및 메타데이터가 있는 외부 관리 Iceberg 테이블의 경우 Amazon S3 호환 스토리지 위치와 연결된 외부 볼륨을 구성할 수 있습니다.

S3 호환 저장소를 사용하는 Iceberg 테이블은 리전 간 테이블 이며 다음 작업을 지원하지 않습니다.

전제 조건

S3 호환 저장소를 사용하는 Iceberg 테이블을 생성하려면 S3 호환 Snowflake용 API 엔드포인트가 있어야 합니다. 자세한 내용은 S3 호환 저장소 요구 사항 섹션을 참조하십시오.

S3 호환 저장소용 외부 볼륨 만들기

다음 단계에서는 S3 호환 저장소에 대한 외부 볼륨을 구성하는 방법과 해당 볼륨을 사용하여 외부에서 관리되는 Iceberg 테이블을 만드는 방법을 설명합니다.

  1. S3 호환 저장소 위치를 지정하는 외부 볼륨을 만듭니다. CREATE EXTERNAL VOLUME 명령의 S3 호환 매개 변수에 대한 자세한 내용은 명령 구문 섹션을 참조하십시오.

    CREATE OR REPLACE EXTERNAL VOLUME ext_vol_s3_compat
      STORAGE_LOCATIONS = (
        (
          NAME = 'my_s3_compat_storage_location'
          STORAGE_PROVIDER = 'S3COMPAT'
          STORAGE_BASE_URL = 's3compat://mybucket/unload/mys3compatdata'
          CREDENTIALS = (
            AWS_KEY_ID = '1a2b3c...'
            AWS_SECRET_KEY = '4x5y6z...'
          )
          STORAGE_ENDPOINT = 'mystorage.com'
        )
      )
      ALLOW_WRITES = FALSE;
    
    Copy
  2. 카탈로그 통합이 없는 경우, Iceberg 테이블에 대한 통합을 생성하십시오. S3 호환 저장소를 사용하는 Iceberg 테이블은 카탈로그 통합을 사용하는 경우에만 지원됩니다. 자세한 내용은 카탈로그 통합 만들기 섹션을 참조하십시오.

    다음 예제는 오브젝트 저장소에서 Iceberg 파일에 대한 카탈로그 통합을 생성하는 예제입니다.

    CREATE OR REPLACE CATALOG INTEGRATION my_iceberg_catalog_int
      CATALOG_SOURCE = OBJECT_STORE
      TABLE_FORMAT = ICEBERG
      ENABLED = TRUE;
    
    Copy
  3. 외부 볼륨 및 카탈로그 통합을 사용하여 Iceberg 테이블을 만들 수 있습니다.

    예:

    CREATE ICEBERG TABLE my_iceberg_table
      EXTERNAL_VOLUME = 'ext_vol_s3_compat'
      CATALOG = 'my_iceberg_catalog_int'
      METADATA_FILE_PATH = 'path/to/metadata/v1.metadata.json';
    
    Copy

외부 볼륨 자격 증명 업데이트하기

외부 볼륨의 자격 증명을 변경하거나 업데이트하려면 ALTER EXTERNAL VOLUME … UPDATE 명령을 사용할 수 있습니다. 자격 증명을 변경할 저장소 위치의 이름을 지정합니다.

ALTER EXTERNAL VOLUME ext_vol_s3_compat UPDATE
  STORAGE_LOCATION = 'my_s3_compat_storage_location'
  CREDENTIALS = (
    AWS_KEY_ID = '4d5e6f...'
    AWS_SECRET_KEY = '7g8h9i...'
  );
Copy