类别:

Information Schema表函数

ALERT_HISTORY

此 INFORMATION_SCHEMA 表函数可用于查询指定日期范围内的 警报 历史记录。该函数会返回整个 Snowflake 账户的警报历史记录,或者返回指定警报。

您还可以通过 ACCOUNT_USAGE 架构中的 ALERT_HISTORY 视图访问此信息。有关视图函数与表函数之间差异的详细信息,请参阅 Account Usage 与 Information Schema 之间的差异

备注

此函数会返回过去 7 天内的警报执行情况,或者未来 8 天内的下一次计划执行。

语法

ALERT_HISTORY(
      [ SCHEDULED_TIME_RANGE_START => <constant_expr> ]
      [, SCHEDULED_TIME_RANGE_END => <constant_expr> ]
      [, RESULT_LIMIT => <integer> ]
      [, ALERT_NAME => '<string>' ] )
Copy

实参

所有实参均为可选。

SCHEDULED_TIME_RANGE_START => constant_expr. SCHEDULED_TIME_RANGE_END => constant_expr

过去 7 天内计划对警报条件进行评估的时间范围(采用 TIMESTAMP_LTZ 格式)。

  • 如果未指定 SCHEDULED_TIME_RANGE_END,该函数将返回那些已完成、当前正在运行或将来计划的警报。

  • 如果 SCHEDULED_TIME_RANGE_ENDCURRENT_TIMESTAMP,该函数将返回那些已完成或当前正在运行的警报。请注意,在当前时间之前立即执行的警报可能仍被标识为计划警报。

备注

如果未指定开始或结束时间,则返回最近的警报,不超过指定的 RESULT_LIMIT 值。

如果时间范围不在过去 7 天内,则会返回错误。

RESULT_LIMIT => integer

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

如果匹配的行数大于此限制,则返回具有最新时间戳的警报执行,直至达到指定的限制。

范围:110000

默认:100

ALERT_NAME => string

指定警报的不区分大小写的字符串。仅支持非限定警报名称。仅返回指定警报的执行。请注意,如果多个警报具有相同的名称,则该函数将返回每个警报的历史记录。

使用说明

  • 仅返回 ACCOUNTADMIN 角色、警报所有者(即对警报具有 OWNERSHIP 权限的角色)的结果。

  • 此函数最多返回在 RESULT_LIMIT 实参值中设置的 10,000 行。默认值为 100

    请注意,查询 ALERT_HISTORY 函数时,首先 应用其警报名称、时间范围和结果限制实参,然后分别应用 WHERE 和 LIMIT 子句(如果已指定)。此外,ALERT_HISTORY 函数还按 SCHEDULED_TIME 降序返回记录。已完成的警报(即处于 SUCCEEDED、FAILED 或 CANCELLED 状态)往往计划得较早,因此它们通常在搜索结果中按顺序较晚返回。

    实际上,如果您的账户中正在运行许多警报,则该函数返回的结果可能包含少于预期的已完成警报或仅包含计划警报,特别是在 RESULT_LIMIT 值相对较低的情况下。要查询已运行警报的历史记录,Snowflake 建议组合使用 SCHEDULED_TIME_RANGE_START => constant_expr 和/或 SCHEDULED_TIME_RANGE_END => constant_expr 实参。

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

  • 此函数会返回过去 7 天内的所有执行运行或未来 8 天内的下一次计划执行。

输出

ALERT_HISTORY 表函数为每个警报执行生成一行。此表包含以下列:

列名称

数据类型

描述

NAME

TEXT

警报的名称。

DATABASE_NAME

TEXT

包含警报的数据库的名称。

SCHEMA_NAME

TEXT

包含警报的架构的名称。

CONDITION

TEXT

用作警报条件的 SQL 语句的文本。

CONDITION_QUERY_ID

TEXT

作为警报条件执行的 SQL 语句的内部/系统生成的标识符。

ACTION

TEXT

用作警报操作的 SQL 语句的文本。

ACTION_QUERY_ID

TEXT

作为警报操作执行的 SQL 语句的内部/系统生成的标识符。

STATE

TEXT

警报状态。这可以是以下项之一:

  • SCHEDULED:警报将在 SCHEDULED_TIME 列指定的时间执行。

  • EXECUTING:当前正在执行警报的条件或操作。

  • FAILED:警报失败。警报条件或警报操作遇到错误,因此无法执行。

  • CANCELLED:警报执行已取消(例如,当警报暂停时)。

  • CONDITION_FALSE:已成功评估条件,但未返回任何数据。因此未执行操作。

  • CONDITION_FAILED:条件评估失败。有关故障的详细信息,请查看 SQL_ERROR_CODE 和 SQL_ERROR_MESSAGE 列。

  • ACTION_FAILED:已成功评估条件,但操作执行失败。有关故障的详细信息,请查看 SQL_ERROR_CODE 和 SQL_ERROR_MESSAGE 列。

  • TRIGGERED:已成功评估条件,并成功执行操作。

SQL_ERROR_CODE

NUMBER

错误代码,如果警报返回错误或执行失败(例如当前用户没有执行警报的权限)。

SQL_ERROR_MESSAGE

VARCHAR

错误消息(如果警报返回错误)。

SCHEDULED_TIME

TIMESTAMP_LTZ

警报计划开始运行的时间。

注意,我们会尽最大努力确保绝对精度,但仅保证警报不会在计划时间 之前 执行。

COMPLETED_TIME

TIMESTAMP_LTZ

警报完成的时间;如果 SCHEDULED_TIME 是将来的时间或者警报仍在运行,则值为 NULL。

示例

请参阅 监控警报的执行情况

语言: 中文