类别:

系统函数 (系统信息)

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

实参

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

输出:

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