- 类别:
系统函数 (系统信息)
SYSTEM$GET_ICEBERG_TABLE_INFORMATION¶
返回 Iceberg 表 的根元数据文件位置和最新快照的状态。
SYSTEM$GET_ICEBERG_TABLE_INFORMATION 函数的运行方式因表类型而异:
对于使用 Snowflake 作为目录的 Iceberg 表,调用该函数会生成数据操作语言 (DML) 操作的元数据,或自 Snowflake 上次为表生成元数据以来发生的其他表更新。
如果没有更新,该函数将返回最新元数据文件的位置,但不会生成新的元数据。
对于不受 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":"<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"} |
+-----------------------------------------------------------------------------------------------------------+