类别:

Information Schema表函数

DYNAMIC_TABLE_REFRESH_HISTORY

此表函数返回有关 动态表 每次刷新(已完成和正在运行)的信息。

此表函数返回所有正在进行的刷新以及当前时间 7 天内具有 REFRESH_VERSION 的所有刷新。

语法

DYNAMIC_TABLE_REFRESH_HISTORY(
  [ DATA_TIMESTAMP_START => <constant_expr> ]
  [ , DATA_TIMESTAMP_END => <constant_expr> ]
  [ , RESULT_LIMIT => <integer> ]
  [ , NAME => '<string>' ]
  [ , NAME_PREFIX => '<string>' ]
  [ , ERROR_ONLY => { TRUE | FALSE } ]
)
Copy

实参

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

DATA_TIMESTAMP_START => constant_expr. DATA_TIMESTAMP_END => constant_expr

刷新发生的时间范围(TIMESTAMP_LTZ 格式)。

  • 如果既未指定开始版本,也未指定结束版本,则默认范围为过去一天。

  • 如果未指定结束版本,则 CURRENT_TIMESTAMP 将用作范围的结束。

  • 如果未指定开始版本,则范围在 DATE_TIMESTAMP_END 开始前 1 天开始。

RESULT_LIMIT => integer

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

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

范围:110000

默认:100

NAME => string

动态表的名称。

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

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

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

函数返回此表的刷新次数。

NAME_PREFIX => string

动态表的前缀。

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

该函数为名称以该前缀开头的表返回刷新。

您可以使用此实参返回特定数据库或架构中动态表的刷新次数。

ERROR_ONLY => TRUE | FALSE

设置为 TRUE 时,此函数仅返回失败或已取消的刷新次数。

输出

该函数返回以下列:

列名称

数据类型

描述

NAME

TEXT

动态表的名称。

SCHEMA_NAME

TEXT

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

DATABASE_NAME

TEXT

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

STATE

TEXT

动态表的刷新状态。状态可以是以下状态之一:

  • SCHEDULED:已计划刷新,但尚未执行。

  • EXECUTING:正在刷新。

  • SUCCEEDED:刷新成功完成。

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

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

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

STATE_CODE

TEXT

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

STATE_MESSAGE

TEXT

刷新的当前状态的说明。

QUERY_ID

TEXT

为动态表生成结果的 SQL 语句的 ID。

DATA_TIMESTAMP

TIMESTAMP_LTZ

评估刷新时的事务时间戳。(这可能略早于刷新的实际时间。)在该时间戳之前到达的基本对象中的所有数据当前都包含在动态表中。

REFRESH_START_TIME

TIMESTAMP_LTZ

刷新作业开始的时间。

REFRESH_END_TIME

TIMESTAMP_LTZ

刷新完成的时间。

COMPLETION_TARGET

TIMESTAMP_LTZ

为了保持动态表的滞后时间不超过 TARGET_LAG 参数,此次刷新应在此时间点前完成。等于前面的 REFRESH_VERSION + TARGET_LAG。

QUALIFIED_NAME

TEXT

动态表在动态表图形中显示的完全限定名称。您可以使用它来联接 DYNAMIC_TABLE_GRAPH_HISTORY 函数的输出。

LAST_COMPLETED_DEPENDENCY

OBJECT

包含以下属性:

  • qualified_name:最新可用依赖项的限定名称。

  • data_timestamp:依赖项的刷新版本。

STATISTICS

OBJECT

包含以下属性:

  • numInsertedRows:插入的行数。

  • numDeletedRows:已删除的行数。

  • numCopiedRows:未更改的复制行数。

  • numAddedPartitions:添加的分区数。

  • numRemovedPartitions :已删除的分区数。

    例如:如果 UPDATE 语句用 10 行更新分区中的 1 行。然后,上面的指标显示插入了 1 行、删除了 1 行和复制了 9 行。此外,还删除了 1 个分区,并添加了 1 个分区。

REFRESH_ACTION

TEXT

其中之一:

  • NO_DATA – 基表中没有新数据。不适用于新建动态表的初始刷新,无论基础表是否有数据。

  • REINITIALIZE – 克隆期间更改了基表或刷新了克隆动态表的源表。

  • FULL – 完全刷新,因为动态表包含不可增量的查询元素(请参阅 SHOW DYNAMIC TABLE refresh_mode_reason),或者完全刷新比增量刷新便宜。

  • INCREMENTAL – 正常增量刷新。

REFRESH_TRIGGER

TEXT

其中之一:

  • SCHEDULED – 正常后台刷新以满足目标滞后或下游目标滞后。

  • MANUAL – 使用的 ALTER DYNAMIC TABLE <name> REFRESH 用户/任务

TARGET_LAG

TEXT

描述刷新时动态表的目标滞后值。

GRAPH_HISTORY_VALID_FROM

TIMESTAMP_NTZ

对 DYNAMIC_TABLE_GRAPH_HISTORY 表函数发生刷新时的 VALID_FROM 时间戳进行编码,以明确特定刷新对应的是动态表的哪个版本。如果尚未创建相应的动态表,该值也可以是 NULL。

使用说明

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

示例

检索失败或取消的刷新:

SELECT
  name,
  state,
  state_code,
  state_message,
  query_id,
  data_timestamp,
  refresh_start_time,
  refresh_end_time
FROM
  TABLE (
    INFORMATION_SCHEMA.DYNAMIC_TABLE_REFRESH_HISTORY (
      NAME_PREFIX => 'MYDB.MYSCHEMA.', ERROR_ONLY => TRUE
    )
  )
ORDER BY
  name,
  data_timestamp;
Copy
语言: 中文