CREATE ALERT¶
Erstellt einen neuen Alert im aktuellen Schema.
- Siehe auch:
Syntax¶
CREATE [ OR REPLACE ] ALERT [ IF NOT EXISTS ] <name>
WAREHOUSE = <warehouse_name>
SCHEDULE = '{ <num> MINUTE | USING CRON <expr> <time_zone> }'
IF( EXISTS(
<condition>
))
THEN
<action>
Erforderliche Parameter¶
name
Zeichenfolge, die den Bezeichner (d. h. den Namen) des Alerts angibt. Der Wert muss für das Schema, in dem der Alert erstellt wird, eindeutig sein.
Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B.
"My object"
). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.
WAREHOUSE = warehouse_name
Gibt das virtuelle Warehouse an, das Computeressourcen für das Ausführen dieses Alerts bereitstellt.
SCHEDULE ...
Gibt den Zeitplan für die periodische Auswertung der Alert-Bedingung an.
Sie können den Zeitplan auf eine der folgenden Arten festlegen:
USING CRON expr time_zone
Gibt einen Cron-Ausdruck und eine Zeitzone für die regelmäßige Auswertung der Alert-Bedingung an. Unterstützt eine Teilmenge der Standardsyntax des Cron-Dienstprogramms.
Der Cron-Ausdruck besteht aus folgenden Feldern:
# __________ 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) # | | | | | # | | | | | * * * * *
Folgende Sonderzeichen werden unterstützt:
Sonderzeichen
Beschreibung
*
Platzhalter. Gibt jedes vorkommende Feld an.
L
Steht für „last“ (letzte). Bei Verwendung im Feld Wochentag können Sie Konstrukte wie „den letzten Freitag“ („5L“) eines bestimmten Monats angeben. Im Feld Tag des Monats wird der letzte Tag des Monats angegeben.
/n
Gibt die
n
-te Instanz einer bestimmten Zeiteinheit an. Jeder Zeitanteil wird unabhängig berechnet.Wenn beispielsweise im Monatsfeld
4/3
angegeben ist, ist die Auswertung der Bedingung für April, Juli und Oktober geplant (d. h. alle 3 Monate, beginnend mit dem 4. Monat des Jahres).In den Folgejahren wird derselbe Zeitplan beibehalten. Das heißt, die Bedingung ist nicht für eine Auswertung im Januar (3 Monate nach der Oktober-Ausführung) geplant.
Bemerkung
Der Cron-Ausdruck wird derzeit nur für die angegebene Zeitzone ausgewertet. Das Ändern des TIMEZONE-Parameterwerts für das Konto (oder das Festlegen des Werts auf Benutzer- oder Sitzungsebene) führt nicht zur Änderung der Zeitzone des Alerts.
Der Cron-Ausdruck definiert alle gültigen Zeitpunkte für die Auswertung der Alert-Bedingung. Snowflake versucht, die Bedingung auf Basis dieses Zeitplans auszuwerten. Jede gültige Ausführungszeit wird jedoch übersprungen, wenn eine vorherige Ausführung nicht vor dem Start der nächsten gültigen Ausführung abgeschlossen wurde.
Wenn sowohl ein bestimmter Tag des Monats als auch ein bestimmter Wochentag im Cron-Ausdruck enthalten sind, wird die Aktualisierung an Tagen geplant, die entweder dem Tag des Monats oder dem Wochentag entsprechen. Beispielsweise plant
SCHEDULE = 'USING CRON 0 0 10-20 * TUE,THU UTC'
eine Auswertung um 0:00 Uhr an jedem 10. bis 20. Tag des Monats und auch an jedem Dienstag oder Donnerstag außerhalb dieser Tage.
num MINUTE
Gibt ein Intervall (in Minuten) für die Wartezeit an, die zwischen Auswertungen der Alert-Bedingung eingefügt wird. Akzeptiert nur positive ganze Zahlen.
Unterstützt auch die Syntax
num M
.Zur Vermeidung von Mehrdeutigkeiten wird eine Basisintervallzeit festgelegt, wenn der Alert aktiviert wird (mit ALTER ALERT … RESUME).
Die Basisintervallzeit startet den Intervallzähler ab der aktuellen Uhrzeit. Wenn beispielsweise ein Alert mit dem Wert
10 MINUTE
erstellt wird und der Alert um 9:03 Uhr aktiviert wird, dann wird die Bedingung des Alerts um 9:13 Uhr, 9:23 Uhr usw. ausgewertet. Beachten Sie, dass wir uns nach besten Kräften bemühen, absolute Präzision sicherzustellen, aber nur garantieren, dass die Bedingungen nicht vor ihrem festgelegten Intervall ausgewertet werden (im aktuellen Beispiel könnte es sein, dass die Auswertung erst 9:14 Uhr ausgeführt wird, aber definitiv nicht 9:12 Uhr).Bemerkung
Der maximal unterstützte Wert ist
11520
(8 Tage). Bei Alerts mit einem größerennum MINUTE
-Wert werden die Bedingungen nie ausgewertet.
condition
Die SQL-Anweisung, die die Bedingung für den Alert enthält. Sie können die folgenden Befehle verwenden:
Wenn die Anweisung eine oder mehrere Zeilen zurückgibt, wird die Aktion des Alerts ausgeführt.
action
SQL-Anweisung, die ausgeführt werden soll, wenn die Bedingung eine oder mehrere Zeilen zurückgibt.
Um eine E-Mail-Benachrichtigung zu senden, können Sie die gespeicherte Prozedur SYSTEM$SEND_EMAIL() aufrufen.
Bemerkung
Wenn Sie für die Aktion eines Alerts einen anonymen Snowflake Scripting-Block verwenden, kann die Rückgabe eines Wertes zu einem fehlerhaften Status, einer fehlerhafte Abfrage-ID und Fehlerinformation im Alert-Verlauf führen.
Anforderungen an die Zugriffssteuerung¶
Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:
Berechtigung |
Objekt |
Anmerkungen |
---|---|---|
EXECUTE ALERT |
Konto |
|
CREATE ALERT |
Schema |
|
USAGE |
Warehouse |
Erforderlich für das Warehouse, das für den Alert verwendet wird. |
Beachten Sie, dass für die Bearbeitung eines Objekts in einem Schema auch die Berechtigung USAGE für die übergeordnete Datenbank und das Schema erforderlich ist.
Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.
Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.
Nutzungshinweise¶
Alerts werden mit den Berechtigungen ausgeführt, die dem Eigentümer des Alerts (d. h. der Rolle mit OWNERSHIP-Berechtigung für den Alert) erteilt wurden. Eine Liste der für zum Ausführen von Alerts erforderlichen minimalen Berechtigungen finden Sie unter Erteilen von Berechtigungen zum Erstellen von Alerts.
Um sicherzustellen, dass die Rolle des Eigentümers des Alerts über die erforderlichen Berechtigungen zum Ausführen der SQL-Anweisungen für die Bedingung und die Aktion verfügt, empfehlen wir, die Anweisungen mit der Rolle des Alert-Eigentümers auszuführen, bevor Sie sie ihn in CREATE ALERT angeben.
Wenn Sie einen Alert erstellen, wird dieser standardmäßig auf „Unterbrochen“ gesetzt.
Um den Alert zu aktivieren, müssen Sie ALTER ALERT … RESUME ausführen.
Beispiele¶
Siehe Erstellen eines Alerts.