周期任务补数据功能用于对周期任务在指定的历史业务日期内进行数据回刷。周期任务开发完成并提交发布后,任务会按照调度配置定时运行,如果您希望在指定时间段运行周期任务或回刷历史一段时间区间的数据,可以使用补数据功能。节点使用的调度参数会根据补数据选择的业务时间自动替换成对应的值。本文为您介绍如何对周期任务进行补数据。
应用场景
补数据功能多用于以下应用场景:
新开发的周期任务,只能从第二天开始调度。如果您需要马上查看历史分区数据,可以执行补数据操作。
上游依赖的任务重跑或补数据导致历史分区数据刷新。您可以通过补数据功能,回刷下游任务的历史分区数据。
业务的历史数据存在遗漏,需要定时回刷历史数据。
补数据模式
当前,运维中心补数据功能支持对当前任务和对当前任务及下游任务进行补数据,详细说明如下:
补当前任务:即当前任务,用于对当前任务进行补数据操作。适用于以下场景:
对当前节点进行数据回刷,而无需更新下游节点数据。
当前任务计算逻辑变更,您可以先对当前任务进行补数据验证计算逻辑正确性,再对下游任务进行数据回刷。
补当前及下游任务:即当前任务及下游任务,适用于对全链路数据进行刷新的场景。
补数据操作入口
在Dataphin首页,单击顶部菜单栏的研发->任务运维。
按照以下操作指引,选择相应的补数据模式,对周期任务进行补数据。
选择项目(Dev-Prod 模式需要选择环境)->单击周期任务->选择补数据任务并单击图标->单击补数据。
说明补数据操作也支持在周期任务的DAG图中进行补数据。更多信息,请参见周期任务DAG图。
对当前任务补数据
在补数据 - 补当前任务对话框,配置补数据任务。
步骤一:补数据配置。
参数
说明
基本信息
补数据实例名称
系统自动生成,命名格式为节点名称_运行日期_实例化编号,您也可以进行手动更改。
运行时间
支持立即运行或自定义运行。
立即运行:完成配置后,立即生成补数据实例进行补数据任务。
自定义:自定义指定补数据实例运行时间点,补数据实例将在自定义的时间开始调度。
说明自定义运行时间需晚于当前时间。
完成自定义运行时间配置后,业务日期最晚可选择至自定义日期的当天。
周期性定时执行的补数据任务将在定时运行时间的前一天23点生成待生成实例。
业务日期
选择需要进行补数据的业务日期区间,根据任务的调度周期配置业务日期,详细说明如下:
调度周期为日、周、月的任务可以选择按区间、按周期和自定义业务日期。各选项适用场景说明如下:
按区间:适用于需要回刷多个连续业务日期的数据。
说明如果您只需要对单天进行补数据,则开始时间和结束时间选择相同日期即可。
按周期:用于需要回刷多个连续业务日期内每周中星期或每月中的日期数据。
每周:回刷连续时间内每周所选中的星期。
每月:回刷连续时间内每月所选中的日期。
说明月末指每月的最后1天。
自定义:适用于需要回刷多个不连续业务日期的数据。您可以手动输入业务日期,业务日期的格式为
YYYY-MM-DD
。如果需要回刷多个业务日期的数据,则多个业务日期使用回车分割。
调度周期为小时、分钟的任务需要您先选择业务日期,再选择精确到分钟的补数据时间区间,定义了补数据的业务日期及时间区间。
选择字段
如果您为明细及汇总表任务补数据,则需要选择补数据的字段。
详细说明如下:
如果主键或来源表变更,为了保障数据的一致性和正确性,仅支持选择全表补数据模式。
如果主键或来源表未发生变更,您可以选择全表补数据模式或指定字段补数据模式:
全表:适用于数据表的所有字段都需要补数据的场景。
说明不包括注册上挂字段。
指定字段:适用于需要自定义补数据的字段的场景。选中补数据字段后,与所选字段在同一物化节点内的字段及由于系统实现必选的字段将会自动连带选中。规则如下:
与所选字段在同一物化节点内的字段。
由于系统实现必选的字段,如修改指标调度周期模型刷新但物化未改变的情况等。
其他配置
单实例补数据
仅支持事实逻辑表进行选择。
可通过一个补数据实例同时覆盖更新本事件事实逻辑表所有选定日期(区间范围内)的数据,相比普通多实例并发补数据,可以节约计算资源,大幅减少补数据时间。
并发运行组数
并发运行组数用于控制同时有多少个补数据进程在运行。您可以选择并发运行的组数,系统支持最少并发运行1组,最多并发运行12组。
业务日期的跨度时间小于并发运行组数,则实际并行组数为业务日期天数。
业务日期的跨度时间大于并发运行组数,则可能兼有串行和并行。相同组内的实例按业务日期顺序运行,不同组之间的实例并行运行。例如,业务日期是1月11日~1月13日,并发运行组数为2,11号和12号为一组,13号为一组,11号和13号的实例同时开始运行,12号的实例则会在11号的实例运行完成后开始运行。
说明所选节点中存在跨周期依赖时不支持并发运行。
补数据顺序
可选择根据业务时间正序或倒序进行补数据。
说明所选节点中存在跨周期依赖、自依赖时不支持业务日期倒序补数据。
暂停调度任务对应实例
配置暂停调度的任务生成的补数据实例的运行状态:
暂停运行(可能会阻断补数据进程):即暂停调度的任务生成的补数据实例均暂停运行,会阻断下游实例正常运行。
说明适用于当前任务及其下游任务均不需要运行的场景。
空跑:若选择空跑,则选中的暂停任务生成的补数据实例将直接空跑成功。
说明适用于当前任务无需运行,但下游任务需要按照调度配置正常运行的场景。
正常运行:暂停状态的任务生成的补数据实例均正常运行。
说明适用于当前节点被设置为暂停调度,在选中的补数据业务日期需要正常运行的场景。
空跑调度任务对应实例
配置空跑调度的任务生成的补数据实例的运行状态:
空跑:若选择空跑,则选中的空跑调度任务生成的补数据实例将直接空跑成功。
正常运行:空跑状态的任务生成的补数据实例均正常运行。
指定临时调度资源组
可指定本次补数据操作临时使用的资源组,以满足临时性的资源消耗需求。详情请参见自定义调度资源组概述。 如果未指定临时调度资源组,将使用每个任务配置的任务调度资源组进行调度运行。
说明配置的资源组仅支持选择应用场景包含批量运维操作的资源组。
补当前任务(明细及汇总表任务)不支持该配置。
步骤二:选择推荐字段。
明细及汇总表任务的指定字段存在可连带字段时,您可以在选择推荐字段步骤中选择可选连带补数据字段一起补数据。推荐连带原因包括计算逻辑有变更、计算逻辑有变更的主表主键、主表主键有变更的子表主键。
计算逻辑有变更的字段:字段目前的计算逻辑与所选的业务日期内的历史分区的计算逻辑不同,即字段的计算逻辑存在变更,此类字段可以一起补数据。
计算逻辑有变更的主表主键:所选业务日期范围内主子维度表中主表的主键计算逻辑有过变更,主表的主键字段可以一起补数据。
主表主键有变更的子表主键:所选业务日期范围哪该主子维度表中主表的主键计算逻辑有过变更(影响子表产出),子表的主键字段可以一起补数据。
单击确定,完成对当前任务补数据操作。
对当前及下游任务补数据
在补数据 - 补当前任务对话框,配置补数据任务。
步骤一:基本信息配置。
参数
说明
补数据实例名称
系统自动生成,命名格式为节点名称_运行日期_实例化编号,您也可以进行手动更改。
运行时间
支持立即运行或自定义运行。
立即运行:完成配置后,立即生成补数据实例进行补数据任务。
自定义:自定义指定补数据实例运行时间点,补数据实例将在自定义的时间开始调度。
说明自定义运行时间需晚于当前时间。
完成自定义运行时间配置后,业务日期最晚可选择至自定义日期的当天。
周期性定时执行的补数据任务将在定时运行时间的前一天23点生成待生成实例。
业务日期
选择需要进行补数据的业务日期区间,根据任务的调度周期配置业务日期,详细说明如下:
调度周期为日、周、月的任务可以选择按区间、按周期和自定义业务日期。各选项适用场景说明如下:
按区间:适用于需要回刷多个连续业务日期的数据。
说明如果您只需要对单天进行补数据,则开始时间和结束时间选择相同日期即可。
按周期:用于需要回刷多个连续业务日期内每周中星期或每月中的日期数据。
每周:回刷连续时间内每周所选中的星期。
每月:回刷连续时间内每月所选中的日期。
说明月末指每月的最后1天。
自定义:适用于需要回刷多个不连续业务日期的数据。您可以手动输入业务日期,业务日期的格式为
YYYY-MM-DD
。如果需要回刷多个业务日期的数据,则多个业务日期使用回车分割。
调度周期为小时、分钟的任务需要您先选择业务日期,再选择精确到分钟的补数据时间区间,定义了补数据的业务日期及时间区间。
选择字段
如果您为明细及汇总表任务补数据,则需要选择补数据的字段。
详细说明如下:
如果主键或来源表变更,为了保障数据一致性和正确性,仅支持选择全表补数据模式。
如果主键或来源表未发生变更,您可以选择全表补数据模式或指定字段补数据模式:
全表:适用于数据表的所有字段都需要补数据的场景。
指定字段:适用于需要自定义补数据的字段的场景。选中补数据字段后,与所选字段在同一物化节点内的字段及由于系统实现必选的字段将会自动连带选中。规则如下:
与所选字段在同一物化节点内的字段。
由于系统实现必选的字段,如修改指标调度周期模型刷新但物化未改变的情况等。
步骤二:选择推荐字段。
明细及汇总表任务的指定字段存在可连带字段时,您可以在选择推荐字段步骤中选择可选连带补数据字段一起补数据。推荐连带原因包括计算逻辑有变更、计算逻辑有变更的主表主键、主表主键有变更的子表主键。
计算逻辑有变更的字段:字段目前的计算逻辑与所选的业务日期内的历史分区的计算逻辑不同,即字段的计算逻辑存在变更,此类字段可以一起补数据。
计算逻辑有变更的主表主键:所选业务日期范围内主子维度表中主表的主键计算逻辑有过变更,主表的主键字段可以一起补数据。
主表主键有变更的子表主键:所选业务日期范围哪该主子维度表中主表的主键计算逻辑有过变更(影响子表产出),子表的主键字段可以一起补数据。
补数据配置。
参数
说明
补数据范围
下游任务选择
支持通过列表模式和海量模式选择需要补数据的下游任务:
重要跨节点参数相关说明:勾选节点时,建议同时勾选该节点引用了跨节点参数的所有上游节点。下游(Down)节点引用了上游(Up)节点的跨节点输出参数,对下游(Down)节点做补数据操作时,如果未勾选到上游(Up)同一个补数据实例,下游(Down)节点中跨节点输入参数将从上游(Up)的最近N天运行记录中取值,若不存在运行记录或超出N天,则取缺省值。最近N天(N)默认为15天,可能存在更改,建议同时勾选上游(Up)和下游(Down)。更多信息,请参见配置离线任务运行参数。
列表模式:适用于所有层级的下游任务,且任务依赖可快捷选择1~10层以及全部层级。列表内最多可展示2000个节点,如超出上限请选择海量模式。同时单击列表图标支持根据节点类型、所属项目、运维负责人筛选节点。
说明若起点任务是逻辑表,下游任务展示范围取决于选中需要补数据的逻辑表字段。
下游任务展示范围包含当前表所选字段的所有下游,包括连带必选字段,不包括连带推荐字段。
过滤暂停任务及其下游:
默认勾选,选中后,列表不展示指定层级和筛选条件下,调度方式为暂停调度的节点及其全部下游,同时取消已勾选的暂停任务。
对于逻辑表,只要包含了暂停的字段即被过滤;依赖下游列表中被标识了暂停的逻辑表包含的所有字段的下游任务也均被过滤。
说明下游逻辑表字段只能整体选中补数据,不能只过滤掉暂停的字段。
海量模式:如果列表模式无法满足您对下游节点选择的要求(例如节点数量过多,或者需要批量选择某些制定节点),您可以选择海量模式,海量模式将按照筛选条件从当前节点向下查找选中范围内的任务,并依据依赖关系进行编排。适用于需要全局补数据的场景。同时海量模式支持以下筛选参数:
覆盖范围:支持通过指定项目、指定节点输出名称、当前节点的全部下游、指定一级子节点及其全部下游、指定终点、指定节点名称来指定范围。
指定项目:通过指定项目来指定补数据范围。
指定节点输出名称:通过填写节点输出名称来指定补数据范围。输入多个时,需以回车换行。最多输入1000个。
当前节点的全部下游:补当前节点的全部下游节点数据。
指定一级子节点及全部下游:补当前节点的若干个一级子节点及其全部下游节点。
指定终点:将补起点到终点链路上所有的节点数据。起点默认为当前节点,不支持修改。终点支持选择多个终点节点。
指定节点名称:补当前节点下游指定节点名称的数据。多个节点以回车换行,最多输入5000个字符。一个节点名称存在多个任务时,您可以单击提示信息的选择补数据节点,在存在节点名称重复的节点对话框中,选择对应节点,进行二次确认需要补数据的节点。
说明如果所选的终点节点非起点的下游节点,则只对起点和终点两个孤立节点进行补数据。
逻辑表任务终点只支持选择到全表(全部字段)。
选中范围内排除:指定需要在覆盖范围内排除的节点输出名称或节点名称。默认选中排除暂停节点及其下游,同列表模式中过滤暂停节点及其下游。
说明在选中范围内排除某些任务后,补数据实例的DAG图上可能产生孤立的任务节点。
适用于只对下游某一个任务节点进行补数据的场景。
已选节点列表:海量模式下。支持查看已选的节点列表以确认补数据节点或单击导出已选节点列表导出为本地文件,文件格式为
csv
。
其他配置
并发运行组数
并发运行组数用于控制同时有多少个补数据进程在运行。您可以选择并发运行的组数,系统支持最少并发运行1组,最多并发运行12组。
业务日期的跨度时间小于并发运行组数,则实际并行组数为业务日期天数。
业务日期的跨度时间大于并发运行组数,则可能兼有串行和并行。相同组内的实例按业务日期顺序运行,不同组之间的实例并行运行。例如,业务日期是1月11日~1月13日,并发运行组数为2,11号和12号为一组,13号为一组,11号和13号的实例同时开始运行,12号的实例则会在11号的实例运行完成后开始运行。
说明所选节点中存在跨周期依赖时不支持并发运行。
补数据顺序
可选择根据业务时间正序或倒序进行补数据。
说明所选节点中存在跨周期依赖时不支持按业务日期倒序补数。
本节点是否空跑
选择本任务是否需要空跑:
是:当前任务对应的补数据实例空跑运行,即一调度到该任务便直接返回成功,没有真正的执行该任务。
说明适用于当前节点不需要补数据,但是需要以当前节点为起点选中下游进行补数据的场景。
否:本节点正常运行。
暂停调度任务对应实例
配置暂停调度的任务生成的补数据实例的运行状态:
暂停运行(可能会阻断补数据进程):即暂停调度的任务生成的补数据实例均暂停运行,会阻断下游实例正常运行。
说明适用于当前任务及其下游任务均不需要运行的场景。
空跑:若选择空跑,则选中的暂停任务生成的补数据实例将直接空跑成功。
说明适用于当前任务无需运行,但下游任务需要按照调度配置正常运行的场景。
正常运行:暂停状态的任务生成的补数据实例均正常运行。
说明适用于当前节点被设置为暂停调度,在选中的补数据业务日期需要正常运行的场景。
空跑调度任务对应实例
配置空跑调度的任务生成的补数据实例的运行状态:
空跑:若选择空跑,则选中的空跑调度任务生成的补数据实例将直接空跑成功。
正常运行:空跑状态的任务生成的补数据实例均正常运行。
小时区间影响范围
如果是小时、分钟任务,则还需要配置生效范围:
不影响日/周/月调度任务(选中即运行):即下游任务不受小时区间选择的影响,全部运行。
日/周/月调度任务只有定时运行时间在选中小时区间内才会运行:即下游任务受小时区间影响,只有定时运行时间在选中小时区间内才运行。
指定临时调度资源组
可指定本次补数据操作临时使用的资源组,以满足临时性的资源消耗需求。详情请参见自定义调度资源组概述。 如果未指定临时调度资源组,将使用每个任务配置的任务调度资源组进行调度运行。
说明配置的资源组仅支持选择应用场景包含批量运维操作的资源组。
单击确定,完成对当前及下游任务补数据操作。
后续步骤
补数据操作提交后,您可以对补数据实例进行运维管理,例如查看运行日志、查看节点代码、终止实例运行等操作。更多信息,请参见补数据实例运维概述。