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>' ] )
实参¶
所有实参均为可选。
SCHEDULED_TIME_RANGE_START => constant_expr
、.SCHEDULED_TIME_RANGE_END => constant_expr
过去 7 天内计划对警报条件进行评估的时间范围(采用 TIMESTAMP_LTZ 格式)。
如果未指定
SCHEDULED_TIME_RANGE_END
,该函数将返回那些已完成、当前正在运行或将来计划的警报。如果
SCHEDULED_TIME_RANGE_END
为 CURRENT_TIMESTAMP,该函数将返回那些已完成或当前正在运行的警报。请注意,在当前时间之前立即执行的警报可能仍被标识为计划警报。
备注
如果未指定开始或结束时间,则返回最近的警报,不超过指定的 RESULT_LIMIT 值。
如果时间范围不在过去 7 天内,则会返回错误。
RESULT_LIMIT => integer
用于指定函数返回的行数上限的数字。
如果匹配的行数大于此限制,则返回具有最新时间戳的警报执行,直至达到指定的限制。
范围:
1
至10000
默认:
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 |
警报状态。这可以是以下项之一:
|
SQL_ERROR_CODE |
NUMBER |
错误代码,如果警报返回错误或执行失败(例如当前用户没有执行警报的权限)。 |
SQL_ERROR_MESSAGE |
VARCHAR |
错误消息(如果警报返回错误)。 |
SCHEDULED_TIME |
TIMESTAMP_LTZ |
警报计划开始运行的时间。 注意,我们会尽最大努力确保绝对精度,但仅保证警报不会在计划时间 之前 执行。 |
COMPLETED_TIME |
TIMESTAMP_LTZ |
警报完成的时间;如果 SCHEDULED_TIME 是将来的时间或者警报仍在运行,则值为 NULL。 |
示例¶
请参阅 监控警报的执行情况。