카테고리:

시스템 함수 (시스템 정보)

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>')
Copy

인자

'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');
Copy

출력:

+-----------------------------------------------------------------------------------------------------------+
| SYSTEM$GET_ICEBERG_TABLE_INFORMATION('DB1.SCHEMA1.IT1')                                                   |
|-----------------------------------------------------------------------------------------------------------|
| {"metadataLocation":"s3://mybucket/metadata/v1.metadata.json","status":"success"}                         |
+-----------------------------------------------------------------------------------------------------------+