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
로 지정합니다.
액세스 제어 요구 사항¶
이 작업을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.
권한 |
오브젝트 |
참고 |
---|---|---|
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 를 사용하여 테이블을 새로 고칠 때마다 Snowflake는 최대 1000개의 Delta 커밋 파일을 처리합니다. 테이블에 커밋 파일이 1000개가 넘는 경우 수동으로 추가 새로 고침을 수행할 수 있습니다. 매번 새로 고침 프로세스는 마지막 프로세스가 중지된 지점부터 계속됩니다.
참고
Snowflake는 Iceberg 테이블을 생성할 때 Delta 체크포인트 파일을 사용합니다. 1,000개의 커밋 파일 제한은 최신 체크포인트 이후의 커밋에만 적용됩니다.
기존 테이블을 새로 고치는 경우 Snowflake는 Delta 커밋 파일은 처리하지만 체크포인트 파일은 처리하지 않습니다. 테이블 유지 관리로 인해 원본 Delta 테이블에 대한 오래된 로그 및 데이터 파일이 제거되는 경우, Delta 로그 및 데이터 파일의 보존 기간보다 더 자주 Snowflake에서 Delta 기반 Iceberg 테이블을 새로 고쳐야 합니다.
메타데이터 관련:
주의
고객은 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
로 지정합니다.