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 objetAlert
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)
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"
))
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())
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)
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 :
Extrait l’objet de ressource d’alerte
my_alert
.Exécute l’alerte.
Annule l’alerte.
my_alert_res = root.alerts["my_alert"]
my_alert_res.execute()
my_alert_res.drop()