调度策略配置

更新时间:
复制为 MD 格式

调度策略定义了任务实例的生成方式、运行行为、异常容错机制以及所需的运行资源。通过合理配置调度策略,可精确控制实例的生成时机、执行逻辑、失败恢复机制以及资源分配,以保障数据开发与运维的稳定运行。

调度策略功能介绍

DataWorks调度策略用于精确定义周期任务的自动化行为,主要包括四个方面:

  1. 实例生成与执行
    控制实例何时生成(次日或即时生效)以及如何运行(正常、暂停、空跑)。

  2. 容错与重试
    配置任务的异常处理逻辑,包括运行超时、失败自动重跑及手动重跑权限,以提升稳定性。

  3. 资源与环境
    指定任务所需的计算资源、调度资源组和自定义镜像,实现资源隔离与环境统一。

  4. 并发控制
    通过设置最大并行实例数,管理同一任务的并发执行,防止资源超载。

image

配置调度策略

配置实例生成与执行行为

定义任务实例的生成与执行行为,决定了实例何时被创建、以何种方式运行。

实例生成方式

定义任务发布后,周期实例的生成时机。该配置决定了变更是当天生效还是次日生效。

说明

调度策略的配置范围因节点组织形式而异:

  • 工作流节点:实例生成方式由工作流统一管理,节点自身不可单独配置。其他调度参数可由节点独立设置。

  • 独立节点:所有调度策略参数均可独立配置。

实例生成方式

说明

T+1次日生成(推荐)

变更于次日生效,不影响当天已生成的实例。

  • 新建任务:发布后,次日开始按周期自动调度。如需当天执行,须通过补数据手动创建实例。

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

说明

若修改调度时间,选择此项并发布后,近两天(TT-1)已生成的实例(包括已完成和未运行的)的定时时间将更新为新配置的时间。未生成的未来实例将按新时间生成。

发布后即时生成

变更发布后立即生效,并重新生成当日实例。若定时时间早于发布时刻不足 10 分钟,新生成的实例将自动空跑(直接置为成功,不实际执行)。

  • 新建任务:发布当天是否实际运行,取决于定时时间。若定时时间与发布时间的间隔不足 10 分钟,实例将空跑。

  • 存量任务修改调度周期:系统将根据新配置重新生成未来的实例,已生成的历史实例不受影响。

重要
  • 若选择发布后即时生成,为确保实例正常运行而非空跑,需确保任务的定时调度时间晚于任务发布时间至少 10 分钟

  • 无论选择何种方式,在 23:30~24:00 期间的发布操作,其变更将在第三日生效。建议避免在此时间段发布任务。

调度类型

定义实例在到达定时时间后的具体执行行为。

调度类型

说明

使用场景

正常调度

实例正常执行代码,成功后触发下游任务。

适用于所有需要按周期运行的常规任务。

暂停调度

实例到达定时时间后不运行并置为失败状态,会阻塞下游依赖。在运维中心,该节点会显示冻结图标。

适用于需要临时中断或下线某个业务流程的场景,可用于紧急切断数据链路。

空跑调度

实例到达定时时间后直接置为成功(执行时长为 0 秒),不实际运行代码、不消耗计算资源,但会正常触发下游任务。

适用于某个节点暂时无需执行,但需正常触发其下游任务的场景。

延时执行时间(仅适用于工作流节点)

设置节点在工作流开始执行后,延迟指定时间再开始运行。

示例:某工作流的定时时间为 09:00,其中一个节点配置了 5 分钟的延时执行。该节点将在 09:05 左右开始执行。

配置容错与重试策略

定义任务在遇到运行失败或卡死等异常时的应对策略。

超时定义

设置任务运行的最长允许时间。若运行时长超过该阈值,任务将被强制终止并置为失败,以防任务长时间卡死而阻塞整个工作流。

  • 系统默认:默认为 3~7 天,由系统根据当前负载动态调整。

  • 自定义:可设置 1 分钟到 168 小时(7 天)之间的任意超时时长。

说明

超时定义对周期实例补数据实例测试实例均生效。

重跑属性

定义任务在运行结束后是否允许被手动重跑。此配置用于故障恢复,并可避免因误操作重跑而引发数据质量问题。

重跑属性

说明与适用场景

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

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

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

(推荐)适用于成功后重跑会产生副作用(如重复插入数据)的任务。此设置可防止因误操作重跑成功任务而导致数据污染。

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

适用于严格的非幂等任务(如某些一次性数据同步场景)。选择此项后,失败自动重跑功能将无法开启。

说明

为确保数据可恢复性,建议保证任务逻辑的幂等性。例如,在 ODPS SQL 任务中,应优先使用 INSERT OVERWRITE(覆盖写入)而非 INSERT INTO(追加写入),以确保多次重跑结果一致。

失败自动重跑

开启后,当任务因网络抖动等临时性问题运行失败时,系统将自动尝试重跑,无需人工干预。

参数

说明

重跑次数

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

重跑间隔

每次重试之间的等待时间。取值范围:1~30 分钟。

重要

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

配置运行环境与资源

配置任务执行时所需的计算资源、依赖环境与外部数据。

计算资源与配额

计算资源管理参见:计算资源管理

计算资源是指配置实际执行数据处理任务、具备计算能力的计算引擎实例。如MaxCompute项目、Hologres实例、AnalyticDB、ClickHouse等。

其中MaxCompute计算资源,可在其控制台通过计算配额机制隔离与分配计算资源。例如,为关键业务创建独立配额组,并设置CPU、内存、并发等上限,以避免资源争抢影响核心任务。

资源组

资源组管理参见:资源组管理

DataWorks中的所有周期任务都需要通过资源组来调度运行。根据任务执行时是否消耗DataWorks自身的计算单元(CU),任务可分为两类:

任务类型

核心职责

CU消耗

任务列表

调度型任务

仅负责触发和监控外部计算引擎(如MaxCompute、Hologres)中的计算。

不消耗

调度型任务配置列表

计算型任务

任务代码直接在DataWorks的资源组内执行,完成计算。

消耗

计算型任务CU配置列表

  1. 调度配置资源属性中,从调度资源组下拉列表中选择一个资源组,推荐使用更通用,支持弹性伸缩和灵活付费的Serverless资源组。

    重要

    需确保所选资源组与任务所需访问的数据源、计算资源之间网络连通,否则任务将运行失败。网络连通配置参见网络连通配置

  2. 如果任务是计算型任务,且上一步中选择的是Serverless资源组,则需配置调度CU。根据任务的计算复杂度和性能要求,设置运行时所需的CU数量(例如:0.25 CU、1 CU、4 CU)。

镜像

自定义镜像管理参见:自定义镜像

为特定节点类型(如 Python、Shell)选择自定义运行镜像。通过自定义镜像,可预置业务所需的第三方依赖库和工具,为任务提供统一、完整的执行环境。

数据集

数据集管理参见:管理数据集

为特定节点类型(如 Shell)挂载外部存储(如对象存储(OSS)文件存储(NAS)),使其在代码中可作为本地文件进行读取。每个节点最多可挂载 5 个数据集。

支持配置挂载路径高级配置(如读取方法)以及只读权限。配置数据集的方法见:管理数据集

配置并发控制

管理同一任务的多个实例同时运行的行为,防止资源争抢或业务逻辑冲突。

最大并行实例数

限制同一任务在同一时间可运行的最大实例数量。

  • 不限制:默认选项,不对该任务的并行实例数进行限制。

  • 限制:开启后,可设置最大并行数(取值范围:1~10000)。当正在运行的实例数达到上限时,新生成的实例将进入排队状态,等待已有实例运行结束后再依次执行。

计费说明

  • 调度型任务:仅负责触发外部计算引擎,不消耗DataWorks计算单元(CU)

  • 计算型任务:若在DataWorks资源组(包括默认资源组和Serverless资源组)中执行,会消耗CU并产生费用。

    • 使用Serverless资源组时,需根据任务需求配置调度CU规格,费用与CU使用量和时长相关。

  • 底层计算资源费用:调度策略仅涉及DataWorks层面的资源调度。任务实际运行时所使用的底层计算资源(如MaxCompute、Hologres等)独立计费。详情参见相应产品的计费文档。