某些作业只是需要完成的任务列表。 可以通过指定任务之间的依赖关系来控制任务的执行顺序。 可以将任务配置为按顺序或并行运行。
但是,还可以创建包含条件任务、错误更正或清理的分支流。 Lakeflow Jobs 提供功能以控制作业中的任务流。 以下主题介绍了可以控制任务流的方法。
重试
重试指定当任务失败并显示错误消息时,应重新运行特定任务的次数。 错误通常是暂时性的,可通过重启来解决。 Azure Databricks 上的一些功能(如结构化流式处理中的架构演变)假设你通过重试来运行作业,以重置环境并使工作流能够继续进行。
如果为任务指定重试,则任务在遇到错误时最多会重启指定的次数。 并非所有作业配置都支持任务重试。 请参阅设置重试策略。
在连续触发器模式下运行时,Databricks 会按指数退避自动重试。 请参阅如何处理连续作业的故障?。
在满足条件时运行任务
你可以使用“Run if”任务类型基于其他任务的结果为后续任务指定条件。 将任务添加到作业并指定依赖于上游的任务。 根据这些任务的状态,可以配置一个或多个要运行的下游任务。 作业支持以下依赖项:
- 全部成功
- 至少有一个成功了
- 没有一个失败
- 全部完成
- 至少一个失败
- 全都失败了
请参阅 配置任务依赖项
If/else 条件任务
可以使用 If/else 任务类型根据某些值指定条件。 请参阅 使用 If/else 任务向作业添加分支逻辑。
Lakeflow 作业支持您在逻辑中定义的taskValues,并允许您将某个计算或状态的结果从任务返回至作业环境。 可以定义针对 、作业参数或动态值的 If/else 条件。taskValues
Lakeflow 作业支持以下条件表达式的操作数:
==!=>>=<<=
另请参阅:
对于每个任务
使用 For each 任务在循环中运行另一个任务,将一组不同的参数传递给任务的每个迭代。
若要向作业添加 For each 任务,必须定义 For each 任务和 嵌套任务。 嵌套任务是针对 For each 任务的每个迭代运行的任务,是标准 Databricks 任务类型之一。 支持使用多种方法将参数传递给嵌套任务。