Gestion des alertes Snowflake avec Python

Vous pouvez utiliser Python pour gérer les alertes Snowflake, que vous pouvez configurer pour effectuer périodiquement une action dans des conditions spécifiques, en fonction des données de Snowflake. Pour plus d’informations sur les alertes, voir Configuration d’alertes basées sur des données dans Snowflake.

Note

ALTER ALERT n’est actuellement pas pris en charge.

Les Snowflake Python APIs représentent des alertes avec deux types distincts :

  • Alert : expose les propriétés d’une alerte telles que son nom, sa condition, son action et sa planification.

  • AlertResource : expose les méthodes que vous pouvez utiliser pour récupérer un objet Alert correspondant, exécuter l’alerte et supprimer l’alerte.

Conditions préalables

Les exemples de cette rubrique supposent que vous ayez ajouté le code nécessaire pour vous connecter à Snowflake et créer un objet Root à partir duquel utiliser les Snowflake Python APIs.

Par exemple, le code suivant utilise les paramètres de connexion définis dans un fichier de configuration pour créer une connexion à Snowflake.

from snowflake.core import Root
from snowflake.snowpark import Session

session = Session.builder.config("connection_name", "myconnection").create()
root = Root(session)
Copy

En utilisant l’objet Session obtenu, le code crée un objet Root pour utiliser les types et les méthodes de l’API. Pour plus d’informations, voir Connexion à Snowflake avec Snowflake Python APIs.

Création d’une alerte

Pour créer une alerte, créez d’abord un objet Alert, puis créez un objet AlertCollection de l’objet d’API Root. En utilisant AlertCollection.create, ajoutez la nouvelle alerte à Snowflake.

Le code de l’exemple suivant crée un objet Alert qui représente une alerte nommée my_alert dans votre compte :

from snowflake.core.alert import Alert, MinutesSchedule

root.alerts.create(Alert(
    name="my_alert",
    condition="SELECT 1",
    action="SELECT 2",
    schedule=MinutesSchedule(minutes=1),
    comment="test comment"
))
Copy

Ce code crée une variable AlertCollection alerts et utilise AlertCollection.create pour créer une nouvelle alerte dans Snowflake.

Obtention d’informations sur les alertes

Vous pouvez obtenir des informations sur une alerte en appelant la méthode AlertResource.fetch, qui renvoie un objet Alert.

Le code de l’exemple suivant permet d’obtenir des informations sur une alerte appelée my_alert :

my_alert = root.alerts["my_alert"].fetch()
print(my_alert.to_dict())
Copy

Affichage des alertes

Vous pouvez répertorier des alertes à l’aide de la méthode AlertCollection.iter qui renvoie un itérateur PagedIter d’objets Alert.

Le code de l’exemple suivant répertorie les alertes dont le nom commence par my et imprime le nom de chacune. Cet exemple définit également le paramètre facultatif show_limit=5 pour limiter le nombre de résultats à 5 :

alerts_iter = root.alerts.iter(like="my%", show_limit=5)
for alert_obj in alerts_iter:
  print(alert_obj.name)
Copy

Effectuer des opérations d’alerte

Vous pouvez effectuer des opérations d’alerte courantes, telles que l’exécution et la suppression d’alertes, avec un objet AlertResource.

Pour illustrer certaines opérations que vous pouvez effectuer avec une ressource d’alerte, le code de l’exemple suivant effectue les opérations suivantes :

  1. Extrait l’objet de ressource d’alerte my_alert.

  2. Exécute l’alerte.

  3. Annule l’alerte.

my_alert_res = root.alerts["my_alert"]

my_alert_res.execute()
my_alert_res.drop()
Copy