- Kategorien:
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>'] )
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
bis10000
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 ist100
. 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
undSCHEDULED_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:
|
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:
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_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 |
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;
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')));
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'));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, nachdemRESULT_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'));
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));