时间属性配置

时间属性是定义 DataWorks 周期任务何时、以何种方式被触发的核心调度条件。它不仅包含用于设定执行时刻的调度时间,还整合了实例生成方式调度日历重跑超时策略等一系列高级配置。这些参数共同构成了任务的时间行为计划,控制其触发规则、执行边界及异常自愈机制。本指南将深入解析各项时间属性的配置方法与工作原理,帮助您构建无人值守、稳定可靠的自动化数据工作流。

快速上手:配置案例

场景需求: 某电商公司需要每天凌晨 02:00 自动计算前一天的销售总额,若因网络波动等因素导致失败,要求系统自动重试 3 次

  • 第一步:设置调度时间

    1. 设置调度周期:双击任务名称,在任务右侧调度配置 > 时间属性中的调度周期中,选择“”。

    2. 设置定时时间:设置定时时间为02:00。

  • 第二步:设置调度策略

    1. 定义重跑属性:在重跑属性选择运行成功或失败后皆可重跑

    2. 失败自动重跑:勾选“出错自动重试”,重试次数设为 3,间隔设为 5分钟

    3. 其余属性可保持默认。

  • 配置结果:

    任务发布后,系统会从次日(T+1)起,每天02:00 自动触发。若执行失败,会每隔 5 分钟尝试拉起一次,最多尝试 4 次(1次正常运行+3次重试)。

功能介绍

时间属性配置定义了周期任务从生成到执行的全过程,主要包含以下几个核心维度:

  • 调度时间:通过可视化定义任务执行的调度频率和具体时间。

  • 实例生命周期管理:决定实例何时被创建以及在何时有效。它包括:

    • 实例生成方式:控制实例在发布当天或次日生成。

    • 生效日期:设定任务的整体有效时间范围。

    • 调度日历:用于排除非工作日(如节假日)。

  • 执行策略:通过 调度类型定义实例到点后的行为,是正常运行、空跑(跳过)还是暂停。

  • 异常与容错:通过超时定义和重跑说明,为任务执行失败或超时等异常情况提供自动化处理机制。

image

调度时间

调度时间控制了任务计划运行的时间(也叫定时时间),即在生产环境中,一个任务节点应该多久被自动触发一次。系统会依据您设置的周期,为任务生成对应的周期实例个数,并通过这些实例的调度时间和调度依赖来驱动整个工作流的自动化运行。

说明

定时时间与业务日期是DataWorks中最重要的两个基准时间概念,详情参见:核心概念:时间基准

调度周期的独立性与依赖关系

  • 频率独立:任务的调度频率(如“每小时”或“每天”)由其自身配置决定,与其上游任务的频率无关。例如,一个“日调度”的报表任务可以依赖一个“小时调度”的数据准备任务。更多不同周期频率的依赖配置,请参见必读:复杂依赖场景调度配置原则与示例

  • 实例依赖:不同调度周期任务间的依赖(跨周期依赖)本质是实例依赖。系统会自动解析并确保下游实例在其业务日期对应的所有上游实例全部成功后,才满足依赖条件。

  • 空跑机制:为避免阻塞,非日调度任务(如周、月、年)在其非运行日会生成一个空跑实例。该实例会立即置为成功,但不执行代码或消耗资源,从而确保下游的日调度任务能被正常触发。

定时时间 VS 实际运行时间

  • 定时时间:您在调度配置中设定的时间是任务的预期启动时间,即任务可以开始运行的最早时刻。

  • 实际运行时间:任务的实际开始执行时间取决于以下两个条件被同时满足:

    1. 所有上游实例均已成功运行。

    2. 当前有可用的计算资源。

调度时区

任务的调度时间默认采用其所属工作空间地域对应的时区。如需变更,可参见切换调度时区以应对夏令时切换等场景。 场景:夏令时切换对调度任务运行的影响

以下为各个场景的配置示例:

分钟调度

设置起止时间段和运行间隔。最小间隔为 1 分钟。在指定时间段内,系统会按固定间隔生成多个实例。

配置示例

目标节点每天00:00~23:59的时间段内,每隔30分钟调度一次,配置详情如下图所示。

分钟调度

实例详情

30分钟调度一次的节点其实例定时时间与调度参数替换情况如下图所示。

image

小时调度

适用于高频同步或近实时计算场景。

  • 实例产出逻辑:系统依据双闭区间 [起始时间, 结束时间] 计算周期实例。

    • 示例:若时间区间设为 [00:00,03:00],时间间隔为 1 小时,系统将产出 4 个实例,其计划执行时间精确落在 0 点、1 点、2 点和 3 点。

  • 配置方式:

    • 频率触发:在指定的时间段内,按固定时间间隔(如每小时)循环执行。

    • 点位触发:直接指定一个或多个离散的精确时间点运行。

配置示例

目标任务在每天00:00~23:59的时间段内,每隔6小时自动调度一次,配置详情如下图所示。

小时调度

调度详情

调度系统每天将生成4个实例,并在实例的定时时间0点、6点、12点和18点运行,如下图所示。

image

日调度

日调度为最常见的调度方式,支持用户在指定的生效时间范围内,每天在指定的定时时间运行一次。任务创建后默认即为日调度,调度时间是在00:00~00:30时间段随机生成。您可根据需要自行指定运行时间点。例如,指定每天13点运行一次。

配置示例

PixPin_2026-01-07_10-02-37

调度详情

调度系统会自动为任务生成实例并运行,各业务数据加工时间如下图所示。

image

周调度

适用于每周固定频率进行的业务汇总或周期性数据维护。

实例产出逻辑: 系统在生效期内每日均会产出实例

  • 正常执行:仅在您勾选的运行日(如周一、周五)按时触发代码逻辑。

  • 自动空跑:非勾选日期(如周二、三、四、六、日)产生的实例会自动变为“空跑成功”状态,不真实执行逻辑,不占用计算资源。

配置示例

目标任务配置在每周一、周五两天定时运行,则在周一、周五生成的实例会正常调度执行,而周二、周三、周四、周六以及周日这五天生成的实例会空跑,即到达定时运行时间后会直接置为成功状态,不会真实执行代码逻辑,配置详情如下图所示。

PixPin_2026-01-07_10-17-41

调度详情

调度系统会自动为任务生成实例并运行。

image

月调度

适用于按自然月进行数据处理的场景,是财务结算、月度业绩报告、用户行为月度分析等核心任务的常用周期。

实例产出逻辑:系统依据您选择的每月特定日期来生成实例。一个月调度实例代表一个完整的自然月。

  • 正常执行:仅在您勾选的运行日(如15号、每月最后一天)按时触发代码逻辑。

  • 自动空跑:非勾选日期(如每月1号-14号)产生的实例会自动变为“空跑”状态,不真实执行逻辑,不占用计算资源。

配置示例

目标任务配置在每月最后一天运行结算,则每月最后一天生成的实例会正常调度执行,而其它日期生成的实例会空跑,即到达定时运行时间后将直接置为成功状态,不会执行代码逻辑,配置详情如下图所示。

PixPin_2026-01-07_14-27-24

调度详情

调度系统会自动为任务生成实例并运行,如下图所示。

image
说明
  • 使用补数据功能对月调度任务执行补数据操作时,请注意补数据选择的为业务日期业务日期=定时调度日期-1

    例如:

    • 每月一号的任务在执行补数据操作时应选择业务时间为上个月末。

    • 每月月底调度的任务在执行补数据操作时应选择业务时间为月末的前一天。

    • 若补数据选择业务时间为其他时间,补数据实例将空跑。

  • 更多场景依赖场景可参见:复杂依赖场景调度配置原则与示例

年调度

适用于季度汇总、年度审计或特定节假日的长周期数据任务。

  • 实例产出逻辑: 全年 365 天均会产出实例,但仅在指定的月份和日期触发真实计算。

    • 灵活组合:支持跨月份的多日期选择,例如仅在每季度的首日或末日运行。

    • 空跑机制:在未满足执行条件的日期实例秒级空跑,不真实执行逻辑,不占用计算资源。

配置示例

目标任务配置在每年的一月、四月、七月、十月的1日和最后一日运行,则在上述指定日期生成的实例会正常调度执行,而其它日期生成的实例会空跑,即到达定时运行时间后将直接置为成功状态,不会真实执行代码逻辑,配置详情如下图所示。

季度示例

调度详情

调度系统会自动为任务生成实例并运行,如下图所示。

image
说明

cron表达式会根据您选择的时间自动生成,不可手动修改。

实例生命周期管理

这几项配置决定了任务实例的是否创建。它不关心任务具体的运行时间,而是宏观地管理实例是否应该被创建、以及调度规则本身是否有效。

  • 实例生成方式:决定了您的配置修改是对当天生效,还是次日再生效。次日生效(默认)可确保变更不干扰当天任务,实现平滑过渡;而即时生效会强制重置当天实例以应用变更,请仅在紧急修复且了解变更影响并评估过风险后使用。

  • 生效日期:定义了整套调度规则的有效期。

  • 调度日历:允许您将调度绑定到特定的日历,例如只在“交易日”运行,是比“周”更灵活的控制方式。

实例生成方式

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

重要
  • 为确保发布后即时生成的实例能正常调度而不产生“过期空跑”,请务必保证任务的定时调度时间晚于任务发布时间至少 10分钟 以上。任务仅在发布10分钟后的生效时间点,才会真实执行代码逻辑或根据最新的调度配置重新生成实例。

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

实例生成方式

说明

T+1次日生成(推荐)

  • 对于新建任务:节点发布后,次日才开始自动调度,当天需运行请使用补数据操作。

  • 对于存量任务修改:修改内容将在次日生效,今天已生成的实例不受影响。

发布后即时生成

节点发布后立即产出当日实例。仅当定时时间晚于发布时刻 10 分钟时,产生的实例才会正常触发;若定时时间早于该临界点(包括过去时间及处于缓冲区内的时间),实例将自动进入空跑状态(即直接置为成功,不真实执行代码)。

  • 对于新建任务:节点发布当天是否真实运行,取决于任务定时时间发布时刻的先后关系。若定时时间早于发布时刻(或处于生效缓冲区内),产生的实例将空跑。

  • 对于存量任务修改调度周期:系统将依据最新配置,重新生成发布时刻后的未来实例并替换原有实例,但已产生的历史实例将予以保留。由于修改频率可能导致当天新旧周期实例并存、依赖关系错综复杂,建议在发布前充分评估并谨慎操作。

生效日期

定义任务自动调度的有效时间范围。任务超过有效期后将不再生成实例,成为过期任务,可在运维大屏中监控和管理。

调度日历

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

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

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

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

执行策略

该配置定义了当任务被触发后,它应该以何种方式被执行。

调度类型

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

调度类型

影响说明

使用场景

正常调度

正常执行代码并触发下游。

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

暂停调度

实例到达时间后不运行且转失败,会阻塞下游。暂停调度与运维中心的冻结为同质性的操作。暂停调度的节点在运维中心会展示冻结图标暂停。冻结状态的周期任务,其生成的周期实例也为冻结状态。

适用于紧急截断业务流程。

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

空跑调度

实例到达定时时间后直接转成功(执行时长为0秒),不运行代码、不占资源,但正常触发下游。

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

异常与容错

这是保障数据链路稳定性的关键,为可能出现的各种异常情况预设好应对方案。

  • 重跑属性:当任务执行失败时,系统是否应该以及应该如何自动进行重试。

  • 超时设置:为任务设定一个合理的运行时长上限,一旦超过该时长,系统可以自动告警或中断任务,防止单个节点异常夯死、消耗过多资源。

超时定义

设置任务运行的最长允许时间。如果运行时长超过该值,任务将自动终止并置为失败状态,以防任务长时间卡死影响整个工作流。

  • 适用范围:对周期实例、补数据实例、测试实例均生效。

  • 默认值:默认为 3-7 天,系统根据实际负载动态调整。

  • 限制:手动设置的最大值为 168 小时(7 天),最小值为1分钟。

重跑说明

重跑策略用于实现任务的故障自动恢复。

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

  • 重跑属性:重跑策略用于实现任务的故障自动恢复。

    类型

    应用场景

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

    适用于可重复执行且不影响结果的幂等任务。

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

    防止因误操作重跑成功任务而导致数据污染。

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

    适用于非幂等任务(如某些数据同步)。选择此项后,出错自动重跑功能将不可用。

  • 出错自动重跑:当任务运行失败时,系统自动触发重跑。

    参数

    描述

    重跑次数

    失败后自动重试的次数。范围:1-10 次。

    重跑间隔

    每次重试的间隔时间。范围:1-30 分钟。

    说明

    因运行超时导致的失败不会触发自动重跑。

常见问题(FAQ)与最佳实践

  • Q:任务的实际运行时间为什么和定时时间不一致?

    A:定时时间只是任务的“预期”启动时间。实际运行还需满足两个条件:① 所有上游依赖任务都成功运行;② 当前有可用的调度资源。任何一个条件不满足,任务都会处于等待状态。

  • Q:我的上游是小时任务,下游是天任务,它们能互相依赖吗?

    A: DataWorks支持不同调度周期的任务互相依赖。系统会通过复杂的依赖解析算法,确保下游任务能正确地等待其所有上游实例完成后再运行。具体原则请参见:必读:复杂依赖场景调度配置原则与示例

  • Q:我补了上周五的数据,为什么bizdate变量不是周五的日期?

    A:这通常是因为您混淆了“业务日期”和“运行日期”。在DataWorks中,业务日期 = 定时时间 - 1天。当您对一个定时在周六凌晨的任务执行补数据操作时,您需要选择的业务日期是周五。

  • Q:我的任务有数据写入逻辑,重跑时数据会重复吗?

    A:可能会。因此,强烈建议保证任务的幂等性。对于数据写入类任务,应优先使用 INSERT OVERWRITE(覆盖写入)而非 INSERT INTO(追加写入),确保多次重跑结果一致。