SYSTEM$GET_ICEBERG_TABLE_INFORMATION
SYSTEM$GET_ICEBERG_TABLE_INFORMATION (Iceberg 테이블 정보 조회)
Apache Iceberg™ 테이블의 루트 메타데이터 파일 위치와 최신 스냅샷 상태를 반환해요.
출처: Snowflake SQL Reference - SYSTEM$GET_ICEBERG_TABLE_INFORMATION
본문
SYSTEM$GET_ICEBERG_TABLE_INFORMATION 함수는 테이블 타입에 따라 다르게 동작해요.
-
Snowflake 관리 Iceberg 테이블 또는 Delta 기반 테이블의 경우, 함수를 호출하면 Snowflake가 테이블에 대해 마지막으로 메타데이터를 생성한 이후 발생한 데이터 조작 언어(DML) 연산 또는 기타 테이블 업데이트에 대한 메타데이터를 생성해요.
업데이트가 없으면 함수는 최신 메타데이터 파일의 위치를 반환하지만, 새 메타데이터는 생성하지 않아요.
-
다른 외부 관리 Iceberg 테이블의 경우, 함수는 최신으로 새로고침된 스냅샷에 대한 정보를 반환해요.
구문
SYSTEM$GET_ICEBERG_TABLE_INFORMATION('<iceberg_table_name>')
인자
'iceberg_table_name'
정보를 검색하려는 Iceberg 테이블의 이름이에요. 테이블 이름은 문자열이므로 작은따옴표로 묶어야 해요.
-
Iceberg 테이블 이름이
'<db>.<schema>.<iceberg_table_name>'처럼 완전히 한정되어 있으면, 데이터베이스와 스키마를 포함한 전체 이름을 작은따옴표로 묶어야 해요. -
Iceberg 테이블 이름이 대소문자를 구분하거나 특수 문자나 공백을 포함하면, 대소문자/문자를 처리하려면 큰따옴표가 필요해요. 큰따옴표는 작은따옴표 안에 묶어야 해요(예:
'"<case_sensitive_iceberg_table_name>"').
반환 값
이 함수는 다음 이름/값 쌍을 포함하는 JSON 객체를 반환해요.
{"metadataLocation":"<value>","status":"<value>"}
여기서:
metadataLocation
함수가 업데이트하거나 검색한 루트 메타데이터 파일의 위치예요.
status
연산의 상태예요. 이 필드는 성공 또는 실패 메시지를 반환해요.
사용 시 참고 사항
- 이 함수를 호출하려면 Iceberg 테이블에 대한 OWNERSHIP 권한이 있는 역할이 필요해요.
예시
db1.schema1 스키마의 Iceberg 테이블 it1에 대한 스냅샷을 생성해요.
SELECT SYSTEM$GET_ICEBERG_TABLE_INFORMATION('db1.schema1.it1');
출력:
+-----------------------------------------------------------------------------------------------------------+
| SYSTEM$GET_ICEBERG_TABLE_INFORMATION('DB1.SCHEMA1.IT1') |
|-----------------------------------------------------------------------------------------------------------|
| {"metadataLocation":"s3://mybucket/metadata/v1.metadata.json","status":"success"} |
+-----------------------------------------------------------------------------------------------------------+