Verwalten von Snowflake-Benachrichtigungen mit Python

Sie können Python verwenden, um Snowflake-Benachrichtigungen zu verwalten, die Sie so einstellen können, dass sie unter bestimmten Bedingungen regelmäßig eine Aktion auf der Grundlage von Daten in Snowflake durchführen. Weitere Informationen zu Benachrichtigungen finden Sie unter Einrichten von Alerts auf Grundlage von Daten in Snowflake.

Bemerkung

ALTER ALERT wird derzeit nicht unterstützt.

Die Snowflake Python APIs stellt Benachrichtigungen mit zwei verschiedenen Typen dar:

  • Alert: Zeigt die Eigenschaften einer Benachrichtigung an, z. B. Name, Bedingung, Aktion und Zeitplan.

  • AlertResource: Stellt Methoden zur Verfügung, mit denen Sie ein entsprechendes Alert-Objekt abrufen, die Benachrichtigung ausführen und die Benachrichtigung löschen können.

Voraussetzungen

Die Beispiele in diesem Thema gehen davon aus, dass Sie Code hinzugefügt haben, um eine Verbindung zu Snowflake herzustellen und ein Root-Objekt zu erstellen, von dem aus Sie die Snowflake Python APIs verwenden können.

Beispielsweise verwendet der folgende Code Verbindungsparameter, die in einer Konfigurationsdatei definiert sind, um eine Verbindung zu Snowflake zu erstellen:

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

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

Unter Verwendung des resultierenden Session-Objekts erstellt der Code ein Root-Objekt, das die Typen und Methoden der API verwendet. Weitere Informationen dazu finden Sie unter Verbinden mit Snowflake mit dem Snowflake Python APIs.

Erstellen eines Alerts

Um eine Benachrichtigung zu erstellen, erstellen Sie zunächst ein Alert-Objekt und dann ein AlertCollection-Objekt aus dem API Root-Objekt. Fügen Sie mit AlertCollection.create die neue Benachrichtigung zu Snowflake hinzu.

Der Code im folgenden Beispiel erstellt ein Alert-Objekt, das eine Benachrichtigung namens my_alert in Ihrem Konto darstellt:

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

Der Code erstellt eine AlertCollection-Variable alerts und verwendet AlertCollection.create, um eine neue Benachrichtigung in Snowflake zu erstellen.

Aufrufen von Benachrichtigungsdetails

Sie können Informationen über eine Benachrichtigung erhalten, indem Sie die AlertResource.fetch-Methode aufrufen, die ein Alert-Objekt zurückgibt.

Der Code im folgenden Beispiel ruft Informationen über eine Benachrichtigung namens my_alert ab:

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

Auflisten von Benachrichtigungen

Sie können Benachrichtigungen mit der AlertCollection.iter-Methode auflisten, die einen PagedIter-Iterator von Alert-Objekten zurückgibt.

Der Code im folgenden Beispiel listet die Benachrichtigungen auf, deren Name mit my beginnt, und gibt dann den Namen jeder einzelnen aus. In diesem Beispiel wird auch der optionale show_limit=5-Parameter eingestellt, um die Anzahl der Ergebnisse auf 5 zu beschränken:

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

Ausführen von Operationen zur Benachrichtigung

Sie können gängige Operationen für Benachrichtigungen, wie z. B. das Ausführen und Löschen von Benachrichtigungen, mit einem AlertResource-Objekt durchführen.

Um einige Operationen zu demonstrieren, die Sie mit einer Ressource für Benachrichtigungen durchführen können, führt der Code im folgenden Beispiel Folgendes aus:

  1. Ruft das my_alert-Benachrichtigungs-Ressourcenobjekt ab.

  2. Führt die Benachrichtigung aus.

  3. Löscht die Benachrichtigung.

my_alert_res = root.alerts["my_alert"]

my_alert_res.execute()
my_alert_res.drop()
Copy