- 类别:
系统函数 (系统信息)
SYSTEM$AUTO_REFRESH_STATUS¶
返回外部管理的 Iceberg 表 的自动刷新状态。
备注
要返回您拥有访问权限的所有适用的外部托管 Apache Iceberg™ 表的刷新状态,请运行该 SHOW ICEBERG TABLES 命令并查看输出中的 auto_refresh_status
列。
语法¶
SYSTEM$AUTO_REFRESH_STATUS('<table_name>')
实参¶
'table_name'
您要检索当前自动刷新状态的 Iceberg 表的名称。
如果使用完全限定名称,整个名称必须放在单引号内,包括数据库和架构。如果表名区分大小写或包含任何特殊字符或空格,则必须使用双引号。将双引号放在单引号内,例如,
'"Table_Name"'
。
返回¶
该函数返回包含以下名称/值对的 JSON 对象:
{
"executionState":"<value>",
"invalidExecutionStateReason":"<value>",
"pendingSnapshotCount":"<value>",
"oldestSnapshotTime":"<value>",
"currentSnapshotId":"<value>",
"currentSnapshotSummary":"<value>",
"lastSnapshotTime":"<value>",
"lastUpdatedTime":"<value>",
"currentMetadataFile":"<value>",
"currentSchemaId":"<value>"
}
其中:
executionState
当前执行状态的管道,Snowflake 用于自动化表的元数据刷新。
值:
RUNNING
:自动刷新按预期运行。此状态并不表示 Snowflake 是否正在为管道主动处理事件消息。
STALLED
:自动刷新遇到错误,正在尝试恢复。
STOPPED
:自动刷新遇到无法恢复的错误,除非您采取进一步的措施,否则将停止。有关更多信息,请参阅 错误恢复。invalidExecutionStateReason
与
STALLED
或STOPPED
执行状态相关的错误消息。pendingSnapshotCount
排队等待自动刷新快照的数量。
oldestSnapshotTime
排队快照中最早的时间戳。Snowflake 在快照添加到队列时设置快照的时间戳。
currentSnapshotId
Snowflake 正在跟踪的当前快照的 ID。这代表当前表数据对应的快照。
currentSnapshotSummary
metadata.json
文件中的 Iceberg 快照摘要。如果元数据文件中不存在,则为 NULL。lastSnapshotTime
根据 Iceberg 元数据创建的当前快照时间戳。此时间戳对应于在外部目录中生成当前快照的时间。
lastUpdatedTime
时间戳,表示 Snowflake 成功处理当前快照的时间。此值与
lastSnapshotTime
之间的差异表示在外部目录中创建快照的时间与 Snowflake 成功刷新表元数据之间的延迟。为了减少延迟,请调整与表相关的目录集成的
REFRESH_INTERVAL_SECONDS
参数。currentMetadataFile
当前元数据文件的完整路径。
currentSchemaId
当前架构的 ID。
使用说明¶
调用此函数需要对 Iceberg 表具有 OWNERSHIP 权限的角色。
对于基于 Delta 的表,请注意以下事项:
在此函数和 Snowflake 中的自动刷新中,“快照”一词是指 Delta 提交。
该函数不返回
lastSnapshotTime
的值。
示例¶
检索表 my_iceberg_table
在架构 db1.schema1
中的自动刷新状态:
SELECT SYSTEM$AUTO_REFRESH_STATUS('db1.schema1.my_iceberg_table');