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

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 } ] )
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 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 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.

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 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. 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/oder SCHEDULED_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: 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 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. die Stammaufgabe in einem DAG 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 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.

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

QUERY_HASH_VERSION

NUMBER

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

QUERY_PARAMETERIZED_HASH

TEXT

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

QUERY_PARAMETERIZED_HASH_VERSION

NUMBER

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

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

Reserved for future use. The returned value for all rows is NULL.

1(1,2,3,4)

Diese Spalte ist nur vorhanden, wenn das Verhaltensänderungs-Bundle 2023_06 aktiviert ist. Diese Spalte ist Teil des Abfrage-Hash-Features.

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