Configurer une tâche pour l’envoi de notifications de réussite

Snowflake peut pousser des notifications de réussite auprès d’un service de messagerie Cloud lorsqu’un graphique de tâches se termine correctement. Cette rubrique fournit des instructions pour configurer la prise en charge des notifications de réussite pour les tâches utilisant la messagerie Cloud.

L’intégration des notifications de réussite n’est spécifiée que sur une tâche racine d’un graphique de tâches. Snowflake n’envoie des notifications de réussite que lorsque l’ensemble du graphique des tâches est exécuté correctement et n’envoie pas de notifications pour les tâches autonomes exécutées correctement, ce qui est différent de l”intégration de notification d’erreur.

Note

La fonction de notification de réussite de la tâche est prise en charge à la fois pour les tâches sans serveur et les tâches gérées par l’utilisateur (c’est-à-dire les tâches qui s’appuient sur un entrepôt virtuel pour fournir les ressources de calcul).

Pour permettre à une tâche d’envoyer des notifications de réussite, vous devez associer la tâche à une intégration de notification de message. Suivez la documentation de la tâche pour créer une intégration de notification avec Amazon Web Services Simple Notification Service (AWS SNS), Microsoft Azure Event Grid ou Google Pub/Sub.

Créer une nouvelle tâche ou modifier une tâche existante pour envoyer des notifications de réussite

Vous pouvez associer la tâche à une intégration de notification lorsque vous exécutez la commande CREATE TASK pour créer une nouvelle tâche ou la commande ALTER TASK pour modifier une tâche existante.

Note

La création ou la modification d’une tâche qui fait référence à une intégration de notification nécessite un rôle qui possède le privilège USAGE sur l’intégration de notification. En outre, le rôle doit avoir le privilège CREATE TASK sur le schéma ou le privilège OWNERSHIP sur la tâche, respectivement.

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

Où :

SUCCESS_INTEGRATION = integration_name

Nom de l’intégration de notification créée dans l’une des notifications au niveau de la plateforme AWS SNS, Microsoft Azure Event Grid ou Google Pub/Sub.

Afficher les notifications de réussite

Vous pouvez exécuter SHOW TASKS ou DESCRIBE TASK pour voir les notifications de réussite des tâches. Snowflake ajoute une nouvelle colonne, success_integration, à la sortie de SHOW TASKS et DESCRIBE TASK. Ce champ affiche null pour toutes les tâches enfants. Ce champ affiche le nom de l’intégration de la réussite au niveau du graphique si l’intégration de notification est spécifiée sur une tâche racine, et null sinon.

Charge utile

Le corps des messages de réussite comprend des informations qui identifient le graphique de la tâche, telles que rootTaskName, rootTaskID, queryID et attemptNumber. Vous trouverez ci-dessous un échantillon de message pour une notification de réussite d’un graphique de tâches.

{"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

Notez que vous devez analyser la chaîne dans un objet JSON pour traiter les valeurs dans la charge utile.