NOTIFICATION_HISTORY¶
此表函数可用于查询通过 Snowflake 发送的通知的历史记录。这些通知包括:
返回的行代表:
正在处理的请求。
发送通知的失败尝试次数。
已成功发送的通知。
STATUS 列 表示每一行所代表的含义。请参阅 函数的输出示例。
语法¶
NOTIFICATION_HISTORY(
[ START_TIME => <constant_expr> ]
[, END_TIME => <constant_expr> ]
[, INTEGRATION_NAME => '<string>' ]
[, RESULT_LIMIT => <integer> ] )
实参¶
所有实参均为可选。
START_TIME=> constant_expr
、.END_TIME=> constant_expr
发出通知的时间范围(格式为 TIMESTAMP_LTZ)。
如果未指定 START_TIME,则范围从 END_TIME 之前的 24 小时开始。
如果未指定 END_TIME,则默认值为 CURRENT_TIMESTAMP。
最大时间范围是 14 天。
INTEGRATION_NAME => 'string'
与通知绑定的集成的完全限定名称。如果省略此实参,该函数将返回所有通知。
默认值:空字符串。
RESULT_LIMIT => integer
用于指定函数返回的行数上限的数字。
范围:
1
至10000
默认:
100
输出¶
该函数返回以下列:
列名称 |
数据类型 |
描述 |
---|---|---|
CREATED |
TIMESTAMP_LTZ |
创建通知的时间戳。 |
PROCESSED |
TIMESTAMP_LTZ |
上次尝试发送通知的时间戳。 |
MESSAGE_SOURCE |
VARCHAR |
生成了通知的对象或功能的类型。有效值包括:
|
INTEGRATION_NAME |
VARCHAR |
用于此通知的集成 的名称。 |
STATUS |
VARCHAR |
通知的状态。有效值为:
|
ERROR_MESSAGE |
VARCHAR |
如果通知失败,则提供有关通知失败原因的详细信息。 备注 对于 Webhook 通知,此列包含 HTTP 响应的正文,其中可能包含敏感数据。在使用这些数据之前,请确保对其进行清理。 |
ID |
VARCHAR |
发送通知请求的唯一 ID。 如果 Snowflake 无法发送通知并尝试再次发送通知,则此函数为每次尝试返回一行。每次尝试的行在 ID 列中具有相同的值,但在 ATTEMPT 列中具有不同的值。 |
ATTEMPT |
INTEGER |
尝试发送通知的次数。 |
MESSAGE_SOURCE_INFO |
OBJECT |
包含有关通知源的信息的对象。此对象中的字段取决于源的类型。
|
使用说明¶
仅对 ACCOUNTADMIN 角色、集成所有者(即对集成具有 OWNERSHIP 权限的角色)或对集成具有 USAGE 权限的角色返回结果。
当调用 Information Schema 表函数时,会话必须具有正在使用的 INFORMATION_SCHEMA 架构,或者 函数名称必须受到完全限定。有关更多详细信息,请参阅 Snowflake Information Schema。
示例¶
以下部分包含调用该函数的示例以及该函数输出的示例:
调用函数的示例¶
以下示例说明如何调用该函数:
检索最新通知¶
检索过去 24 小时内创建的最新通知。
SELECT * FROM TABLE(INFORMATION_SCHEMA.NOTIFICATION_HISTORY());
按时间和集成名称检索通知¶
检索过去一小时内创建并使用名为 my_integration
的集成发送的最新通知。
SELECT * FROM TABLE(INFORMATION_SCHEMA.NOTIFICATION_HISTORY(
START_TIME=>DATEADD('hour',-1,CURRENT_TIMESTAMP()),
END_TIME=>CURRENT_TIMESTAMP(),
RESULT_LIMIT=>100,
INTEGRATION_NAME=>'my_integration'));
函数的输出示例¶
以下示例解释了该函数针对不同状态下的通知请求返回的输出:
两次尝试失败且正在进行第三次尝试时的输出示例¶
此示例选择输出中的列子集:
SELECT id, attempt, created, processed, status
FROM TABLE(INFORMATION_SCHEMA.NOTIFICATION_HISTORY());
输出包括代表尝试发送一个通知的行。在输出中:
ID 列标识正在发送的通知。
前两次发送通知的尝试均失败,但系统可以再次尝试发送通知(如 STATUS 列中的值
RETRIABLE_FAILURE
所示)。第三次尝试正在处理,如 STATUS 列中的值
QUEUED
所示。
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+
| ID | ATTEMPT | CREATED | PROCESSED | STATUS |
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+
| 10ae695e-93c3 | 3 | 2023-12-05 15:10:15.194 -0800 | NULL | QUEUED |
| 10ae695e-93c3 | 2 | 2023-12-05 15:10:15.194 -0800 | 2023-12-05 15:11:21.443 -0800 | RETRIABLE_FAILURE |
| 10ae695e-93c3 | 1 | 2023-12-05 15:10:15.194 -0800 | 2023-12-05 15:10:21.443 -0800 | RETRIABLE_FAILURE |
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+
两次尝试失败且第三次尝试成功时的输出示例¶
此示例选择输出中的列子集:
SELECT id, attempt, created, processed, status
FROM TABLE(INFORMATION_SCHEMA.NOTIFICATION_HISTORY());
输出包括代表尝试发送一个通知的行。在输出中:
ID 列标识正在发送的通知。
前两次发送通知的尝试均失败,但系统可以再次尝试发送通知(如 STATUS 列中的值
RETRIABLE_FAILURE
所示)。第三次尝试成功,如 STATUS 列中的值
SUCCESS
所示。
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+
| ID | ATTEMPT | CREATED | PROCESSED | STATUS |
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+
| 10ae695e-93c3 | 3 | 2023-12-05 15:10:15.194 -0800 | 2023-12-05 15:12:21.443 -0800 | SUCCESS |
| 10ae695e-93c3 | 2 | 2023-12-05 15:10:15.194 -0800 | 2023-12-05 15:11:21.443 -0800 | RETRIABLE_FAILURE |
| 10ae695e-93c3 | 1 | 2023-12-05 15:10:15.194 -0800 | 2023-12-05 15:10:21.443 -0800 | RETRIABLE_FAILURE |
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+