Kategorien:

Information Schema, Tabellenfunktionen

TASK_HISTORY

Mit dieser Tabellenfunktion können Sie den Nutzungsverlauf von Aufgaben innerhalb eines bestimmten Datumsbereichs abfragen. Die Funktion gibt den Verlauf der Aufgabennutzung für Ihr gesamtes Snowflake-Konto, eine bestimmte Aufgabe oder einen Task-Graphen zurück.

Syntax

TASK_HISTORY(
      [ SCHEDULED_TIME_RANGE_START => <constant_expr> ]
      [, SCHEDULED_TIME_RANGE_END => <constant_expr> ]
      [, RESULT_LIMIT => <integer> ]
      [, TASK_NAME => '<string>' ]
      [, ERROR_ONLY => { TRUE | FALSE } ]
      [, ROOT_TASK_ID => '<string>'] )
Copy

Argumente

Alle Argumente sind optional.

SCHEDULED_TIME_RANGE_START => constant_expr, . SCHEDULED_TIME_RANGE_END => constant_expr

Zeitbereich (im Format TIMESTAMP_LTZ) innerhalb der letzten 7 Tage, in dem die Aufgabenausführung geplant wurde. Wenn der Zeitbereich nicht in den letzten 7 Tagen liegt, wird ein Fehler zurückgegeben.

  • Wenn SCHEDULED_TIME_RANGE_END nicht angegeben ist, gibt die Funktion die Aufgaben zurück, die bereits fertig ausgeführt wurden, aktuell ausgeführt werden oder für die Zukunft geplant sind.

  • Wenn SCHEDULED_TIME_RANGE_END CURRENT_TIMESTAMP ist, gibt die Funktion die Aufgaben zurück, die bereits fertig ausgeführt wurden oder gerade ausgeführt werden. Beachten Sie, dass eine Aufgabe, die unmittelbar vor der aktuellen Zeit ausgeführt wird, möglicherweise noch als geplant identifiziert wird.

  • Um nur die Aufgaben abzufragen, die bereits fertig ausgeführt wurden oder gerade ausgeführt werden, schließen Sie WHERE query_id IS NOT NULL als Filter ein. Die Spalte QUERY_ID in der Ausgabe TASK_HISTORY wird nur ausgefüllt, wenn eine Aufgabe gestartet wurde.

Bemerkung

Wenn keine Start- oder Endzeit angegeben ist, werden die letzten Aufgaben bis zum angegebenen RESULT_LIMIT-Wert zurückgegeben.

RESULT_LIMIT => integer

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

Wenn die Anzahl der übereinstimmenden Zeilen größer ist als dieser Grenzwert, werden die Aufgabenausführungen sortiert nach Zeitstempel (neuester zuerst) bis zum angegebenen Grenzwert zurückgegeben.

Bereich: 1 bis 10000

Standard: 100.

TASK_NAME => string

Eine Zeichenfolge, bei der die Groß-/Kleinschreibung nicht berücksichtigt wird und die eine Aufgabe angibt. Es werden nur nicht qualifizierte Aufgabennamen unterstützt. Es werden nur Ausführungen der angegebenen Aufgabe zurückgegeben. Beachten Sie, dass die Funktion den Verlauf für jede der Aufgaben zurückgibt, wenn mehrere Aufgaben denselben Namen haben.

ERROR_ONLY => TRUE | FALSE

Wenn diese Funktion auf TRUE gesetzt ist, gibt sie nur Aufgabenausführungen zurück, die fehlgeschlagen sind oder abgebrochen wurden.

ROOT_TASK_ID =>string

Eindeutiger Bezeichner der Stammaufgabe eines Task-Graphen. Diese ID stimmt mit dem Wert in der ID-Spalte der SHOW TASKS-Ausgabe derselben Aufgabe überein. Geben Sie ROOT_TASK_ID an, um den Verlauf der Stammaufgabe und aller untergeordneten Aufgaben, die Teil des Task-Graphen sind, anzuzeigen.

Nutzungshinweise

  • Diese Funktion liefert nur Ergebnisse für die Rolle ACCOUNTADMIN, den Aufgabeneigentümer oder eine Rolle mit der globalen Berechtigung MONITOR EXECUTION. Beachten Sie, dass die Werte DATABASE_NAME und SCHEMA_NAME in der Ausgabe NULL sind, sofern eine Rolle mit der Berechtigung MONITOR EXECUTION nicht auch die Berechtigung USAGE für die Datenbank und das Schema hat, in denen die Aufgabe gespeichert ist.

  • Diese Funktion gibt maximal 10.000 Zeilen zurück. Der Wert wird im Argument RESULT_LIMIT festgelegt. Der Standardwert ist 100. Um diese Einschränkung zu umgehen, können Sie die TASK_HISTORY-Ansicht (Account Usage) verwenden.

  • Beachten Sie, dass bei der Abfrage der Funktion TASK_HISTORY die Argumente Aufgabenname, Zeitbereich und Ergebnislimit zuerst angewendet werden und erst danach, falls angegeben, die Klauseln WHERE und LIMIT. Darüber hinaus gibt die Funktion TASK_HISTORY Datensätze in absteigender Reihenfolge gemäß SCHEDULED_TIME-Wert zurück. Aufgaben mit Status SUCCEEDED, FAILED oder CANCELLED werden in der Regel früher geplant, sodass sie in der Regel später in den Suchergebnissen angezeigt werden.

  • In der Praxis, wenn viele Aufgaben in Ihrem Konto ausgeführt werden, könnten die von der Funktion zurückgegebenen Ergebnisse weniger abgeschlossene Aufgaben als erwartet oder nur geplante Aufgaben enthalten. Zur Abfrage des Verlaufs von bereits ausgeführten Aufgaben verwenden Sie eine Kombination der Argumente SCHEDULED_TIME_RANGE_START => constant_expr und SCHEDULED_TIME_RANGE_END => constant_expr.

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

  • Diese Funktion kann alle Ausführungen zurückgeben, die in den letzten 7 Tagen ausgeführt wurden, oder die nächste geplante Ausführung innerhalb der nächsten 8 Tage.

  • Aufgaben, die während eines Ausfalls der Clouddienste ausgeführt werden, können als doppelte Einträge in den Ergebnissen dieser Funktion auftreten. Bei einem Ausfall von Clouddiensten kann Snowflake eine Aufgabe erneut ausführen, wodurch die Aufgabe zwei UUIDs mit unterschiedlichen SCHEDULED_TIME-Aufgaben aufweist. Ansicht TASK_HISTORY zeigt nur die letzte UUID der neu ausgeführten Aufgabe an.

  • Bei allen Aufgaben einer Task-Graph-Ausführung ist die Ausgabe des Aufgabenverlaufs identisch.

Ausgabe

Die Funktion gibt die folgenden Spalten zurück:

Spaltenname

Datentyp

Beschreibung

QUERY_ID

TEXT

ID der SQL-Anweisung, die von der Aufgabe ausgeführt wird. Kann mit der Ansicht QUERY_HISTORY verknüpft werden, um zusätzliche Details zur Ausführung der Anweisung oder gespeicherten Prozedur zu bieten.

NAME

TEXT

Name der Aufgabe.

DATABASE_NAME

TEXT

Name der Datenbank, die die Aufgabe enthält.

SCHEMA_NAME

TEXT

Name des Schemas, das die Aufgabe enthält.

QUERY_TEXT

TEXT

Text der SQL-Anweisung.

CONDITION_TEXT

TEXT

Text der WHEN-Bedingung, die die Aufgabe auswertet, um zu bestimmen, ob sie ausgeführt werden soll.

STATE

TEXT

Status der Aufgabe:

  • SCHEDULED: zur Ausführung vorgesehen.

  • EXECUTING: wird derzeit ausgeführt.

  • SUCCEEDED: Ausführung erfolgreich.

  • FAILED: Ausführung fehlgeschlagen.

  • FAILED_AND_AUTO_SUSPENDED: Die Aufgabe ist fehlgeschlagen und wurde automatisch ausgesetzt.

  • CANCELLED: Ausführung abgebrochen.

  • SKIPPED: Gibt an, dass eine Aufgabenausführung begonnen hat, aber der optionale WHEN-Parameter in der Aufgabendefinition einen FALSE-Wert zurückgegeben hat, sodass das Warehouse nicht fortgesetzt wurde (bei Verwendung von Kunden-verwalteten Computeressourcen) bzw. der SQL-Code in der Aufgabendefinition nicht ausgeführt wurde.

ERROR_CODE

NUMBER

Fehlercode, wenn die Anweisung einen Fehler zurückgegeben hat.

ERROR_MESSAGE

TEXT

Fehlermeldung, wenn die Anweisung einen Fehler zurückgegeben hat.

SCHEDULED_TIME

TIMESTAMP_LTZ

Zeitpunkt, zu dem der Start der Aufgabe geplant ist/war. Beachten Sie, dass wir uns nach besten Kräften um absolute Präzision bemühen, aber nur garantieren, dass Aufgaben nicht vor der geplanten Zeit ausgeführt werden.

QUERY_START_TIME

TIMESTAMP_LTZ

Zeitpunkt, zu dem die Abfrage der Aufgabendefinition gestartet wurde, oder NULL, wenn SCHEDULED_TIME in der Zukunft liegt oder die aktuell geplante Ausführung noch nicht gestartet wurde. Dieser Zeitstempel stimmt mit der Startzeit der von QUERY_HISTORY zurückgegebenen Abfrage überein.

NEXT_SCHEDULED_TIME

TIMESTAMP_LTZ

Zeitpunkt, zu dem die nächste Ausführung der eigenständigen Aufgabe oder der Stammaufgabe (in einem Task-Graphen von Aufgaben) geplant ist, vorausgesetzt, die aktuelle Ausführung der eigenständigen Aufgabe oder des Task-Graphen, die/der zum Zeitpunkt SCHEDULED_TIME gestartet wurde, wird rechtzeitig abgeschlossen.

COMPLETED_TIME

TIMESTAMP_LTZ

Zeitpunkt, zu dem die Aufgabe abgeschlossen wurde, oder NULL, wenn SCHEDULED_TIME in der Zukunft liegt oder sich die Aufgabe noch in Ausführung befindet.

ROOT_TASK_ID

TEXT

Eindeutiger Bezeichner der Stammaufgabe eines Task-Graphen. Diese ID stimmt mit dem Wert in der ID-Spalte der SHOW TASKS-Ausgabe derselben Aufgabe überein.

GRAPH_VERSION

NUMBER

Ganzzahl (Integer), die die Version des Task-Graphen angibt, der ausgeführt wurde oder dessen Ausführung geplant ist. Jede inkrementelle Erhöhung des Werts bedeutet, dass eine oder mehrere Änderungen an Aufgaben im Task-Graphen vorgenommen wurden. Wenn die Stammaufgabe neu erstellt wird (mit CREATE OR REPLACE TASK), wird die Versionsnummer mit 1 neu gestartet.

RUN_ID

NUMBER

Zeitpunkt, zu dem die eigenständige Aufgabe bzw. Stammaufgabe in einem Task-Graphen ursprünglich ausgeführt werden soll/sollte. Das Format ist die Epochenzeit (in Millisekunden). . . Die ursprüngliche geplante Zeit bezieht sich auf seltene Fälle, in denen das System möglicherweise dieselbe Aufgabe neu plant, um sie zu einem anderen Zeitpunkt zu Testzwecken erneut auszuführen, oder die Last neu auszugleichen. In diesem Fall zeigt RUN_ID die ursprünglich geplante Ausführungszeit und SCHEDULED_TIME die neu geplante Ausführungszeit an. . . Beachten Sie, dass RUN_ID möglicherweise kein eindeutiger Bezeichner für die aktuelle Task-Graph-Ausführung vor der Wiederholung ist. Sie können die Spalte GRAPH_RUN_GROUP_ID als Ersatz für RUN_ID verwenden.

RETURN_VALUE

TEXT

Wert, der für die Vorgängeraufgabe in einem Task-Graphen festgelegt wurde. Der Rückgabewert wird von der Vorgängeraufgabe durch Aufrufen der Funktion SYSTEM$SET_RETURN_VALUE explizit festgelegt.

SCHEDULED_FROM

TEXT

Eine der folgenden Optionen:

  • SCHEDULE: Die Aufgabe wurde so geplant, dass sie normal ausgeführt wird, wie für SCHEDULE- oder AFTER-Klauseln von CREATE TASK beschrieben.

  • EXECUTE TASK: Die Aufgabe wurde für die Ausführung mit EXECUTE TASK geplant.

  • MANUAL RETRY: Die Aufgabe wurde für die Ausführung mit EXECUTE TASK … RETRY LAST geplant.

Bei der Ausführung einer untergeordneten Aufgabe eines Task-Graphen gibt die Spalte denselben Wert zurück wie bei der Ausführung der Stammaufgabe.

ATTEMPT_NUMBER

NUMBER

Ganzzahl, die die Anzahl der Versuche angibt, diese Aufgabe auszuführen. Anfänglich eine.

CONFIG

TEXT

Zeigt die Konfiguration der Task-Graph-Ebene an, falls diese für die Stammaufgabe festgelegt wurde, andernfalls wird NULL angezeigt.

QUERY_HASH

TEXT

Der Hash-Wert wird auf der Grundlage des kanonisierten SQL-Textes berechnet.

QUERY_HASH_VERSION

NUMBER

Die Version der Logik, die zur Berechnung von QUERY_HASH verwendet wird.

QUERY_PARAMETERIZED_HASH

TEXT

Der Hash-Wert, der auf Grundlage der parametrisierten Abfrage berechnet wird.

QUERY_PARAMETERIZED_HASH_VERSION

NUMBER

Die Version der Logik, die zur Berechnung von QUERY_PARAMETERIZED_HASH verwendet wird.

GRAPH_RUN_GROUP_ID

NUMBER

Bezeichner für die Task-Graph-Ausführung. Wenn eine Task-Graph-Ausführung aus mehreren Aufgabenausführungen besteht, wird für jede Aufgabenausführung derselbe GRAPH_RUN_GROUP_ID-Wert angezeigt. Die Kombination aus GRAPH_RUN_GROUP_ID und ATTEMPT_NUMBER kann zur eindeutigen Identifizierung einer Task-Graph-Ausführung verwendet werden.

BACKFILL_INFO

OBJECT

Reserviert für zukünftige Verwendung. Der zurückgegebene Wert ist für alle Zeilen NULL.

Beispiele

Abrufen der 100 neuesten (abgeschlossenen, noch ausgeführten oder geplanten) Aufgabenausführungen im Konto. Beachten Sie, dass die maximale Anzahl von Zeilen, die von der Funktion zurückgegeben werden können, standardmäßig auf 100 begrenzt ist.

SELECT *
  FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY())
  ORDER BY SCHEDULED_TIME;
Copy

Abrufen des Ausführungsverlaufs für Aufgaben im Konto innerhalb eines festgelegten Zeitraums von 30 Minuten innerhalb der letzten 7 Tage:

SELECT *
  FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY(
    SCHEDULED_TIME_RANGE_START=>TO_TIMESTAMP_LTZ('2018-11-9 12:00:00.000 -0700'),
    SCHEDULED_TIME_RANGE_END=>TO_TIMESTAMP_LTZ('2018-11-9 12:30:00.000 -0700')));
Copy

Rufen Sie die 10 neuesten (abgeschlossen, noch ausgeführten oder geplanten) Ausführungen einer bestimmten Aufgabe ab, die innerhalb der letzten Stunde geplant wurde:

SELECT *
  FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY(
    SCHEDULED_TIME_RANGE_START=>DATEADD('hour',-1,current_timestamp()),
    RESULT_LIMIT => 10,
    TASK_NAME=>'mytask'));
Copy

Bemerkung

Filtern Sie die Abfrage mit WHERE query_id IS NOT NULL, um nur Aufgaben abzurufen, die abgeschlossen sind oder noch ausgeführt werden. Beachten Sie, dass dieser Filter erst angewendet wird, nachdem RESULT_LIMIT die zurückgegebenen Ergebnisse bereits reduziert hat. Daher kann die Abfrage 9 Aufgaben zurückgeben, wenn 1 Aufgabe geplant war, aber noch nicht gestartet wurde.

Abrufen des Ausführungsverlaufs aller Aufgaben im Task-Graphen der angegebenen Stammaufgabe.

SELECT *
  FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY(ROOT_TASK_ID=>'d4b89013-c942-465c-bcb8-e7037a932b04'));
Copy

Abrufen des Ausführungsverlaufs aller Aufgaben im Task-Graphen der zuletzt abgefragten Stammaufgabe:

DESC TASK my_task
SET task_id=(SELECT "id" FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())));
SELECT *
  FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY(ROOT_TASK_ID=>$task_id));
Copy