Konfigurieren von Anordnungsbeziehungen
Mit dem Feld Ausführen, wenn Abhängigkeiten können Sie Aufgaben Kontrollfluss-Logik basierend auf dem Erfolg, Fehlern oder Abschluss anderer Aufgaben hinzufügen.
Abhängigkeiten werden in der Job-DAG visuell als Linien zwischen Aufgaben dargestellt.
Azure Databricks führt vorgelagerte Aufgaben aus, bevor nachgelagerte Aufgaben ausgeführt werden. Dabei werden so viele Aufgaben wie möglich parallel ausgeführt.
Hinweis
Abhängig von wird nur angezeigt, wenn der Job aus mehreren Aufgabe besteht.
Databricks verfügt außerdem über die folgenden Funktionen für den Kontrollfluss und die Bedingungsverwaltung:
- Die Aufgabe If/else-Bedingung wird verwendet, um einen Teil eines Auftrags-DAG basierend auf den Ergebnissen eines booleschen Ausdrucks auszuführen. Mit der
If/else condition
-Aufgabe können Sie Ihrem Auftrag Verzweigungslogik hinzufügen. Führen Sie beispielsweise Transformationsaufgaben nur aus, wenn der Upstream-Erfassungsvorgang neue Daten hinzufügt. Weitere Informationen finden Sie unter Hinzufügen von Verzweigungslogik zu einem Job mit der If/Else-Aufgabe. - Die Aufgabe Für jede-Bedingung fügt einer anderen Aufgabe basierend auf einem Eingabematrix Loop-Logik hinzu. Eine Eingabematrix kann manuell oder dynamisch generiert werden. Siehe Ausführen einer parametrisierten Azure Databricks-Auftragsaufgabe in einer Schleife.
- Mit der Aufgabe Job ausführen können Sie einen anderen Job in Ihrem Arbeitsbereich auslösen. Siehe Job-Aufgabe für Jobs ausführen.
Hinzufügen einer „Ausführen wenn“-Bedingung zu einer Aufgabe
Wenn Sie beim Erstellen einer neuen Aufgabe eine Aufgabe in Ihrer DAG ausgewählt haben, ist die neue Aufgabe standardmäßig von dieser Aufgabe abhängig.
Um Bedingungen zu bearbeiten oder hinzuzufügen, gehen Sie wie folgt vor:
- Wählen Sie eine Aufgabe aus.
- Klicken Sie im Feld Abhängig vom Feld auf das X, um eine Aufgabe zu entfernen oder Aufgaben auszuwählen, die aus dem Dropdown-Menü hinzugefügt werden sollen.
- Wählen Sie eine der bedingten Optionen im Feld Ausführen, wenn Abhängigkeiten aus.
- Klicken Sie auf Aufgabe speichern.
Optionen für Run if
-Bedingung
Sie können einer Aufgabe die folgenden Run if
-Bedingungen hinzufügen:
- Alle erfolgreich: Alle Abhängigkeiten wurden ausgeführt und waren erfolgreich. Dies ist die Standardeinstellung. Die Aufgabe wird als
Upstream failed
gekennzeichnet, wenn die Bedingung nicht erfüllt ist. - Mindestens eine erfolgreich: Mindestens eine Abhängigkeit war erfolgreich. Die Aufgabe wird als
Upstream failed
gekennzeichnet, wenn die Bedingung nicht erfüllt ist. - Keine fehlgeschlagen: Keine der Abhängigkeiten ist fehlgeschlagen, und es wurde mindestens eine Abhängigkeit ausgeführt. Die Aufgabe wird als
Upstream failed
gekennzeichnet, wenn die Bedingung nicht erfüllt ist. - Alles erledigt: Die Aufgabe wird ausgeführt, nachdem alle Abhängigkeiten ausgeführt wurden, unabhängig vom Status der abhängigen Ausführungen. Mit dieser Bedingung können Sie eine Aufgabe definieren, die unabhängig vom Ergebnis ihrer abhängigen Aufgaben ausgeführt wird.
- Mindestens eine fehlgeschlagen: Mindestens eine Abhängigkeit ist fehlgeschlagen. Die Aufgabe wird als
Excluded
gekennzeichnet, wenn die Bedingung nicht erfüllt ist. - Alle fehlgeschlagen: Alle Abhängigkeiten sind fehlgeschlagen. Die Aufgabe wird als
Excluded
gekennzeichnet, wenn die Bedingung nicht erfüllt ist.
Hinweis
- Aufgaben, die für die Behandlung von Fehlern konfiguriert sind, werden als
Excluded
gekennzeichnet, wenn ihreRun if
-Bedingung nicht erfüllt ist. Ausgeschlossene Aufgaben werden übersprungen und als erfolgreich behandelt. - Wenn alle Aufgabenabhängigkeiten ausgeschlossen werden, wird auch die Aufgabe ausgeschlossen, unabhängig von ihrer
Run if
-Bedingung. - Wenn Sie eine Aufgabenausführung abbrechen, wird der Abbruch über Downstreamaufgaben weitergegeben, und Aufgaben mit einer
Run if
-Bedingung, die Fehler behandelt, werden ausgeführt, um beispielweise sicherzustellen, dass eine Bereinigungsaufgabe ausgeführt wird, wenn eine Aufgabenausführung abgebrochen wird.
Beispiel-Job mit Anordnungsbeziehungen
Durch das Konfigurieren von Aufgabenabhängigkeiten wird ein gerichteter azyklischer Graph (DAG) der Aufgabenausführung erstellt, eine gängige Methode zur Darstellung der Ausführungsreihenfolge in Auftragsplanern. Nehmen wir zum Beispiel den folgenden Auftrag, der aus vier Aufgaben besteht:
- Aufgabe1 ist die Stammaufgabe und hängt von keiner anderen Aufgabe ab.
- Aufgabe 2 und Aufgabe 3 hängen davon ab, dass zunächst Aufgabe 1 abgeschlossen wird.
- Aufgabe 4 schließlich hängt davon ab, dass Aufgabe 2 und Aufgabe 3 erfolgreich abgeschlossen werden.
Das folgende Diagramm veranschaulicht die Reihenfolge der Verarbeitung für diese Aufgaben: