Kategorien:

Information Schema, Tabellenfunktionen

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

Die Funktion gibt Aufgabenaktivitäten in den letzten 7 Tagen zurück.

Syntax

TASK_HISTORY(
      [ SCHEDULED_TIME_RANGE_START => <constant_expr> ]
      [, SCHEDULED_TIME_RANGE_END => <constant_expr> ]
      [, RESULT_LIMIT => <integer> ]
      [, TASK_NAME => '<string>' ] )

Argumente

Alle Argumente sind optional.

SCHEDULED_TIME_RANGE_START => Konstantenausdruck, . SCHEDULED_TIME_RANGE_END => Konstantenausdruck

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 => Ganzzahl

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 => Zeichenfolge

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.

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.

  • 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 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 oder CANCELLED.

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 ausgeführt 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 Aufgabenstrukturbaum) geplant ist, vorausgesetzt, die aktuelle Ausführung der eigenständigen Aufgabe oder des Aufgabenstrukturbaums, 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 Aufgabenstrukturbaums. Dieses ID entspricht dem Wert in der ID-Spalte der SHOW TASKS-Ausgabe derselben Aufgabe.

GRAPH_VERSION

NUMBER

Ganzzahl, die die Version des Aufgabenstrukturbaums 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 Strukturbaum 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 oder Stammaufgabe in einem Aufgabenstrukturbaum 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 Aufgabenstrukturbaums. . 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 Aufgabenstrukturbaum festgelegt wurde. Der Rückgabewert wird von der Vorgängeraufgabe durch Aufrufen der Funktion SYSTEM$SET_RETURN_VALUE explizit festgelegt.

Beispiele

Abrufen der 100 neuesten (abgeschlossenen, noch ausgeführten oder geplanten) Aufgabenausführungen im Konto:

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, 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.