全部产品
Search
文档中心

大数据开发治理平台 DataWorks:时间属性配置说明

更新时间:Aug 28, 2024

时间属性用于定义节点在生产环境的周期调度方式。您可通过调度配置的时间属性,配置节点生成周期实例的方式,实例调度周期与执行时间,是否支持重跑,任务执行超过多长时间自动退出等。本文为您介绍如何配置节点调度的时间属性。

配置指引

您需进入数据开发节点的编辑页面,单击右侧导航栏的调度配置,配置节点的时间属性。

说明

您可在调度配置中定义单个任务调度属性,也可通过批量操作功能批量修改任务调度属性。例如,批量修改任务调度时间,批量修改任务使用的调度资源组等。

时间属性包含的配置类别如下表。

类别

描述

实例生成方式

用于定义节点在生产环境生成实例的时间。

调度类型

用于定义节点在生产环境的运行方式。

调度日历

用于定义任务调度日期及调度方式。

调度周期

用于定义节点在生产环境中的运行频率(生成周期实例个数及实例运行的时间)。

超时定义

用于定义节点运行超过多长时间会失败退出。

重跑说明

用于定义节点生成的实例是否可以重跑,即从数据幂等性考虑,任务是否可以重跑,或者在什么情况下可以重跑。

生效日期

用于定义节点正常自动调度运行的时间范围,该时间范围外,节点将不再自动调度。

使用说明

调度任务的时间属性配置,仅定义任务预期执行时间,其实际是否执行与实际执行时间受多方因素影响,包括但不限于以下场景:

  • 调度开关控制

    仅当DataWorks工作空间开启启用调度周期开关后,工作空间中的任务才可以根据其配置自动调度运行。您需进入工作空间的调度设置页面,开启相应开关,详情请参见调度设置

  • 依赖关系对任务执行时间的影响

    任务定时时间基于单个节点维度定义,但任务实际运行时间与节点依赖的上游节点的定时时间有关,所以即便当前节点的定时时间早于上游节点,当前节点仍需等待上游节点的定时时间到来并且执行成功后,当前节点才会执行,详情请参见依赖关系对任务执行的影响

  • 执行资源对任务执行时间的影响

    当前节点的执行,除了取决于上游父节点的定时时间及运行是否成功外,还与当前节点本身执行所用的资源组有关。任务执行时间点是否存在充足的资源也将影响任务的执行,详情请参见任务执行机制

  • 环境影响

    DataWorks仅生产环境才会自动调度,若需要进行周期调度,您需要将任务发布至生产环境。开发环境不支持自动调度。

  • 调度任务执行方式

    DataWorks上,调度任务会根据调度类型及周期数生成相应的周期实例(例如,小时调度任务每天会根据周期数产生相应数量的小时实例),并通过实例的方式运行任务。

  • 调度时间

    在凌晨业务高峰期,所有定时时间设置为00:00点的任务(包括工作空间根节点),预计将于00:00~00:05之间调度运行。

实例生成方式

节点提交发布至生产环境调度系统后,平台会根据节点配置的实例生成方式(包括T+1次日生成发布后即时生成)生成自动调度的周期实例,无论使用哪种实例生成方式,都可在运维中心的周期任务界面看到任务的最新依赖情况。但周期实例何时生效或依赖关系何时更新,与您选择的实例生成方式有关,具体如下。

重要

无论选择哪种实例生成方式,23:30~24:00时间段的变更操作均会在节点发布至生产环境后的第三天生效,请尽量避免在该时间段执行任务变更操作。

实例生成方式

说明

T+1次日生成

节点发布至生产环境后第二天自动调度,您可在周期实例页面查看任务的执行情况。

若您当天需执行任务,可选择对该任务执行补数据操作。补数据选择业务时间昨天今天的周期实例执行情况一致。

发布后即时生成

节点发布至生产环境后当天自动调度,您可在周期实例页面查看任务的执行情况。

说明

仅当节点设置的定时时间为未来时间,该实例才会正常执行;定时时间为过去时间的实例将会空跑,不真实执行任务(此处存在十分钟时间间隔)。

  • 新建任务:选择此方式时,该任务当天是否真实跑数据,是否空跑,与任务的定时时间及发布时间有关。

  • 已发布的生产任务修改调度周期:选择此方式时,DataWorks会根据最新调度情况替换已生成的未来时间段的实例,但过期的实例不会删除。因此,已发布的任务修改调度频率并选择发布后即时生成实例,当天的依赖关系较为复杂。

调度类型

DataWorks支持的调度类型如下表所示。

调度类型

影响说明

使用场景

正常调度

按照调度周期配置的定时时间启动调度,正常执行任务(即会真实跑数据)。

当前节点正常执行后,也会触发下游节点正常调度执行,通常任务的调度类型默认选中该项。

正常状态运行的周期任务,并且生成的周期实例也是正常状态运行。

暂停调度

按照调度周期配置的定时时间启动调度,但节点状态被置为暂停(即不会真实跑数据)。

调度到该任务时,系统会直接返回失败,并且会阻塞依赖当前节点的下游节点执行。

说明

暂停状态的节点在运维中心的图标标识为暂停

冻结状态的周期任务,其生成的周期实例也为冻结状态。当前节点不可执行,并且阻塞下游节点执行。

当某类业务流程在一定时间内不需要执行时,可选择此调度类型来冻结业务流程根节点。当业务需要执行时,可再对业务流程根节点执行解冻操作。解冻任务,详情请参见任务冻结与解冻

空跑调度

按照调度周期配置的定时时间启动调度,但该节点为空跑状态(即不会真实跑数据)。

调度到该任务时,系统会直接返回成功(执行时长为0秒),不会真正执行任务(即执行日志为空)、不会阻塞依赖当前节点的下游节点执行(即下游节点正常执行)、也不会占用资源。

当某个节点在一定时间内不需要执行,并且不阻塞他的下游节点执行时,可选择此类型调度。

调度日历

用于定义任务的调度日期与调度方式,DataWorks支持如下两种日历:

  • 默认日历:平台提供,适用于通用场景。

  • 自定义调度日历:用户自定义,适用于有灵活调度日期需求的行业及场景(例如,金融行业)。可根据需要配置日历所应用的工作空间、日历的有效期、指定日期任务的调度方式等规则,详情请参见配置调度日历

您需根据所选调度日历,结合调度类型调度周期等其他调度配置,实现任务在指定时间进行调度。

调度周期

调度周期即任务在调度场景下自动执行的周期数,用于定义在生产环境调度系统中,多久会真实执行一次节点中的代码逻辑。调度任务会根据调度类型及周期数生成相应的周期实例(例如,小时调度任务每天会根据周期数产生相应数量的小时实例),通过周期实例的方式自动调度运行周期任务。

重要
  • 任务调度频率与上游任务周期无关

    任务多久调度一次与任务本身定义的调度周期有关,与上游任务调度周期无关。

  • DataWorks支持不同调度周期的任务互相依赖

    DataWorks中,调度任务会根据调度类型及周期数生成相应的周期实例(例如,小时调度任务每天会根据周期数产生相应数量的小时实例),通过实例的方式运行任务。周期任务设置的依赖关系,其本质是任务间所生成实例的依赖。上下游任务的调度类型不同,其生成的周期实例数及实例的依赖情况不同。不同调度周期的上下游依赖情况,请参见必读:复杂依赖场景调度配置原则与示例

  • 非调度时间任务会空跑

    DataWorks上非每天调度的任务(例如周、月调度的任务)在非调度时间内会空跑,当到达任务定义的调度时间后立即返回成功状态。若下游存在日调度任务,会调起该下游日调度任务正常执行。即上游空跑,下游调度任务正常根据节点定义的调度时间执行。

  • 任务执行时间说明

    此处仅设置任务预期调度时间,任务的实际执行时间受多方因素影响。例如,上游定时时间、任务执行资源情况、任务实际运行条件等,详情请参见任务运行条件说明

DataWorks支持的调度类型如下。

调度类型

说明

典型场景配置示例

分钟调度

分钟调度即每天指定的时间段内,调度任务按N*指定分钟的时间间隔运行一次。分钟调度的时间间隔最小粒度只能设置为5分钟。

每30分钟运行一次。分钟调度

小时调度

小时调度即每天指定的时间段内,调度任务按N*1小时的时间间隔运行一次。

每小时运行一次。小时调度

日调度

日调度即调度节点每天在指定的定时时间运行一次。新建周期任务时,日调度默认的时间周期为每天0点运行一次。您可根据需要自行指定运行时间点。

每天凌晨24点运行。日示例

周调度

周调度即调度任务每周的特定几天,在特定时间点自动运行一次。

重要

非调度时间内任务每日仍会生成实例,实例显示为成功状态,但实际会空跑,不会真实执行任务。

每周五中午12点运行。周示例

月调度

月调度即调度任务在每月的特定几天,在特定时间点自动运行一次。

重要

非调度时间内任务每日仍会生成实例,实例显示为成功状态,但实际空跑,不会真实执行任务。

每个月最后一天运行。月示例

年调度

年调度即调度任务在每年的特定几天,在特定时间点自动运行一次。

重要

非调度时间内任务每日仍会生成实例,实例显示为成功状态,但实际会空跑,不会真实执行任务。

每季度首月最后一天运行。季度示例

超时定义

设置超时时间后,如果任务运行时长超过超时时间,任务将自动终止运行。其配置说明如下:

  • 超时时间对周期实例、补数据实例、测试实例均生效。

  • 超时时间默认值为3~7天,系统根据实际负载情况动态调整默认的任务超时时间,范围为3~7天不等。

  • 手动设定超时时间时,最大值可设置为168小时(7天)。

重跑说明

您可在时间属性中配置节点在特定情况下重跑,以及指定重跑时间及次数。

说明
  • 使用重跑属性时,应尽量保证任务的幂等性(特殊任务除外),避免在任务出错重跑后,出现大量数据质量问题。例如,在ODPS SQL的开发过程中,使用insert overwrite语句来替代insert into语句。

  • DataWorks工作空间的调度设置页面,用于设置重跑相关参数的默认值,设置后,新创建的任务将使用该默认配置。详情请参见调度设置

  • 重跑属性

    重跑属性不能为空,其支持的类型及应用场景如下表所示。

    说明

    单击去设置默认重跑属性值,即可设置重跑属性的默认值。

    类型

    应用场景

    运行成功或失败后均可重跑

    如果节点多次重跑不会影响结果,可选择使用该重跑类型。

    运行成功后不可重跑,运行失败后可以重跑

    如果节点运行一次成功后,重跑后会影响运行结果,而运行失败后重跑不会影响结果,可选择使用该重跑类型。

    运行成功或失败后皆不可重跑

    如果节点不管运行成功或失败,重跑后都会影响运行结果(例如,某些数据同步节点),可选择使用该重跑类型。

    说明
    • 当选择该类型时,如果系统出故障,在故障恢复后,系统也不会自动重跑相应节点。

    • 不支持配置出错自动重跑

  • 出错自动重跑

    出错自动重跑(即任务运行失败后会自动触发重跑)的配置参数说明如下表所示。

    参数

    描述

    重跑次数

    周期任务调度执行失败的情况下,默认自动重跑的次数。

    重跑次数最少配置为1(即任务出错后自动重跑1次),最多配置为10(即任务出错后会自动重跑10次)。您可以根据业务需要进行修改。

    重跑间隔

    默认每次重跑的间隔为30分钟,最小支持设置为1分钟,最大支持设置为30分钟。

    说明
    • 当重跑属性设置为运行成功或失败后皆不可重跑时,则不会显示出错自动重跑属性,即任务出错不会自动重跑。

    • 您可以在调度配置页面,设置工作空间级别的默认重跑次数和重跑间隔。详情请参见调度设置

    • 任务执行时,超过了超时时间导致的节点失败,自动重跑配置将不生效。

生效日期

调度节点在有效日期内生效并自动调度,超过有效期的任务将不会自动调度。此类任务为过期任务,您可在运维大屏查看过期任务数量,并根据情况对其做下线等处理。

附录:关于空跑现象说明

包含指定执行日期的周、月、年调度节点,在不真实跑数据的日期内,同样会按照调度周期的定时时间启动调度。但该实例的状态为空跑状态(即不会真实跑数据)。当调度到空跑状态的实例时,其空跑表现如下:

  • 系统直接返回运行成功,即执行时长为0秒。

  • 不会真正执行任务,即执行日志为空。

  • 不会阻塞依赖当前节点的下游节点执行,即下游节点正常执行。

  • 不会占用资源。