- 카테고리:
시스템 함수 (시스템 정보)
SYSTEM$GET_ICEBERG_TABLE_INFORMATION¶
Iceberg 테이블 의 루트 메타데이터 파일 위치와 최신 스냅샷 상태를 반환합니다.
SYSTEM$GET_ICEBERG_TABLE_INFORMATION 함수는 테이블 유형에 따라 다르게 작동합니다.
Snowflake를 카탈로그로 사용하는 Iceberg 테이블의 경우 이 함수를 호출하면 Snowflake가 테이블에 대한 메타데이터를 마지막으로 생성한 이후 발생한 데이터 조작 언어(DML) 작업 또는 기타 테이블 업데이트에 대한 메타데이터가 생성됩니다.
업데이트가 없으면 이 함수는 최신 메타데이터 파일의 위치를 반환하지만 새 메타데이터를 생성하지는 않습니다.
Snowflake에서 관리하지 않는 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”:”<값>”,”status”:”<값>”}
여기서
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"} |
+-----------------------------------------------------------------------------------------------------------+