設定任務相依性
[如果相依則執行] 欄位可讓您根據其他任務的成功、失敗或完成,將控制項流程邏輯新增至任務。
相依性會在工作 DAG 中以任務間的線條視覺化表示。
Azure Databricks 會在執行下游任務之前執行上游任務,並盡可能並行執行它們。
注意
[相依於] 僅在工作包含多項任務時可見。
Databricks 也有下列控制項流程和條件化功能:
- If/else 條件任務是用來根據布林運算式的結果來執行工作 DAG 的一部分。
If/else condition
任務可讓您將分支邏輯新增至工作。 例如,只有在上游擷取任務新增資料時,才執行轉換工作。 請參閱在具有 If/else 條件任務的工作中新增分支邏輯。 - For each 條件任務會根據輸入陣列,將循環邏輯新增至另一個任務。 您可手動指定或動態產生輸入陣列。 請參閱在迴圈中執行參數化 Azure Databricks 工作任務。
- [執行工作] 任務可讓您在工作區中觸發另一個工作。 請參閱工作的執行工作任務。
將 Run if 條件新增至任務
如果您在建立新任務時已在 DAG 中選取任務,則新任務預設會對此任務設定相依性。
若要編輯或新增條件,請執行下列作業:
- 選取任務。
- 在 [相依於] 欄位中,按下 [X] 以移除任務,或從下拉式功能表中選取要新增的任務。
- 選取 [如果相依則執行] 欄位中的其中一個條件式選項。
- 按一下 [儲存任務]。
Run if
條件選項
您可將下列 Run if
條件新增至任務:
- 全部成功:所有相依性都已執行並取得成功。 這是預設設定。 如果未滿足條件,任務會標示為
Upstream failed
。 - 至少有一項成功:至少有一個相依性成功。 如果未滿足條件,任務會標示為
Upstream failed
。 - 無失敗:沒有相依性失敗,並且至少執行一個相依性。 如果未滿足條件,任務會標示為
Upstream failed
。 - 全部完成:不論相依性執行的狀態為何,任務都會在其所有相依性執行之後執行。 此條件可讓您定義執行的任務,而無視其相依任務的結果。
- 至少一項失敗:至少一個相依性失敗。 如果未滿足條件,任務會標示為
Excluded
。 - 全部失敗:所有相依性均失敗。 如果未滿足條件,任務會標示為
Excluded
。
注意
- 如果未滿足
Run if
條件,設定為處理失敗的任務會標示為Excluded
。 已排除的任務會被略過,並視為成功。 - 如果排除所有任務相依性,任務也會被排除,不論其
Run if
條件為何。 - 如果您取消任務執行,取消會透過下游任務傳播,並執行具有處理失敗的
Run if
條件的任務,例如,驗證在取消任務執行時是否執行清理任務。
具有任務相依性的範例工作
設定任務相依性會建立任務執行的有向非循環圖 (DAG),這是表示工作排程器中執行順序的常見方式。 例如,請考慮包含四項任務的下列工作:
- 任務 1 是根任務,不相依於任何其他任務。
- 任務 2 和任務 3 取決於首先完成的任務 1。
- 最後,任務 4 取決於後續完成的任務 2 和任務 3。
下圖說明這些任務的處理順序: