EXECUTE TASK

Löst manuell eine asynchrone Einzelausführung einer Aufgabe aus (entweder eine eigenständige Aufgabe oder die Stammaufgabe in einem Task-Graphen), unabhängig von dem für die Aufgabe definierten Zeitplan.

Die erfolgreiche Ausführung einer Stammaufgabe löst eine kaskadierende Ausführung der untergeordneten Aufgaben im Task-Graphen aus, sobald deren vorhergehende Aufgabe abgeschlossen ist, so als ob die Stammaufgabe nach ihrem definierten Zeitplan ausgeführt worden wäre.

Außerdem können Sie manuell das erneute Ausführen einer zuvor fehlgeschlagenen Aufgabe auslösen.

Siehe auch:

CREATE TASK, DROP TASK, SHOW TASKS

Syntax

EXECUTE TASK <name>

EXECUTE TASK <name> RETRY LAST
Copy

Parameter

name

Bezeichner für die auszuführende eigenständige Aufgabe bzw. Stammaufgaben. Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.

RETRY LAST

Führen Sie die letzte fehlgeschlagene Aufgabe des Task-Graphen erneut aus, indem Sie name neu starten, an der die Aufgaben fehlgeschlagen sind.

Um eine Aufgabe erneut auszuführen, müssen die folgenden Bedingungen erfüllt sein:

  • Die letzte Ausführung des Task-Graphen muss sich im Status FAILED oder CANCELED befinden.

  • Der Task-Graph darf seit der letzten Ausführung nicht verändert worden sein.

  • Der Task-Graph muss innerhalb der letzten 14 Tagen ausgeführt oder seine Ausführung muss erneut versucht worden sein.

Sie können den Aufgabenverlauf entweder über die Tabellenfunktion TASK_HISTORY oder über den Snowsight-Aufgabenverlauf einsehen.

Bemerkung

RETRY LAST erstellt eine neue Task-Graph-Ausführung, die mit der Ausführung der letzten fehlgeschlagenen Aufgabe(n) beginnt.

Insbesondere werden alle FAILED- oder CANCELED-Aufgabenausführungen sofort erneut ausgeführt, und die zugehörigen untergeordneten Aufgaben werden geplant, wenn alle ihre Vorgänger erfolgreich ausgeführt wurden.

Außerdem hat die neue Task-Graph-Ausführung, die durch den Wiederholungsversuch erzeugt wird, einen ATTEMPT NUMBER-Wert, der um eins größer ist als bei der vorherigen fehlgeschlagenen Task-Graph-Ausführung, sowie denselben GRAPH_RUN_GROUP_ID-Wert wie die wiederholte oder ursprüngliche Task-Graph-Ausführung.

Nutzungshinweise

  • Die Ausführung einer Aufgabe erfordert entweder die Berechtigung OWNERSHIP oder OPERATE für diese Aufgabe.

    Wenn mit dem EXECUTE TASK-Befehl eine Aufgabenausführung ausgelöst wird, überprüft Snowflake, ob die Rolle mit der Berechtigung OWNERSHIP für die Aufgabe auch die Berechtigung USAGE für das der Aufgabe zugewiesene Warehouse sowie die globale Berechtigung EXECUTE TASK hat. Wenn nicht, wird ein Fehler erzeugt.

    Aufgaben werden immer mit den Berechtigungen der Rolle des ursprünglichen Eigentümers ausgeführt, selbst wenn eine andere Rolle mit der OPERATE-Berechtigung EXECUTE TASK zum Ausführen der Aufgabe verwendet.

  • Mit dem SQL-Befehl kann nur eine eigenständige Aufgabe oder die Stammaufgabe im Task-Graphen ausgeführt werden. Wenn eine untergeordnete Aufgabe eingegeben wird, gibt der Befehl einen Benutzerfehler zurück.

  • Durch die manuelle Ausführung einer eigenständigen oder Stammaufgabe wird eine Version der Aufgabe erstellt. Die eigenständige Aufgabe bzw. der gesamte Task-Graph schließt seine Ausführung mit dieser Version ab. Weitere Informationen zu Aufgabenversionen finden Sie unter Versionieren von Aufgabenausführungen.

  • Eine angehaltene Stammaufgabe wird ohne Fortsetzung der Aufgabe ausgeführt. Es besteht keine Notwendigkeit, vor Ausführung dieses SQL-Befehls die Stammaufgabe explizit fortzusetzen. Allerdings setzt EXECUTE TASK nicht automatisch untergeordnete Aufgaben im Task-Graphen fort. Der Befehl überspringt alle untergeordneten Aufgaben, die angehalten sind.

    Um alle abhängigen Aufgaben, die in einem Task-Graphen an eine Stammaufgabe gebunden sind, rekursiv fortzusetzen, fragen Sie die Funktion SYSTEM$TASK_DEPENDENTS_ENABLE ab, anstatt jede Aufgabe einzeln zu aktivieren (mit ALTER TASK … RESUME).

    Beim Testen neuer oder geänderter Task-Graphen empfiehlt es sich, die Stammaufgabe so einzustellen, dass sie zwar nach dem vorgesehenen Zeitplan der Produktionsumgebung ausgeführt wird, aber im angehaltenen Status belassen wird. Wenn Sie den Task-Graphen erfolgreich getestet haben, setzen Sie die Stammaufgabe fort. Beachten Sie, dass Sie alle zum Testen angehaltenen untergeordneten Aufgaben im Task-Graphen fortsetzen müssen, denn andernfalls werden sie während der Ausführung des Task-Graphen übersprungen.

  • Wenn keine Instanz der Aufgabe läuft, beginnt sofort eine neue Ausführung.

  • Wenn eine andere Instanz geplant ist (d. h. wenn die Aufgabe den Status SCHEDULED in der Ausgabe von TASK_HISTORY anzeigt), ersetzt die angeforderte Ausführung die geplante Ausführung. Die angeforderte Ausführung beginnt sofort, wobei der aktuelle Zeitstempel als geplante Zeit verwendet wird.

  • Wenn sich die Aufgabe oder das Aufgabendiagramm gerade in einer Warteschlange befindet oder ausgeführt wird (d. h. wenn die Aufgabe in der TASK_HISTORY-Ausgabe den Status EXECUTING hat), dann wird die aktuelle Ausführung mit der Aufgabenversion fortgesetzt, die bei der Ausführung des Befehls aktuell war. Eine neue Ausführung wird dann für den Start geplant, und zwar zu einem Zeitpunkt, der vom Aufgabentyp abhängt:

    • Bei eigenständigen Aufgaben wird eine neue Ausführung geplant, nachdem die aktuelle Ausführung abgeschlossen ist.

    • Für Aufgabendiagramme:

      • Wenn ALLOW_OVERLAPPING_EXECUTION = FALSE (Standardeinstellung), wird eine neue Ausführung geplant, die nach Abschluss des aktuellen Aufgabendiagramms beginnt.

      • Wenn ALLOW_OVERLAPPING_EXECUTION = TRUE ist und die aktuell ausgeführte Aufgabe eine Stammaufgabe ist, wird eine neue Ausführung geplant, die nach Beendigung der Stammaufgabe startet.

      • Wenn ALLOW_OVERLAPPING_EXECUTION = TRUE und die aktuell ausgeführte Aufgabe eine untergeordnete Aufgabe ist, beginnt sofort eine neue Ausführung.

    Wenn der Befehl EXECUTE TASK erneut ausgeführt wird, bevor die nächste geplante Ausführung beginnt, ersetzt die angeforderte Ausführung die geplante Ausführung.

  • Wenn eine Aufgabe mit einem unerwarteten Fehler fehlschlägt, können Sie eine Benachrichtigung über den Fehler erhalten. Weitere Informationen zum Konfigurieren von Aufgabenfehlerbenachrichtigungen finden Sie unter Aktivieren von Benachrichtigungen für Aufgaben.

  • Zum Anzeigen der Aufgabeninformationen haben Sie folgende Möglichkeiten:

    • Öffnen Sie Snowsight, und wählen Sie Monitoring » Task History aus.

    • Rufen Sie die Funktion COMPLETE_TASK_GRAPHS auf, und prüfen Sie die Ergebnisse.

Beispiele

Manuelles Auslösen der Ausführung einer Aufgabe namens mytask:

EXECUTE TASK mytask;
Copy