Steuern des Aufgabenflusses innerhalb eines Databricks-Auftrags
Einige Aufträge sind einfach eine Liste der Aufgaben, die abgeschlossen werden müssen. Sie können die Ausführungsreihenfolge von Aufgaben steuern, indem Sie Abhängigkeiten zwischen ihnen angeben. Sie können Aufgaben so konfigurieren, dass sie sequenziert oder parallel ausgeführt werden.
Sie können jedoch auch Verzweigungsflüsse erstellen, die bedingte Aufgaben, Fehlerkorrekturen oder Bereinigungen enthalten. Azure Databricks bietet Funktionen zum Steuern des Aufgabenflusses innerhalb eines Auftrags. In den folgenden Themen wird beschrieben, wie Sie den Fluss Ihrer Aufgaben steuern können.
Wiederholungsversuche
Wiederholungen geben an, wie oft eine bestimmte Aufgabe erneut ausgeführt werden soll, wenn die Aufgabe mit einer Fehlermeldung fehlschlägt. Fehler sind häufig vorübergehend und werden durch Neustart behoben. Einige Features in Azure Databricks, z. B. die Schemaentwicklung mit strukturiertem Streaming, gehen davon aus, dass Sie Aufträge mit Wiederholungsversuchen ausführen, um die Umgebung zurückzusetzen und einem Workflow den Vorgang zu ermöglichen.
Wenn Sie Wiederholungsversuche für einen Vorgang angeben, wird die Aufgabe bis zur angegebenen Anzahl von Wiederholungen neu gestartet, wenn ein Fehler auftritt. Nicht alle Aufgabenkonfigurationen unterstützen Wiederholungsversuche von Aufgaben. Weitere Informationen finden Sie unter Festlegen einer Wiederholungsrichtlinie.
Bei der Ausführung im Triggermodus „Kontinuierlich“ führt Databricks automatisch Wiederholungsversuche mit exponentiellem Backoff aus. Siehe Wie werden Fehler für fortlaufende Aufträge behandelt?.
Bedingte Run if-Aufgaben
Sie können den Aufgabentyp Run if verwenden, um Bedingungen für spätere Aufgaben basierend auf dem Ergebnis anderer Aufgaben anzugeben. Sie fügen Ihrem Auftrag Aufgaben hinzu und geben vom Upstream abhängige Vorgänge an. Basierend auf dem Status dieser Aufgaben können Sie eine oder mehrere nachgeschaltete Aufgaben für die Ausführung konfigurieren. Aufträge unterstützen die folgenden Abhängigkeiten:
- Alle erfolgreich
- Mindestens einer hat es geschafft
- Keine fehlerhafte Aufgabe
- Alles erledigt
- Mindestens eine fehlerhafte Aufgabe
- Alle fehlgeschlagen
Siehe Konfigurieren von Vorgangsabhängigkeiten
Bedingte If/else-Aufgaben
Sie können den If/else Aufgabentyp verwenden, um Bedingungen basierend auf einem bestimmten Wert festzulegen. Weitere Informationen finden Sie unter Hinzufügen von Verzweigungslogik zu einem Auftrag mit der If/else-Aufgabe.
Aufträge unterstützen das taskValues
-Element, das Sie in Ihrer Logik definieren. Damit können Sie die Ergebnisse einer Berechnung oder den Status einer Aufgabe an die Auftragsumgebung zurückzugeben. Sie können If/else-Bedingungen für taskValues
, Auftragsparameter oder dynamische Werte definieren.
Azure Databricks unterstützt die folgenden Operanden für Bedingungen:
==
!=
>
>=
<
<=
Siehe auch:
- Verwenden von Vorgangswerten zum Übergeben von Informationen zwischen Vorgängen
- Was ist ein dynamischer Wertverweis?
- Parametrisieren von Aufträgen
For each-Aufgaben
Verwenden Sie die For each
Aufgabe, um eine andere Aufgabe in einer Schleife auszuführen, und übergeben Sie einen anderen Satz von Parametern an jede Iteration der Aufgabe.
Um einem Auftrag eine For each
-Aufgabe hinzuzufügen, müssen Sie eine For each
-Aufgabe und eine geschachtelten Aufgabe definieren. Die geschachtelte Aufgabe ist die Aufgabe, die für jede Iteration der For each
Aufgabe ausgeführt werden soll und eine der standardmäßigen Databricks-Aufgabentypen ist. Mehrere Methoden werden unterstützt, um Parameter an den geschachtelten Vorgang zu übergeben.
Weitere Informationen finden Sie unter Ausführen einer parametrisierten Azure Databricks-Auftragsaufgabe in einer Schleife.