Konfigurace závislostí úkolů
Pole Spustit, pokud závislosti umožňuje přidat logiku toku řízení do úloh na základě úspěchu, selhání nebo dokončení jiných úkolů.
Závislosti jsou vizuálně reprezentovány v sadě DAG úlohy jako čáry mezi úkoly.
Azure Databricks spouští upstreamové úlohy před spuštěním podřízených úloh, které běží co nejvíce paralelně.
Poznámka:
Závisí na tom, je vidět pouze v případě, že úloha se skládá z více úkolů.
Databricks má také následující funkce pro tok řízení a podmíněnost:
- Úloha podmínky If/else se používá ke spuštění části daG úlohy na základě výsledků logického výrazu. Úkol
If/else condition
umožňuje přidat do úlohy logiku větvení. Například spouštění transformačních úloh pouze v případě, že nadřazená úloha příjmu dat přidá nová data. Viz Přidání logiky větvení do úlohy s úkolem If/else. - Pro každou úlohu podmínky přidá logiku smyčky do jiného úkolu na základě vstupního pole. Vstupní pole je možné zadat ručně nebo dynamicky generovat. Viz Spuštění parametrizované úlohy Azure Databricks ve smyčce.
- Úloha Spustit úlohu umožňuje aktivovat jinou úlohu ve vašem pracovním prostoru. Viz Úloha spuštění úlohy pro úlohy.
Přidání podmínky Run if do úlohy
Pokud máte úkol vybraný ve vaší sadě DAG při vytváření nového úkolu, má nový úkol ve výchozím nastavení nakonfigurovanou závislost na tomto úkolu.
Pokud chcete upravit nebo přidat podmínky, postupujte takto:
- Vyberte úkol.
- V poli Závisí na poli kliknutím na X odeberte úkol nebo vyberte úkoly, které chcete přidat z rozevírací nabídky.
- Vyberte jednu z podmíněných možností v poli Spustit, pokud jsou závislosti .
- Klikněte na Uložit úkol.
Run if
možnosti podmínky
Do úkolu můžete přidat následující Run if
podmínky:
- Všechny úspěšné: Všechny závislosti byly spuštěny a úspěšné. Toto je výchozí nastavení. Úkol se označí jako
Upstream failed
v případě, že podmínka není vyříděná. - Alespoň jeden úspěch: Alespoň jedna závislost byla úspěšná. Úkol se označí jako
Upstream failed
v případě, že podmínka není vyříděná. - Žádné se nezdařilo: Žádné závislosti se nezdařily a spustila se aspoň jedna závislost. Úkol se označí jako
Upstream failed
v případě, že podmínka není vyříděná. - Hotovo: Úloha se spustí po spuštění všech závislostí bez ohledu na stav závislých spuštění. Tato podmínka umožňuje definovat úlohu, která se spouští bez závislosti na výsledku závislých úkolů.
- Nejméně jedna selhala: Nejméně jedna závislost selhala. Úkol se označí jako
Excluded
v případě, že podmínka není vyříděná. - Vše se nezdařilo: Všechny závislosti selhaly. Úkol se označí jako
Excluded
v případě, že podmínka není vyříděná.
Poznámka:
- Úlohy nakonfigurované tak, aby zpracovávaly chyby, se označí jako
Excluded
v případě, že je jejichRun if
podmínka nedostupná. Vyloučené úlohy se přeskočí a považují se za úspěšné. - Pokud jsou vyloučeny všechny závislosti úkolů, je úkol vyloučen i bez ohledu na jeho
Run if
podmínku. - Pokud zrušíte spuštění úlohy, zrušení se rozšíří prostřednictvím podřízených úkolů a úlohy s podmínkou
Run if
, která zpracovává selhání, například k ověření spuštění úlohy čištění při zrušení úkolu.
Ukázková úloha se závislostmi úkolů
Konfigurace závislostí úkolů vytvoří řízený Acyklické graf (DAG) provádění úkolů, což je běžný způsob reprezentace pořadí provádění v plánovačích úloh. Představte si například následující úlohu, která se skládá ze čtyř úkolů:
- Úkol 1 je kořenový úkol a nezávisí na žádném jiném úkolu.
- Úkol 2 a Úkol 3 závisí na prvním dokončení úkolu 1.
- Úkol 4 nakonec závisí na úspěšném dokončení úkolu 2 a úkolu 3.
Následující diagram znázorňuje pořadí zpracování těchto úloh: