CREATE ALERT

Crée une nouvelle alerte dans le schéma actuel.

Voir aussi :

ALTER ALERT , DESCRIBE ALERT, DROP ALERT , SHOW ALERTS

Syntaxe

CREATE [ OR REPLACE ] ALERT [ IF NOT EXISTS ] <name>
  WAREHOUSE = <warehouse_name>
  SCHEDULE = '{ <num> MINUTE | USING CRON <expr> <time_zone> }'
  IF( EXISTS(
    <condition>
  ))
  THEN
    <action>
Copy

Paramètres requis

name

Chaîne qui indique l’identificateur (c’est-à-dire le nom) de l’alerte ; doit être unique pour le schéma dans lequel l’alerte est créée.

De plus, l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (p. ex. "My object"). Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Pour plus de détails, voir Exigences relatives à l’identificateur.

WAREHOUSE = warehouse_name

Spécifie l’entrepôt virtuel qui fournit les ressources de calcul pour l’exécution de cette alerte.

SCHEDULE ...

Spécifie la planification de l’évaluation périodique de la condition de l’alerte.

Vous pouvez spécifier la planification de l’une des manières suivantes :

  • USING CRON expr time_zone

    Spécifie une expression cron et un fuseau horaire pour évaluer périodiquement la condition de l’alerte. Prend en charge un sous-ensemble de la syntaxe standard de l’utilitaire cron.

    L’expression cron comprend les champs suivants :

    # __________ minute (0-59)
    # | ________ hour (0-23)
    # | | ______ day of month (1-31, or L)
    # | | | ____ month (1-12, JAN-DEC)
    # | | | | _ day of week (0-6, SUN-SAT, or L)
    # | | | | |
    # | | | | |
      * * * * *
    
    Copy

    Les caractères spéciaux suivants sont acceptés :

    Caractère spécial

    Description

    *

    Caractère générique. Spécifie toute occurrence du champ.

    L

    Signifie « dernier ». Lorsqu’il est utilisé dans le champ du jour de la semaine, il vous permet de spécifier des constructions telles que « le dernier vendredi » (« 5L ») d’un mois donné. Dans le champ du mois, il spécifie le dernier jour du mois.

    /n

    Indique la n ième instance d’une unité de temps donnée. Chaque quanta de temps est calculé indépendamment.

    Par exemple, si 4/3 est spécifié dans le champ du mois, l’évaluation est planifiée pour avril, juillet et octobre (c’est-à-dire tous les 3 mois, à partir du 4e mois de l’année).

    Le même calendrier est maintenu les années suivantes. En d’autres termes, la réévaluation n’est pas prévue en janvier (3 mois après l’exécution d’octobre).

    Note

    • L’expression cron est actuellement évaluée par rapport au fuseau horaire spécifié. La modification de la valeur du paramètre TIMEZONE pour le compte (ou la définition de la valeur au niveau de l’utilisateur ou de la session) ne modifie pas le fuseau horaire de l’alerte.

    • L’expression cron définit tous les moments valides pour l’évaluation de la condition de l’alerte. Snowflake tente d’évaluer la condition en fonction de cette planification. Toutefois, toute heure d’exécution valide est ignorée si une exécution précédente n’a pas été terminée avant le début de la prochaine heure d’exécution valide.

    • Lorsqu’un jour de mois et un jour de semaine spécifiques sont inclus dans l’expression cron, l’évaluation de la condition est planifiée les jours satisfaisant le jour du mois ou le jour de la semaine. Par exemple, SCHEDULE = 'USING CRON 0 0 10-20 * TUE,THU UTC' planifie une évaluation à 0AM entre le 10e et le 20e jour du mois ainsi que le mardi ou le jeudi en dehors de ces dates.

  • num MINUTE

    Spécifie un intervalle (en minutes) de temps d’attente inséré entre les évaluations de l’alerte Accepte uniquement les entiers positifs.

    Prend également en charge la syntaxe num M.

    Pour éviter toute ambiguïté, un intervalle de base est défini lorsque l’alerte est reprise (à l’aide de ALTER ALERT … RESUME).

    L’intervalle de base démarre le compteur d’intervalle à partir de l’heure actuelle. Par exemple, si une alerte est créée avec 10 MINUTE et que l’alerte est reprise à 9:03 AM, alors la condition de l’alerte est évaluée à 9:13 AM, 9:23 AM, et ainsi de suite. Notez que nous nous efforçons d’assurer une précision absolue, mais que nous garantissons uniquement que les conditions ne sont pas évaluées avant leur intervalle de consigne (par exemple, dans l’exemple actuel, la condition pourrait être évaluée d’abord à 9:14 AM mais certainement pas à 9:12 AM).

    Note

    La valeur maximale prise en charge est 11520 (8 jours). Les conditions des alertes dont la valeur num MINUTE est supérieure ne sont jamais évaluées.

condition

L’instruction SQL qui représente la condition de l’alerte. Vous pouvez utiliser les commandes suivantes :

Si l’instruction renvoie une ou plusieurs lignes, l’action relative à l’alerte est exécutée.

action

L’instruction SQL qui doit être exécutée si la condition renvoie une ou plusieurs lignes.

Pour envoyer une notification par e-mail, vous pouvez appeler la procédure stockée SYSTEM$SEND_EMAIL().

Note

Si vous utilisez un bloc Snowflake Scripting anonyme dans une action d’une alerte, le renvoi d’une valeur peut entraîner un statut incorrect, une requête ID et des informations d’erreur dans l’historique de l’alerte.

Exigences en matière de contrôle d’accès

Un rôle utilisé pour exécuter cette commande SQL doit avoir les privilèges suivants définis au minimum ainsi :

Privilège

Objet

Remarques

EXECUTE ALERT

Compte

CREATE ALERT

Schéma

USAGE

Entrepôt

Requis sur l’entrepôt utilisé pour l’alerte.

Notez que l’exploitation d’un objet dans un schéma requiert également le privilège USAGE sur la base de données et le schéma parents.

Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.

Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.

Notes sur l’utilisation

  • Les tâches s’exécutent en utilisant les privilèges accordés au propriétaire de l’alerte (c’est-à-dire le rôle qui possède le privilège OWNERSHIP sur l’alerte). Pour obtenir la liste des privilèges minimums requis pour exécuter les alertes, voir Attribution de privilèges pour créer des alertes.

    Pour vérifier que le rôle de propriétaire d’alerte dispose des privilèges requis pour exécuter les instructions SQL pour la condition et l’action, nous vous recommandons d’exécuter ces instructions en utilisant le rôle de propriétaire d’alerte avant de les spécifier dans CREATE ALERT.

  • Lorsque vous créez une alerte, celle-ci est suspendue par défaut.

    Pour rendre l’alerte active, vous devez exécuter ALTER ALERT … RESUME.

  • Regarding metadata:

    Attention

    Customers should ensure that no personal data (other than for a User object), sensitive data, export-controlled data, or other regulated data is entered as metadata when using the Snowflake service. For more information, see Champs de métadonnées dans Snowflake.

  • CREATE OR REPLACE <object> statements are atomic. That is, when the object is replaced, the old object deletion and the new object creation are processed in a single transaction.