Catégories :

Information Schema , Fonctions de table

NOTIFICATION_HISTORY

Cette fonction de table peut être utilisée pour interroger l’historique des notifications envoyées par Snowflake. Ces notifications comprennent :

Les lignes renvoyées représentent :

  • Demandes en cours de traitement.

  • Tentatives infructueuses d’envoi de notifications.

  • Notifications qui ont été envoyées correctement.

La colonne STATUS indique ce que représente chaque ligne. Voir Exemples de sortie de la fonction.

Syntaxe

NOTIFICATION_HISTORY(
  [ START_TIME => <constant_expr> ]
  [, END_TIME => <constant_expr> ]
  [, INTEGRATION_NAME => '<string>' ]
  [, RESULT_LIMIT => <integer> ] )
Copy

Arguments

Tous les arguments sont facultatifs.

START_TIME=> constant_expr , . END_TIME=> constant_expr

Plage horaire (au format TIMESTAMP_LTZ) à laquelle la notification est envoyée.

  • Si START_TIME n’est pas spécifié, l’intervalle commence 24 heures avant END_TIME.

  • Si END_TIME n’est pas spécifié, la valeur par défaut est CURRENT_TIMESTAMP.

La plage horaire maximale est de 14 jours.

INTEGRATION_NAME => 'string'

Le nom entièrement qualifié de l’intégration qui est liée à la notification. Si vous omettez cet argument, la fonction renvoie toutes les notifications.

Par défaut : une chaîne vide.

RESULT_LIMIT => integer

Un nombre spécifiant le nombre maximum de lignes renvoyé par la fonction.

Plage : de 1 à 10000

Par défaut : 100

Sortie

La fonction renvoie les colonnes suivantes :

Nom de la colonne

Type de données

Description

CREATED

TIMESTAMP_LTZ

Horodatage de la création de la notification.

PROCESSED

TIMESTAMP_LTZ

Horodatage de la dernière tentative d’envoi de la notification.

MESSAGE_SOURCE

VARCHAR

Type d’objet ou de fonction qui a généré la notification. Les valeurs valides incluent :

INTEGRATION_NAME

VARCHAR

Nom de l’intégration utilisée pour cette notification.

STATUS

VARCHAR

Statut de la notification. Les valeurs valides sont :

  • QUEUED : la demande d’envoi de la notification est en cours de traitement.

  • SUCCESS : la notification a été envoyée correctement.

  • RETRIABLE_FAILURE : la tentative d’envoi de la notification a échoué et le système tentera d’envoyer à nouveau la notification.

  • FAILURE : plusieurs tentatives d’envoi de la notification ont échoué et il n’y aura plus de tentatives d’envoi de la notification.

ERROR_MESSAGE

VARCHAR

Si la notification a échoué, fournit des détails sur la raison de l’échec.

Note

Pour les notifications webhook, cette colonne contient le corps de la réponse HTTP, qui pourrait contenir des données sensibles. Avant d’utiliser ces données, assurez-vous de les assainir.

ID

VARCHAR

ID unique d’une demande d’envoi de notification.

Si Snowflake ne parvient pas à envoyer une notification et tente à nouveau de l’envoyer, la fonction renvoie une ligne pour chaque tentative. Chaque ligne pour une tentative a la même valeur dans la colonne ID mais une valeur différente dans la colonne ATTEMPT.

ATTEMPT

INTEGER

Numéro de la tentative d’envoi de la notification.

MESSAGE_SOURCE_INFO

OBJECT

Objet contenant des informations sur la source de la notification. Les champs de cet objet dépendent du type de la source :

  • Pour les notifications de budgets, l’objet contient les champs suivants :

    • budget_id : identificateur du budget.

    • budget_name : nom du budget.

  • Pour les notifications d’erreur pour les tâches, l’objet contient les champs suivants :

    • name : nom de la tâche.

    • graph_run_group_id : identificateur de l’exécution du graphique.

    • attempt_number : nombre entier représentant le nombre de tentatives d’exécution de cette tâche.

  • Pour les notifications d’erreur concernant Snowpipe, l’objet contient le champ pipe_name, qui spécifie le nom du canal.

  • Pour les notifications envoyées en appelant la procédure stockée SYSTEM$SEND_SNOWFLAKE_NOTIFICATION ou SYSTEM$SEND_EMAIL, l’objet contient le champ query_id, qui spécifie l’ID de l’instruction qui a appelé la procédure stockée.

Notes sur l’utilisation

  • Renvoie les résultats uniquement pour le rôle ACCOUNTADMIN, le propriétaire de l’intégration (c’est-à-dire le rôle avec le privilège OWNERSHIP sur l’intégration), un rôle avec le privilège USAGE sur l’intégration.

  • Lors de l’appel d’une fonction de table Information Schema, la session doit avoir un schéma INFORMATION_SCHEMA en cours d’utilisation ou le nom de la fonction doit être complètement qualifié. Pour plus de détails, voir Schéma d’information de Snowflake.

Exemples

Les sections suivantes contiennent des exemples d’appel de la fonction et des exemples de sortie de la fonction :

Exemples d’appel de la fonction

Les exemples suivants montrent comment appeler cette fonction :

Récupération des notifications les plus récentes

Récupère les notifications les plus récentes créées au cours des 24 dernières heures.

SELECT * FROM TABLE(INFORMATION_SCHEMA.NOTIFICATION_HISTORY());
Copy

Récupération des notifications par heure et nom d’intégration

Récupérez les notifications les plus récentes qui ont été créées au cours de la dernière heure et envoyées à l’aide de l’intégration nommée 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'));
Copy

Exemples de sortie de la fonction

Les exemples suivants expliquent la sortie renvoyée par cette fonction pour les demandes de notification à différents états :

Exemple de sortie lorsque deux tentatives échouent et qu’une troisième tentative est en cours

Cet exemple sélectionne un sous-ensemble des colonnes dans la sortie :

SELECT id, attempt, created, processed, status
  FROM TABLE(INFORMATION_SCHEMA.NOTIFICATION_HISTORY());
Copy

La sortie inclut les lignes qui représentent les tentatives d’envoi d’une notification. Dans la sortie :

  • La colonne ID identifie la notification qui est envoyée.

  • Les deux premières tentatives d’envoi de la notification ont échoué, mais le système peut tenter d’envoyer à nouveau la notification (comme indiqué par la valeur RETRIABLE_FAILURE dans la colonne STATUS).

  • Une troisième tentative est en cours de traitement, comme l’indique la valeur QUEUED dans la colonne STATUS.

+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+
|   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   |
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+

Exemple de résultat lorsque deux tentatives échouent et qu’une troisième tentative réussit

Cet exemple sélectionne un sous-ensemble des colonnes dans la sortie :

SELECT id, attempt, created, processed, status
  FROM TABLE(INFORMATION_SCHEMA.NOTIFICATION_HISTORY());
Copy

La sortie inclut les lignes qui représentent les tentatives d’envoi d’une notification. Dans la sortie :

  • La colonne ID identifie la notification qui est envoyée.

  • Les deux premières tentatives d’envoi de la notification ont échoué, mais le système peut tenter d’envoyer à nouveau la notification (comme indiqué par la valeur RETRIABLE_FAILURE dans la colonne STATUS).

  • Une troisième tentative a réussi, comme l’indique la valeur SUCCESS dans la colonne STATUS.

+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+
|   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   |
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+