创建按计划运行的作业后,有时需要将数据回填到系统中。 例如:
- 系统中的错误导致数据在一段时间内丢失。 需要为该日期范围回填数据。
- 你想要从系统运行之前引入数据,以便进行历史分析。
数据回填应使用与保持数据最新状态相同的作业自动化。 作业回填允许您使用现有自动化在不同的日期范围内运行作业。
回填的工作原理是什么?
回填会使用不同的参数多次运行作业,以重新生成此前日期范围内的作业运行结果。 若要创建回填,请选择要回填的日期范围以及用于将范围拆分为作业运行的时间间隔。 运行回填时,它会根据所选的日期范围和时间间隔生成运行数。
可以设置回填操作以覆盖传递给每次运行的现有参数,或者增加作业在存在时会使用的新参数。
注释
作业必须处理你提供的参数,以正确地处理回填的日期范围的数据。 这可能需要对作业进行更改。 有关如何创建正确处理日期范围的查询的示例,请参阅教程: 使用 Lakeflow 作业设置具有回填支持的定期查询。
日期范围如何触发作业运行?
回填通常由多个作业运行组成,这些作业在您需要回填的时间段内按照与定期作业相同的时间间隔被安排执行。 通过使用您常规作业的相同时间间隔,可以保持您作业中设置的性能和优化。 将回填拆分为多个运行还可以并行触发这些运行,从而更快地完成回填。
例如,如果在 8 月 9 日和 10 日的每小时处理中出错,则需要生成回填来覆盖那些天错过的数据。 为这两天创建回填,并设置时间间隔为 1 小时。 这会触发最多 48 次运行,一次用于日期范围内的每小时数据。 每次运行都会为它应处理的小时传递参数。
如何并行运行回填任务?
在具有多个时间间隔的日期范围内的回填任务会触发多次运行,在许多情况下可以并行执行。 如何设置并行运行?
作业的最大并发限制。 默认情况下,此设置设置为 1,但可以将其设置为更高。 这在作业设置中,可以在 “高级设置”下访问:
在工作区中,单击
,然后在边栏中选择作业和管道。
单击您想编辑其设置的作业名称。 这将打开作业监控详情页面。
设置显示在右侧面板中。 选择“高级设置”。
在 “高级设置”下,可以通过单击
编辑最大并发运行。
将此设置为大于 1 的数字时,允许多个作业并行运行。 例如,将此设置设置为
2允许两个作业同时运行。
注释
无法并行运行包含管道任务的作业,并显示警告。 请参阅限制。
先决条件
在回填过程中,作业必须支持用于获取正确数据的日期或时间参数。 许多按照常规计划运行的作业已有一个参数,该参数使用一个您可以替代的时间,但您还可以为回填操作设置一个独特的参数。
如何创建回填
通过作业界面创建补充作业。
在工作区中,单击
,然后在边栏中选择作业和管道。
单击您希望为其创建回填的任务名称。 这将打开作业监控详情页面。
单击页面顶部的“ 立即运行 ”旁边的向下箭头(re:[Chevron 向下图标])。
从显示的下拉列表中选择 “运行回填 ”。 这将打开 “运行回填 ”对话框。
选择一个日期和时间范围,用于设置您想要回填的范围。
Azure Databricks 根据触发器或计划为回填选择默认时间间隔。 如果要更改时间间隔,请在 “每个”右侧的下拉列表中选择所需的时间间隔。 例如,若要使用 1 小时时间间隔,请选择时间间隔 的 1 和 小时 。 在对话框底部,该接口包含所选内容生成的新运行数的注释。
如果回填将日期范围拆分为 100 多个运行,则设置后会显示一条警告,并且无法启动回填。 在这种情况下,您必须将 日期和时间范围 更改为多个步骤,每个步骤的运行次数少于 100。 可以通过多个补填来实现这一操作,或者通过增加补填的时间间隔来实现这一操作。
在 “作业参数”下,现有参数以键和值显示。 如果作业的日期范围有一个参数或一组参数,可以通过编辑 “值 ”字段来替代这些参数。 否则,可以通过添加新 的键 和 值来创建新参数。
例如,如果作业采用作业触发器时间作为 iso 日期/时间参数,则可以使用
{{backfill.iso_datetime}}此方法替代该参数。 若要查看可能的值引用列表,请单击要替代的值旁边的 { } 按钮,然后选择要将其插入 到“值 ”字段中的引用。还可以添加不在普通参数列表中的其他参数,这些参数可由自动化选取。 例如,如果要对回填作业使用不同的处理,则可以添加一个
backfill参数并设置为true。(可选)可覆盖任何其他控制作业的参数,以匹配您想要回填的数据。
单击“ 运行 ”以启动回填运行。
回填运行显示在运行列表中,其名称包含文本 Backfill ,以将它们与其他作业运行区分开来。
局限性
回填总是完整运行。 在回填过程中不能运行部分任务或表。
Lakeflow 声明式流水线的特定限制:
- 管道任务未参数化。 管道原样运行。
- 管道任务不能同时运行,因此具有管道任务的作业按顺序运行,而不是并行运行。 当发生这种情况时,会在运行回填对话框中显示一条警告。如果在作业中存在管道任务时,将最大并发运行数设置为大于1,该设置会在设置中进行。
Databricks 建议使用“管道追加一次”功能来回填 Lakeflow 声明性管道。 有关详细信息,请参阅 使用 Lakeflow 声明性管道回填历史数据。
后续步骤
若要查看演示如何创建可由回填作业使用的查询和参数的教程,请参阅 使用 Lakeflow 作业设置具有回填支持的定期查询。