- Kategorien:
TASK_HISTORY¶
Mit dieser Tabellenfunktion kann der Verlauf der Aufgaben-Nutzung innerhalb eines bestimmten Datumsbereichs abgefragt werden. Die Funktion gibt den Verlauf der Aufgabennutzung für Ihr gesamtes Snowflake-Konto oder eine bestimmte Aufgabe zurück.
Bemerkung
Diese Funktion gibt die Aufgabenaktivitäten der letzten 7 Tage oder die nächste geplante Ausführung der nächsten 8 Tage 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 } ] )
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
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.
Wenn der Zeitbereich nicht in den letzten 7 Tagen liegt, wird ein Fehler 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.
Nutzungshinweise¶
Gibt nur Ergebnisse für die Rolle ACCOUNTADMIN oder den Aufgabeneigentümer zurück (d. h. die Rolle mit der Berechtigung OWNERSHIP für die Aufgabe) 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. Abgeschlossene Aufgaben (d. h. mit Status SUCCEEDED, FAILED oder CANCELLED) werden in der Regel früher geplant, sodass sie in der Regel später in der Reihenfolge der Suchergebnisse zurückgegeben 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, insbesondere wenn der RESULT_LIMIT-Wert relativ niedrig ist. Zur Abfrage des Verlaufs von bereits ausgeführten Aufgaben empfiehlt Snowflake eine Kombination der Argumente
SCHEDULED_TIME_RANGE_START => constant_expr
und/oderSCHEDULED_TIME_RANGE_END => constant_expr
.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.
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.
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, EXECUTING, SUCCEEDED, FAILED, FAILED_AND_AUTO_SUSPENDED, CANCELLED oder SKIPPED. SKIPPED gibt an, dass eine Aufgabenausführung begonnen hat, aber der optionale |
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 die Stammaufgabe (in einem DAG von Aufgaben) geplant ist, vorausgesetzt, die aktuelle Ausführung der eigenständigen Aufgabe oder des DAG, 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 in einem DAG. Diese ID stimmt mit dem Wert in der ID-Spalte der SHOW TASKS-Ausgabe derselben Aufgabe überein. |
GRAPH_VERSION |
NUMBER |
Ganzzahl, die die Version des DAG angibt, die ausgeführt wurde oder deren Ausführung geplant ist. Jede inkrementelle Erhöhung des Werts bedeutet, dass eine oder mehrere Änderungen an Aufgaben im DAG 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 DAG ursprünglich ausgeführt werden soll/sollte. Das Format ist die Epochenzeit (in Millisekunden). Die Kombination der Werte ROOT_TASK_ID und RUN_ID identifiziert eine bestimmte Ausführung eines DAG. . 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 aus 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. |
RETURN_VALUE |
TEXT |
Wert, der für die Vorgängeraufgabe in einem DAG festgelegt wurde. Der Rückgabewert wird von der Vorgängeraufgabe durch Aufrufen der Funktion SYSTEM$SET_RETURN_VALUE explizit festgelegt. |
SCHEDULED_FROM |
TEXT |
Mechanismus, der die Ausführung der Aufgabe veranlasst hat: SCHEDULE zeigt an, dass die Aufgabenausführung durch den Zeitplan in der Aufgabendefinition ausgelöst wurde. EXECUTE TASK zeigt an, dass die Aufgabenausführung durch eine EXECUTE TASK-Anweisung ausgelöst wurde. Bei der Ausführung einer untergeordneten Aufgabe eines DAG gibt die Spalte denselben Wert zurück wie bei der Ausführung der Stammaufgabe. |
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, standardmäßig auf 100 begrenzt ist. Um die Anzahl der zurückgegebenen Zeilen zu ändern, müssen Sie den Wert des Arguments RESULT_LIMIT anpassen:
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.