ALTER ICEBERG TABLE … REFRESH¶
외부 Iceberg 카탈로그를 사용하는 Apache Iceberg™ 테이블 의 메타데이터를 새로 고칩니다. Iceberg 테이블을 새로 고치면 테이블 메타데이터가 가장 최근 테이블 변경 사항과 동기화됩니다.
이 항목에서는 Iceberg 테이블 을 지정하여 혼동을 방지하는 경우를 제외하고는 Iceberg 테이블을 간단히 ‘테이블’이라고 부릅니다.
구문¶
ALTER ICEBERG TABLE [ IF EXISTS ] <table_name> REFRESH [ '<metadata_file_relative_path>' ]
매개 변수¶
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.json
을metadata-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;
오브젝트 저장소의 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';
참고
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.json
을 metadata-file-relative-path
로 지정합니다.