配置任务依赖项

你可以通过“Run if 依赖项”字段根据其他任务的成功、失败或完成,将控制流逻辑添加到任务。

依赖项在作业 DAG 中以可视方式表示为任务之间的行。

Azure Databricks 在运行下游任务之前运行上游任务,并且会并行运行尽可能多的这些任务。

注意

“依赖于”仅在作业包含多个任务时可见。

Databricks 还具有以下控制流和条件化功能:

将 Run if 条件添加到任务

如果你在创建新任务时在 DAG 中选择了任务,则默认情况下,新任务对此任务配置了依赖项。

要编辑或添加条件,请执行下列操作:

  1. 选择任务。
  2. 在“依赖于”字段中,单击 X 以删除任务或从下拉菜单中选择要添加的任务。
  3. 在“Run if 依赖项”字段中选择其中一个条件选项。
  4. 单击“保存任务”。

Run if条件选项

可以将以下Run if条件添加到任务:

  • 全部成功:所有依赖项都已运行并成功。 这是默认设置。 如果未满足条件,任务会标记为 Upstream failed
  • 至少一个成功:至少有一个依赖项成功。 如果未满足条件,任务会标记为 Upstream failed
  • 无失败:没有依赖项失败,并且至少运行了一个依赖项。 如果未满足条件,任务会标记为 Upstream failed
  • 全部完成:任务在运行所有依赖项后运行,而不考虑依赖运行的状态。 此条件允许定义运行的任务,而不取决于其依赖任务的结果。
  • 至少一个失败:至少有一个依赖项失败。 如果未满足条件,任务会标记为 Excluded
  • 全部失败:所有依赖项都失败。 如果未满足条件,任务会标记为 Excluded

注意

  • 如果配置为处理故障的任务不满足 Run if 条件,则会标记为 Excluded。 排除的任务会跳过,并被视为成功。
  • 如果排除所有任务依赖项,也会排除该任务,不考虑其Run if条件。
  • 如果取消任务运行,取消会传播到下游任务,并将运行具有处理故障的 Run if 条件的任务,例如在取消任务运行后验证清理任务运行。

具有任务依赖项的示例作业

配置任务依赖关系会创建任务执行的有向无环图 (DAG)。DAG 是在作业计划程序中表示执行顺序的常用方式。 以下面包括四个任务的作业为例:

任务依赖关系示例示意图

  • 任务 1 是根任务,不依赖于任何其他任务。
  • 任务 2 和任务 3 依赖于任务 1 首先完成。
  • 最后,任务 4 依赖于任务 2 和任务 3 成功完成。

以下示意图演示了这些任务的处理顺序:

任务依赖关系示例流程