DataWorks会为您的周期调度节点自动生成自调度实例,支持 T+1次日生成 、 发布后即时生成 两种实例生成方式,即发布至生产环境后第二天自动调度及发布至生产环境后立即自动调度。本文为您介绍即时生成实例的规则及配置要点。
注意事项
-
周期实例生效情况
调度任务发布至生产环境后,均可在运维中心的 周期任务 界面查看任务的最新依赖情况,但自动调度的 周期实例 何时生效,或依赖关系何时更新,与您选择的实例生成方式有关。
-
变更操作的生效时间
每日全量转实例期间(即
23:30~24:00
),任务的变更操作会在第三天产生的周期实例生效。 -
推荐的使用场景
频繁使用即时生成实例,由于存在实例替换逻辑,会导致当天依赖关系较复杂,依赖关系在第二天会恢复正常。建议仅在需要根据新配置,替换已有自动调度的周期实例时,选择使用该功能。
若您不确定依赖关系是否符合预期,建议先通过 必读:复杂依赖场景调度配置原则与示例 ,提前了解DataWorks对于上下游周期数不同场景的依赖挂载原则,实际配置时,通过 预览依赖 功能,预览依赖关系后再发布。
若选择 T+1次日生成 方式时,需根据最新配置立即执行周期任务,您可对最新状态的周期任务执行补数据(即补业务时间昨天的数据)操作,该操作与当天周期实例执行的行为一致。
-
即时生成实例存在时间差
为避免实例变更导致任务运行异常,发布后即时生成实例存在10分钟的时间差,即任务定时时间在发布时间点十分钟后(即实时转实例生效时间点),任务才会真实执行或根据最新的调度配置重新生成实例并调度。
功能概要
使用 发布后即时生成 方式生成实例时,相关功能场景的实例运行及上下游依赖情况如下。
功能场景 |
相关文档 |
新建任务发布当天会即时生成实例,发布当天生成的实例是否真实执行,与任务的定时时间有关。 |
|
修改已发布任务的调度时间(即定时时间与调度频率),当天实例依赖较复杂。非必要,建议已发布任务不使用 发布后即时生成 实例方式。 |
|
若上下游均为新建任务,但上下游实例的生成方式不一致,可能导致产生 场景:节点孤立 。 |
|
任务发布后即时生成的实例,其下游会按照上游最新的调度配置(天、月、小时)来设置下游依赖。 |
场景一:新建节点发布后选择即时生成实例
新发布至生产环境的任务,实例执行情况与其定时时间有关,如下表。
场景 |
描述 |
任务的定时时间为未来时间 |
DataWorks将根据定时时间生成可执行的周期实例并调度执行。 该策略仅影响任务当天的实例运行情况。实例是否替换,与实例定时时间是否在发布时间点10分钟后有关,详情请参见 注意事项 。 |
任务的定时时间为过去时间 |
DataWorks会生成过期的空跑实例,实例状态为 实时生成的过期实例 ,该实例不会真实执行。 若需执行当天数据,可选择进行补数据操作,补业务时间昨天的数据。该操作生成实例时也会存在10分钟的时间差,详情请参见 注意事项 。 |
示例:假设任务发布至生产环境的时间为
12:00
,则实时转实例生效时间点为
12:10
。
-
若任务的定时时间在
12:10
后,则任务将真实调度执行。 -
若任务的定时时间在
12:10
前,则任务将空跑,其实例状态为 实时生成的过期实例 。
场景二:更新已发布任务的调度周期
更新生产任务的调度时间(即调度频率与定时时间),并将变更操作发布至生产环境,该任务当天周期实例可能会出现变更前与变更后的实例同时存在,因此,会导致任务当天的依赖关系比较复杂。
此场景仅发生在实时转实例任务发布的当天,发布第二天任务会正常根据配置生成周期实例。
具体如下:
-
任务的定时时间为未来时间
DataWorks将根据最新调度配置替换已生成的未来时间段的实例。
-
任务的定时时间为过去时间
DataWorks会保留定时时间之前的实例,替换或删除定时时间之后的实例。
调度时间变更并发布后,当天实例是否会根据新配置重新生成实例并真实执行,取决于任务定时时间的设置,以及最终将变更操作发布至生产环境的时间点。详情请参见 注意事项 。
场景三:上下游任务实例生成方式不一致
若上下游均为新建节点,并且上下游任务的实例生成方式不一致。例如,上游选择 T+1次日生成 ,下游选择 发布后即时生成 ,则会导致产生 场景:节点孤立 。孤立节点不会自动调度运行,如果该孤立节点下游依赖较多,可能会造成较严重的后果。
场景四:变更任务调度时间,对下游依赖关系的影响
下游节点挂载依赖时,会按照上游节点最新的调度配置(天、月、小时依赖)来设置下游依赖。
变更调度时间的生产任务,其下游实例会按照最新的调度配置,为新生成的实例和未替换的旧实例挂载依赖,小时、分钟各场景依赖情况,详情请参见 必读:复杂依赖场景调度配置原则与示例 。待发布的节点版本,其实例生成方式为 发布后即时生成 ,且存在调度时间变更时,才会出现该场景。
示例场景如下:
-
场景一:上游节点从每6小时调度一次,变更为每8小时调度一次,并且选择即时生成实例。
-
场景二:上游节点从每6小时调度一次,变更为每日16点调度一次,并且选择即时生成实例。