Kategorien:

Information Schema, Tabellenfunktionen

NOTIFICATION_HISTORY

Mit dieser Tabellenfunktion kann der Verlauf der über Snowflake gesendeten Benachrichtigungen abgefragt werden. Zu diesen Benachrichtigungen gehören:

Die zurückgegebenen Zeilen stehen für:

  • Anfragen, die gerade bearbeitet werden

  • Versuche, Benachrichtigungen zu senden, sind fehlgeschlagen.

  • Benachrichtigungen, die erfolgreich versendet wurden

Die Spalte STATUS zeigt an, was jede Zeile darstellt. Siehe Beispiele für Ausgaben der Funktion.

Syntax

NOTIFICATION_HISTORY(
  [ START_TIME => <constant_expr> ]
  [, END_TIME => <constant_expr> ]
  [, INTEGRATION_NAME => '<string>' ]
  [, RESULT_LIMIT => <integer> ] )
Copy

Argumente

Alle Argumente sind optional.

START_TIME=> constant_expr, . END_TIME=> constant_expr

Zeitbereich (im Format TIMESTAMP_LTZ), in dem die Benachrichtigung versandt wird.

  • Wenn START_TIME nicht angegeben wird, beginnt der Bereich 24 Stunden vor END_TIME.

  • Wenn END_TIME nicht angegeben ist, lautet der Standardwert CURRENT_TIMESTAMP.

Der maximale Zeitbereich umfasst 14 Tage.

INTEGRATION_NAME => 'string'

Der vollqualifizierte Name der Integration, die mit der Benachrichtigung verbunden ist. Wenn Sie dieses Argument weglassen, gibt die Funktion alle Benachrichtigungen zurück.

Standard: Eine leere Zeichenfolge.

RESULT_LIMIT => integer

Eine Zahl, die die maximale Anzahl von Zeilen angibt, die von der Funktion zurückgegeben werden.

Bereich: 1 bis 10000

Standard: 100

Ausgabe

Die Funktion gibt die folgenden Spalten zurück:

Spaltenname

Datentyp

Beschreibung

CREATED

TIMESTAMP_LTZ

Zeitstempel, wann die Benachrichtigung erstellt wurde.

PROCESSED

TIMESTAMP_LTZ

Zeitstempel des letzten Versuchs, die Benachrichtigung zu senden.

MESSAGE_SOURCE

VARCHAR

Typ des Objekts oder Features, das die Benachrichtigung generiert hat. Gültige Werte:

INTEGRATION_NAME

VARCHAR

Name der für diese Benachrichtigung verwendeten Integration.

STATUS

VARCHAR

Status der Benachrichtigung. Gültige Werte:

  • QUEUED: Die Anfrage zum Senden der Benachrichtigung wird bearbeitet.

  • SUCCESS: Die Benachrichtigung wurde erfolgreich gesendet.

  • RETRIABLE_FAILURE: Der Versuch, die Benachrichtigung zu senden, ist fehlgeschlagen. Das System wird versuchen, die Benachrichtigung erneut zu senden.

  • FAILURE: Mehrere Versuche, die Benachrichtigung zu senden, sind fehlgeschlagen und es werden keine weiteren Versuche unternommen, die Benachrichtigung zu senden.

ERROR_MESSAGE

VARCHAR

Wenn die Benachrichtigung fehlgeschlagen ist, werden Informationen zu den Gründen für das Fehlschlagen der Benachrichtigung angegeben.

Bemerkung

Bei Webhook-Benachrichtigungen enthält diese Spalte den Body der HTTP-Antwort, der sensible Daten enthalten kann. Bevor Sie diese Daten verwenden, stellen Sie sicher, dass sie bereinigt sind.

ID

VARCHAR

Eindeutige ID einer Anfrage zum Senden einer Benachrichtigung.

Wenn Snowflake eine Benachrichtigung nicht senden kann und erneut versucht, die Benachrichtigung zu senden, gibt die Funktion für jeden Versuch eine Zeile zurück. Jede Zeile für einen Versuch hat den gleichen Wert in der Spalte ID, aber einen anderen Wert in der Spalte ATTEMPT.

ATTEMPT

INTEGER

Anzahl der Versuche, die Benachrichtigung zu senden.

MESSAGE_SOURCE_INFO

OBJECT

Objekt mit Informationen über die Quelle der Benachrichtigung. Die Felder in diesem Objekt hängen vom Typ der Quelle ab:

  • Bei Benachrichtigungen für Budgets enthält das Objekt die folgenden Felder:

    • budget_id: Bezeichner für das Budget.

    • budget_name: Der Name des Budgets.

  • Bei Fehlerbenachrichtigungen zu Aufgaben enthält das Objekt die folgenden Felder:

    • name: Name der Aufgabe.

    • graph_run_group_id: Bezeichner der Task-Graph-Ausführung.

    • attempt_number: Ganzzahl, die die Anzahl der Versuche angibt, diese Aufgabe auszuführen.

  • Bei Fehlerbenachrichtigungen zu Snowpipe enthält das Objekt das Feld pipe_name, das den Namen der Pipe angibt.

  • Bei Benachrichtigungen, die durch den Aufruf der gespeicherten Prozedur SYSTEM$SEND_SNOWFLAKE_NOTIFICATION oder SYSTEM$SEND_EMAIL gesendet werden, enthält das Objekt das Feld query_id, das die ID der Anweisung angibt, die die gespeicherte Prozedur aufgerufen hat.

Nutzungshinweise

  • Gibt Ergebnisse nur für die ACCOUNTADMIN-Rolle, für den Eigentümer der Integration (d. h. die Rolle mit der Berechtigung OWNERSHIP für die Integration) oder für eine Rolle mit der Berechtigung USAGE für die Integration zurück.

  • Beim Aufrufen einer Tabellenfunktion des Information Schema muss die Sitzung über ein aktives INFORMATION_SCHEMA-Schema verfügen oder der Funktionsname muss vollqualifiziert sein. Weitere Details dazu finden Sie unter Snowflake Information Schema.

Beispiele

Die folgenden Abschnitte enthalten Beispiele für den Aufruf der Funktion und Beispiele für die Ausgabe der Funktion:

Beispiele für den Aufruf der Funktion

Die folgenden Beispiele zeigen, wie Sie diese Funktion aufrufen können:

Abrufen der letzten Benachrichtigungen

Abrufen der neuesten Benachrichtigungen, die in den letzten 24 Stunden erstellt wurden.

SELECT * FROM TABLE(INFORMATION_SCHEMA.NOTIFICATION_HISTORY());
Copy

Abrufen von Benachrichtigungen nach Zeit und Integrationsnamen

Abrufen der neuesten Benachrichtigungen, die in der letzten Stunde erstellt und über die Integration mit dem Namen my_integration gesendet wurden.

SELECT * FROM TABLE(INFORMATION_SCHEMA.NOTIFICATION_HISTORY(
  START_TIME=>DATEADD('hour',-1,CURRENT_TIMESTAMP()),
  END_TIME=>CURRENT_TIMESTAMP(),
  RESULT_LIMIT=>100,
  INTEGRATION_NAME=>'my_integration'));
Copy

Beispiele für Ausgaben der Funktion

Die folgenden Beispiele erläutern die Ausgabe, die von dieser Funktion für Benachrichtigungsanfragen in verschiedenen Zuständen zurückgegeben werden:

Beispiel für die Ausgabe, wenn zwei Versuche fehlschlagen und ein dritter Versuch läuft

In diesem Beispiel wird eine Teilmenge der Spalten in der Ausgabe ausgewählt:

SELECT id, attempt, created, processed, status
  FROM TABLE(INFORMATION_SCHEMA.NOTIFICATION_HISTORY());
Copy

Die Ausgabe enthält die Zeilen, die die Versuche darstellen, eine Benachrichtigung zu senden. In der Ausgabe:

  • Die Spalte ID identifiziert die Benachrichtigung, die gesendet wird.

  • Die ersten beiden Versuche, die Benachrichtigung zu senden, sind fehlgeschlagen, aber das System kann versuchen, die Benachrichtigung erneut zu senden (wie durch den Wert RETRIABLE_FAILURE in der Spalte STATUS angezeigt).

  • Es wird ein dritter Versuch unternommen, was durch den Wert QUEUED in der Spalte STATUS angezeigt wird.

+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+
|   ID              |   ATTEMPT   |   CREATED                         |   PROCESSED                       |   STATUS              |
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+
|   10ae695e-93c3   |   3         |   2023-12-05 15:10:15.194 -0800   |   NULL                            |   QUEUED              |
|   10ae695e-93c3   |   2         |   2023-12-05 15:10:15.194 -0800   |   2023-12-05 15:11:21.443 -0800   |   RETRIABLE_FAILURE   |
|   10ae695e-93c3   |   1         |   2023-12-05 15:10:15.194 -0800   |   2023-12-05 15:10:21.443 -0800   |   RETRIABLE_FAILURE   |
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+

Beispiel für die Ausgabe, wenn zwei Versuche fehlschlagen und ein dritter Versuch erfolgreich ist

In diesem Beispiel wird eine Teilmenge der Spalten in der Ausgabe ausgewählt:

SELECT id, attempt, created, processed, status
  FROM TABLE(INFORMATION_SCHEMA.NOTIFICATION_HISTORY());
Copy

Die Ausgabe enthält die Zeilen, die die Versuche darstellen, eine Benachrichtigung zu senden. In der Ausgabe:

  • Die Spalte ID identifiziert die Benachrichtigung, die gesendet wird.

  • Die ersten beiden Versuche, die Benachrichtigung zu senden, sind fehlgeschlagen, aber das System kann versuchen, die Benachrichtigung erneut zu senden (wie durch den Wert RETRIABLE_FAILURE in der Spalte STATUS angezeigt).

  • Ein dritter Versuch war erfolgreich, was durch den Wert SUCCESS in der Spalte STATUS angezeigt wird.

+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+
|   ID              |   ATTEMPT   |   CREATED                         |   PROCESSED                       |   STATUS              |
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+
|   10ae695e-93c3   |   3         |   2023-12-05 15:10:15.194 -0800   |   2023-12-05 15:12:21.443 -0800   |   SUCCESS             |
|   10ae695e-93c3   |   2         |   2023-12-05 15:10:15.194 -0800   |   2023-12-05 15:11:21.443 -0800   |   RETRIABLE_FAILURE   |
|   10ae695e-93c3   |   1         |   2023-12-05 15:10:15.194 -0800   |   2023-12-05 15:10:21.443 -0800   |   RETRIABLE_FAILURE   |
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+