类别:

Information Schema表函数

DYNAMIC_TABLES

此表函数返回有关 动态表 的元数据,其中包括当前时间 7 天内的聚合滞后指标和最近刷新的状态。

语法

DYNAMIC_TABLES (
  [ NAME => '<string>' ]
  [ , REFRESH_DATA_TIMESTAMP_START => <constant_expr> ]
  [ , RESULT_LIMIT => <integer> ]
  [ , INCLUDE_CONNECTED => { TRUE | FALSE } ]
)
Copy

实参

所有实参均为可选。如果未提供任何实参,则将返回账户中所有动态表的 100 次刷新。

NAME => 'string'

动态表的名称。

名称必须放在单引号内,并且不区分大小写。

可以指定非限定名称 (dynamic_table_name)、部分限定名称 (schema_name.dynamic_table_name) 或完全限定名称 (database_name.schema_name.dynamic_table_name)。

有关对象名称解析的详细信息,请参阅 对象名称解析

该函数返回此表的元数据。

REFRESH_DATA_TIMESTAMP_START => constant_expr

用于计算与动态表目标滞后相关的指标的时间(采用 TIMESTAMP_LTZ 格式)。包括 LATEST_DATA_TIMESTAMP 大于或等于 REFRESH_DATA_TIMESTAMP_START 的所有刷新。

默认值:刷新历史记录中的所有刷新将保留 7 天。

RESULT_LIMIT => integer

用于指定函数返回的行数上限的数字。

如果匹配的行数大于此限制,则会返回最近完成的刷新(以及仍在运行的刷新),最高不超过指定的限制。

范围:110000

默认:100

INCLUDE_CONNECTED => { TRUE | FALSE }

当设置为 TRUE 时,该函数将返回连接到 NAME 实参指定的动态表的所有动态表的元数据。

您必须指定 NAME 实参,但不得指定 RESULT_LIMIT 实参。

默认:FALSE

输出

该函数返回以下列:

列名称

数据类型

描述

NAME

TEXT

动态表的名称。

SCHEMA_NAME

TEXT

包含动态表的架构的名称。

DATABASE_NAME

TEXT

包含动态表的数据库的名称。

QUALIFIED_NAME

TEXT

动态表的完全限定名称。

TARGET_LAG_SEC

NUMBER

动态表的目标滞后时间(以秒为单位)。这是在动态表的 TARGET_LAG 参数中指定的值。

TARGET_LAG_TYPE

TEXT

目标滞后的类型。可以是以下项之一:

  • USER_DEFINED – 由为动态表指定的 TARGET_LAG 参数确定。

  • DOWNSTREAM:包括一个动态表,其中包含 DOWNSTREAM 目标滞后。

SCHEDULING_STATE

OBJECT

OBJECT 包括:

  • STATE (TEXT):计划状态(RUNNING 或 SUSPENDED)。

  • REASON_CODE (TEXT):指定动态表未运行的原因的代码。

  • REASON_MESSAGE (TEXT):动态表未运行原因的文本描述。仅当动态表不在 RUNNING 状态时适用。

  • SUSPENDED_ON (TIMESTAMP_LTZ):动态表暂停时的时间戳。仅当动态表处于 SUSPENDED 状态时适用。

  • RESUMED_ON (TIMESTAMP_LTZ):上次恢复动态表时的时间戳。仅当动态表处于 RUNNING 状态时适用。

MEAN_LAG_SEC

NUMBER

此动态表刷新的平均滞后时间(以秒为单位)。

MAXIMUM_LAG_SEC

NUMBER

此动态表刷新的最大滞后时间(以秒为单位)。

TIME_ABOVE_TARGET_LAG_SEC

NUMBER

在保留期内或自上次配置更改以来,实际滞后大于定义的目标滞后的时间(以秒为单位)。

TIME_WITHIN_TARGET_LAG_RATIO

NUMBER

在保留期内或自上次配置更改以来,实际滞后在目标滞后范围内的时间比率。

LATEST_DATA_TIMESTAMP

TIMESTAMP_LTZ

上次成功刷新的数据时间戳。

LAST_COMPLETED_REFRESH_STATE

TEXT

动态表上次终止刷新的状态。可以是以下项之一:

  • SUCCEEDED:刷新成功完成。

  • FAILED:刷新在执行期间失败。

  • UPSTREAM_FAILED:由于上游刷新失败,未执行刷新。

  • CANCELLED:刷新在执行前被取消。

LAST_COMPLETED_REFRESH_STATE_CODE

TEXT

表示刷新的当前状态的代码。

如果 LAST_COMPLETED_REFRESH_STATE 为 FAILED,则此列显示与失败关联的错误代码。

LAST_COMPLETED_REFRESH_STATE_MESSAGE

TEXT

刷新的当前状态的说明。

如果 LAST_COMPLETED_REFRESH_STATE 为 FAILED,则此列显示与失败关联的错误消息。

EXECUTING_REFRESH_QUERY

TEXT

如果存在,则表示刷新作业的查询 ID。如果为 null,则没有正在进行的刷新作业。

使用说明

  • 当调用 Information Schema 表函数时,会话必须具有正在使用的 INFORMATION_SCHEMA 架构,或者 函数名称必须受到完全限定。有关更多详细信息,请参阅 Snowflake Information Schema

示例

检索与指定动态表连接的所有动态表的名称、滞后信息和上次成功刷新的数据时间戳。

SELECT
  name,
  target_lag_sec,
  mean_lag_sec,
  latest_data_timestamp
FROM
  TABLE (
    INFORMATION_SCHEMA.DYNAMIC_TABLES (
      NAME => 'mydb.myschema.mydt',
      INCLUDE_CONNECTED => TRUE
    )
  )
ORDER BY
  target_lag_sec
Copy
语言: 中文