ALTER ICEBERG TABLE … REFRESH

외부 Iceberg 카탈로그를 사용하는 Apache Iceberg™ 테이블 의 메타데이터를 새로 고칩니다. Iceberg 테이블을 새로 고치면 테이블 메타데이터가 가장 최근 테이블 변경 사항과 동기화됩니다.

이 항목에서는 Iceberg 테이블 을 지정하여 혼동을 방지하는 경우를 제외하고는 Iceberg 테이블을 간단히 ‘테이블’이라고 부릅니다.

참고 항목:

CREATE ICEBERG TABLE , DROP ICEBERG TABLE , SHOW ICEBERG TABLES , DESCRIBE ICEBERG TABLE

구문

ALTER ICEBERG TABLE [ IF EXISTS ] <table_name> REFRESH [ '<metadata_file_relative_path>' ]
Copy

매개 변수

table_name

새로 고칠 테이블의 식별자입니다.

식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.

'metadata_file_relative_path'

오브젝트 저장소의 Iceberg 파일에서 생성된 테이블에 대한 메타데이터 파일 경로를 지정합니다. 경로는 테이블과 연결된 외부 볼륨의 활성 저장소 위치 를 기준으로 해야 합니다.

다음 테이블은 예제 저장 위치에 따라 지정할 값을 보여줍니다.

테이블의 외부 볼륨에 대한 활성 저장소 위치

s3://mybucket_us_east_1

메타데이터 파일에 대한 전체 경로

s3://mybucket_us_east_1/metadata/v1.metadata.json

'metadata_file_relative_path'지정할 값

metadata/v1.metadata.json (앞에 슬래시 없이)

참고

  • 테이블이 AWS Glue를 카탈로그로 사용하거나 Delta 테이블 파일에서 생성된 경우 메타데이터 파일 경로를 지정하지 마십시오.

  • 메타데이터 파일 경로에서 선행 슬래시(/)를 생략합니다.

  • Snowflake 버전 7.34 이전에는 오브젝트 저장소의 Iceberg 파일에서 테이블을 생성하려면 BASE_LOCATION (이전 버전에서는 FILE_PATH 라고도 함)이라는 매개 변수가 필요했습니다. 이 매개 변수는 EXTERNAL_VOLUME 위치에서 상대 경로를 지정했습니다.

    이전 구문을 사용하여 생성한 테이블을 새로 고치려면 BASE_LOCATION 을 기준으로 한 상대 경로를 지정하십시오. 예를 들어 메타데이터 파일의 전체 경로가 s3://mybucket_us_east_1/my_base_location/metadata/v1.metadata.json 인 경우 metadata/v1.metadata.jsonmetadata-file-relative-path 로 지정합니다.

액세스 제어 요구 사항

이 SQL 명령을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.

권한

오브젝트

참고

OWNERSHIP

Iceberg 테이블

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

USAGE

외부 볼륨

USAGE

카탈로그 통합

스키마의 모든 오브젝트에 대해 작업하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한도 필요합니다.

지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.

보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.

사용법 노트

  • 테이블 소유자(즉, 테이블에 대한 OWNERSHIP 권한을 가진 역할) 이상만이 명령을 실행할 수 있습니다.

  • (암시적 또는 명시적) 트랜잭션에서는 ALTER ICEBERG TABLE … REFRESH 명령을 사용할 수 없습니다.

  • CREATE 및 ALTER … REFRESH 중에 새로 고침 작업은 작업당 최대 1,000개의 Delta 커밋 파일을 처리할 수 있습니다.

    참고

    Snowflake는 Iceberg 테이블을 생성할 때 Delta 체크포인트 파일을 사용합니다. 1,000개의 커밋 파일 제한은 최신 체크포인트 이후의 커밋에만 적용됩니다.

  • 메타데이터 관련:

    주의

    고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.

테이블 새로 고침

이 예에서는 다음 시나리오에서 테이블의 메타데이터를 수동으로 새로 고칩니다.

  • 테이블에서 Iceberg 카탈로그에 AWS Glue를 사용합니다.

  • 이 테이블은 오브젝트 저장소의 Delta 테이블 파일을 기반으로 합니다.

이러한 시나리오에서는 새로 고침 명령에서 메타데이터 파일 경로를 지정하지 않습니다.

ALTER ICEBERG TABLE myIcebergTable REFRESH;
Copy

오브젝트 저장소의 Iceberg 파일에서 생성된 테이블 새로 고침

이 예에서는 새 메타데이터 파일의 변경 사항을 기준으로 테이블 메타데이터를 수동으로 새로 고칩니다. 이 예에서 메타데이터 파일의 전체 경로는 <external-volume-storage-base-url>/path/to/metadata/v2.metadata.json 입니다.

메타데이터 파일을 지정할 때 메타데이터 파일 경로에 선행 슬래시(/)를 포함하지 마십시오.

ALTER ICEBERG TABLE my_iceberg_table REFRESH 'path/to/metadata/v2.metadata.json';
Copy

참고

Snowflake 버전 7.34 이전에는 오브젝트 저장소의 Iceberg 파일에서 테이블을 생성하려면 BASE_LOCATION (이전 버전에서는 FILE_PATH 라고도 함)이라는 매개 변수가 필요했습니다. 이 매개 변수는 EXTERNAL_VOLUME 위치에서 상대 경로를 지정했습니다.

이전 구문을 사용하여 생성한 테이블을 새로 고치려면 BASE_LOCATION 을 기준으로 한 상대 경로를 지정하십시오. 예를 들어 메타데이터 파일의 전체 경로가 s3://mybucket_us_east_1/my_base_location/metadata/v1.metadata.json 인 경우 metadata/v1.metadata.jsonmetadata-file-relative-path 로 지정합니다.