配置任务以发送成功通知

Snowflake 可以在任务图成功完成时,将成功通知推送到云消息传递服务。本主题提供有关使用云消息传递为任务配置成功通知支持的说明。

成功通知集成仅在任务图的根任务上指定。Snowflake 仅在整个任务图成功执行时发送成功通知,并且不会为任何成功执行的独立任务发送通知,这与 错误通知集成 不同。

备注

无服务器任务和用户管理任务(即依赖虚拟仓库提供计算资源的任务)都支持任务成功通知功能。

要启用任务以发送成功通知,您必须将任务与消息通知集成关联。按照任务文档,使用 Amazon Web Services Simple Notification Service (AWS SNS)Microsoft Azure Event GridGoogle Pub/Sub 创建通知集成。

创建新任务或修改现有任务以发送成功通知

在运行 CREATE TASK 命令以创建新任务时,或者运行 ALTER TASK 命令以修改现有任务时,您可以将任务与通知集成关联。

备注

要创建或修改可引用通知集成的任务,需要对通知集成拥有 USAGE 权限的角色。此外,角色必须分别拥有架构的 CREATE TASK 权限或任务的 OWNERSHIP 权限。

CREATE [ OR REPLACE ] TASK [ IF NOT EXISTS ] <name>
    WAREHOUSE = <string>
    [...]
    SUCCESS_INTEGRATION = <integration_name>
Copy
ALTER TASK <name> SET SUCCESS_INTEGRATION = <integration_name>;
Copy

其中:

SUCCESS_INTEGRATION = integration_name

AWS SNSMicrosoft Azure Event GridGoogle Pub/Sub 平台级通知中创建的通知集成的名称。

显示成功通知

您可以运行 SHOW TASKSDESCRIBE TASK,以查看任务成功通知。 Snowflake 将一个新列 success_integration 添加到 SHOW TASKS 和 DESCRIBE TASK 的输出。此字段为所有子任务显示 null。如果根任务上指定了通知集成,则此字段显示图形级成功集成的名称,否则为 null。

有效负载

成功消息的主体包括用于识别任务图的信息,例如 rootTaskName、rootTaskID、queryID 和 attemptNumber。以下是任务图成功通知的示例消息有效负载。

{"version":"1.0",
 "messageId":"3ff1eff0-7ad7-493c-9552-c0307087e0c6",
 "messageType":"USER_TASK_GRAPH_SUCCEEDED",
 "timestamp":"2021-11-11T19:46:39.648Z",
 "accountName":"AWS_UTEN_DPO_ACC",
 "rootTaskName":"AWS_UTEN_DPO_DB.AWS_UTEN_SC.UTEN_AWS_TK1",
 "rootTaskId":"01a03962-2b57-889e-0000-000000000001",
 "messages": [{
              "runId":"2021-11-11T19:46:23.826Z",
              "scheduledTime":"2021-11-11T19:46:23.826Z",
              "queryStartTime":"2021-11-11T19:46:24.879Z",
              "graphCompletedTime":"2021-11-11T19:54:24.5591",
              "queryId":"01a03962-0300-0002-0000-0000000034d8",
              "attemptNumber":5
}]}
Copy

请注意,必须将字符串解析为 JSON 对象,才能处理有效负载中的值。

语言: 中文