时间属性用于定义节点在生产环境的周期调度方式。您可通过调度配置的时间属性,配置节点生成周期实例的方式,实例调度周期与执行时间,是否支持重跑,任务执行超过多长时间自动退出等。本文为您介绍如何配置节点调度的时间属性。
配置指引
您需进入数据开发节点的编辑页面,单击右侧导航栏的调度配置,配置节点的时间属性。
您可在调度配置中定义单个任务调度属性,也可通过批量操作功能批量修改任务调度属性。例如,批量修改任务调度时间,批量修改任务使用的调度资源组等。
时间属性包含的配置类别如下表。
类别 | 描述 |
用于定义节点在生产环境生成实例的时间。 | |
用于定义节点在生产环境的运行方式。 | |
用于定义任务调度日期及调度方式。 | |
用于定义节点在生产环境中的运行频率(生成周期实例个数及实例运行的时间)。 | |
用于定义节点运行超过多长时间会失败退出。 | |
用于定义节点生成的实例是否可以重跑,即从数据幂等性考虑,任务是否可以重跑,或者在什么情况下可以重跑。 | |
用于定义节点正常自动调度运行的时间范围,该时间范围外,节点将不再自动调度。 |
使用说明
调度任务的时间属性配置,仅定义任务预期执行时间,其实际是否执行与实际执行时间受多方因素影响,包括但不限于以下场景:
调度开关控制
仅当DataWorks工作空间开启启用调度周期开关后,工作空间中的任务才可以根据其配置自动调度运行。您需进入工作空间的调度设置页面,开启相应开关,详情请参见调度设置。
依赖关系对任务执行时间的影响
任务定时时间基于单个节点维度定义,但任务实际运行时间与节点依赖的上游节点的定时时间有关,所以即便当前节点的定时时间早于上游节点,当前节点仍需等待上游节点的定时时间到来并且执行成功后,当前节点才会执行,详情请参见依赖关系对任务执行的影响。
执行资源对任务执行时间的影响
当前节点的执行,除了取决于上游父节点的定时时间及运行是否成功外,还与当前节点本身执行所用的资源组有关。任务执行时间点是否存在充足的资源也将影响任务的执行,详情请参见任务执行机制。
环境影响
DataWorks仅生产环境才会自动调度,若需要进行周期调度,您需要将任务发布至生产环境。开发环境不支持自动调度。
调度任务执行方式
DataWorks上,调度任务会根据调度类型及周期数生成相应的周期实例(例如,小时调度任务每天会根据周期数产生相应数量的小时实例),并通过实例的方式运行任务。
调度时间
在凌晨业务高峰期,所有定时时间设置为00:00点的任务(包括工作空间根节点),预计将于00:00~00:05之间调度运行。
实例生成方式
节点提交发布至生产环境调度系统后,平台会根据节点配置的实例生成方式(包括T+1次日生成和发布后即时生成)生成自动调度的周期实例,无论使用哪种实例生成方式,都可在运维中心的周期任务界面看到任务的最新依赖情况。但周期实例何时生效或依赖关系何时更新,与您选择的实例生成方式有关,具体如下。
无论选择哪种实例生成方式,23:30~24:00
时间段的变更操作均会在节点发布至生产环境后的第三天生效,请尽量避免在该时间段执行任务变更操作。
实例生成方式 | 说明 |
T+1次日生成 | 节点发布至生产环境后第二天自动调度,您可在周期实例页面查看任务的执行情况。 若您当天需执行任务,可选择对该任务执行补数据操作。补数据选择业务时间昨天与今天的周期实例执行情况一致。 |
节点发布至生产环境后当天自动调度,您可在周期实例页面查看任务的执行情况。 说明 仅当节点设置的定时时间为未来时间,该实例才会正常执行;定时时间为过去时间的实例将会空跑,不真实执行任务(此处存在十分钟时间间隔)。
|
调度类型
DataWorks支持的调度类型如下表所示。
调度类型 | 影响说明 | 使用场景 |
正常调度 | 按照调度周期配置的定时时间启动调度,正常执行任务(即会真实跑数据)。 当前节点正常执行后,也会触发下游节点正常调度执行,通常任务的调度类型默认选中该项。 | 正常状态运行的周期任务,并且生成的周期实例也是正常状态运行。 |
暂停调度 | 按照调度周期配置的定时时间启动调度,但节点状态被置为暂停(即不会真实跑数据)。 调度到该任务时,系统会直接返回失败,并且会阻塞依赖当前节点的下游节点执行。 说明 暂停状态的节点在运维中心的图标标识为。 | 冻结状态的周期任务,其生成的周期实例也为冻结状态。当前节点不可执行,并且阻塞下游节点执行。 当某类业务流程在一定时间内不需要执行时,可选择此调度类型来冻结业务流程根节点。当业务需要执行时,可再对业务流程根节点执行解冻操作。解冻任务,详情请参见任务冻结与解冻。 |
空跑调度 | 按照调度周期配置的定时时间启动调度,但该节点为空跑状态(即不会真实跑数据)。 调度到该任务时,系统会直接返回成功(执行时长为 | 当某个节点在一定时间内不需要执行,并且不阻塞他的下游节点执行时,可选择此类型调度。 |
调度日历
用于定义任务的调度日期与调度方式,DataWorks支持如下两种日历:
默认日历:平台提供,适用于通用场景。
自定义调度日历:用户自定义,适用于有灵活调度日期需求的行业及场景(例如,金融行业)。可根据需要配置日历所应用的工作空间、日历的有效期、指定日期任务的调度方式等规则,详情请参见配置调度日历。
调度周期
调度周期即任务在调度场景下自动执行的周期数,用于定义在生产环境调度系统中,多久会真实执行一次节点中的代码逻辑。调度任务会根据调度类型及周期数生成相应的周期实例(例如,小时调度任务每天会根据周期数产生相应数量的小时实例),通过周期实例的方式自动调度运行周期任务。
任务调度频率与上游任务周期无关
任务多久调度一次与任务本身定义的调度周期有关,与上游任务调度周期无关。
DataWorks支持不同调度周期的任务互相依赖
DataWorks中,调度任务会根据调度类型及周期数生成相应的周期实例(例如,小时调度任务每天会根据周期数产生相应数量的小时实例),通过实例的方式运行任务。周期任务设置的依赖关系,其本质是任务间所生成实例的依赖。上下游任务的调度类型不同,其生成的周期实例数及实例的依赖情况不同。不同调度周期的上下游依赖情况,请参见必读:复杂依赖场景调度配置原则与示例。
非调度时间任务会空跑
DataWorks上非每天调度的任务(例如周、月调度的任务)在非调度时间内会空跑,当到达任务定义的调度时间后立即返回成功状态。若下游存在日调度任务,会调起该下游日调度任务正常执行。即上游空跑,下游调度任务正常根据节点定义的调度时间执行。
任务执行时间说明
此处仅设置任务预期调度时间,任务的实际执行时间受多方因素影响。例如,上游定时时间、任务执行资源情况、任务实际运行条件等,详情请参见任务运行条件说明。
DataWorks支持的调度类型如下。
调度类型 | 说明 | 典型场景配置示例 |
分钟调度即每天指定的时间段内,调度任务按 | 每30分钟运行一次。 | |
小时调度即每天指定的时间段内,调度任务按 | 每小时运行一次。 | |
日调度即调度节点每天在指定的定时时间运行一次。新建周期任务时,日调度默认的时间周期为每天0点运行一次。您可根据需要自行指定运行时间点。 | 每天凌晨24点运行。 | |
周调度即调度任务每周的特定几天,在特定时间点自动运行一次。 重要 非调度时间内任务每日仍会生成实例,实例显示为成功状态,但实际会空跑,不会真实执行任务。 | 每周五中午12点运行。 | |
月调度即调度任务在每月的特定几天,在特定时间点自动运行一次。 重要 非调度时间内任务每日仍会生成实例,实例显示为成功状态,但实际空跑,不会真实执行任务。 | 每个月最后一天运行。 | |
年调度即调度任务在每年的特定几天,在特定时间点自动运行一次。 重要 非调度时间内任务每日仍会生成实例,实例显示为成功状态,但实际会空跑,不会真实执行任务。 | 每季度首月最后一天运行。 |
超时定义
设置超时时间后,如果任务运行时长超过超时时间,任务将自动终止运行。其配置说明如下:
超时时间对周期实例、补数据实例、测试实例均生效。
超时时间默认值为3~7天,系统根据实际负载情况动态调整默认的任务超时时间,范围为3~7天不等。
手动设定超时时间时,最大值可设置为168小时(7天)。
重跑说明
您可在时间属性中配置节点在特定情况下重跑,以及指定重跑时间及次数。
使用重跑属性时,应尽量保证任务的幂等性(特殊任务除外),避免在任务出错重跑后,出现大量数据质量问题。例如,在ODPS SQL的开发过程中,使用
insert overwrite
语句来替代insert into
语句。DataWorks工作空间的调度设置页面,用于设置重跑相关参数的默认值,设置后,新创建的任务将使用该默认配置。详情请参见调度设置。
重跑属性
重跑属性不能为空,其支持的类型及应用场景如下表所示。
说明单击去设置默认重跑属性值,即可设置重跑属性的默认值。
类型
应用场景
运行成功或失败后均可重跑
如果节点多次重跑不会影响结果,可选择使用该重跑类型。
运行成功后不可重跑,运行失败后可以重跑
如果节点运行一次成功后,重跑后会影响运行结果,而运行失败后重跑不会影响结果,可选择使用该重跑类型。
运行成功或失败后皆不可重跑
如果节点不管运行成功或失败,重跑后都会影响运行结果(例如,某些数据同步节点),可选择使用该重跑类型。
说明当选择该类型时,如果系统出故障,在故障恢复后,系统也不会自动重跑相应节点。
不支持配置出错自动重跑。
出错自动重跑
出错自动重跑(即任务运行失败后会自动触发重跑)的配置参数说明如下表所示。
参数
描述
重跑次数
周期任务调度执行失败的情况下,默认自动重跑的次数。
重跑次数最少配置为1(即任务出错后自动重跑1次),最多配置为10(即任务出错后会自动重跑10次)。您可以根据业务需要进行修改。
重跑间隔
默认每次重跑的间隔为30分钟,最小支持设置为1分钟,最大支持设置为30分钟。
说明当重跑属性设置为运行成功或失败后皆不可重跑时,则不会显示出错自动重跑属性,即任务出错不会自动重跑。
您可以在调度配置页面,设置工作空间级别的默认重跑次数和重跑间隔。详情请参见调度设置。
任务执行时,超过了超时时间导致的节点失败,自动重跑配置将不生效。
生效日期
调度节点在有效日期内生效并自动调度,超过有效期的任务将不会自动调度。此类任务为过期任务,您可在运维大屏查看过期任务数量,并根据情况对其做下线等处理。
附录:关于空跑现象说明
包含指定执行日期的周、月、年调度节点,在不真实跑数据的日期内,同样会按照调度周期的定时时间启动调度。但该实例的状态为空跑状态(即不会真实跑数据)。当调度到空跑状态的实例时,其空跑表现如下:
系统直接返回运行成功,即执行时长为
0
秒。不会真正执行任务,即执行日志为空。
不会阻塞依赖当前节点的下游节点执行,即下游节点正常执行。
不会占用资源。