调度配置

更新时间:2025-03-21 01:58:19

项目目录区的节点及工作流往往都是需要周期性调度的,故我们需要在节点或工作流的调度配置面板配置调度相关属性,包括调度周期、调度依赖、调度参数等。本文为您介绍调度配置的相关内容。

前提条件

  • 已创建节点。DataWorks基于节点进行任务开发,不同类型的引擎任务在DataWorks上被封装为不同类型的节点,您可根据业务需要,选择合适的节点使用。详情请参见节点开发

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

注意事项

  • 任务的调度配置仅用于定义任务调度运行时的相关属性,任务需通过发布流程发布至生产环境后,才会根据该配置进行最终调度。

  • 调度时间仅定义任务预期执行时间,其实际执行时间还受上游执行情况控制,关于任务执行条件说明,详情请参见任务运行诊断

  • DataWorks支持多种类型任务互相依赖,操作前,建议您先查看复杂依赖场景调度配置原则与示例文档了解DataWorks在该场景下预设依赖的情况。

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

  • 在使用调度参数的情况下,DataWorks调度任务各周期代码入参由该周期对应的定时时间以及您调度参数表达式最终决定。各周期代码入参与调度参数配置与替换的关系,请参见调度参数支持格式

  • 工作流包括本身工作流节点以及内部节点,依赖关系较为复杂,本文仅介绍单独节点的依赖及调度说明,工作流调度依赖关系的详细说明,请参见周期工作流

进入调度配置页面

  1. 进入DataWorks工作空间列表页,在顶部切换至目标地域,找到已创建的工作空间,单击操作列的快速进入 > Data Studio,进入Data Studio。

  2. 进入调度配置页面。

    1. 在数据开发(Data Studio)界面,您需找到目标节点,进入该节点的编辑页面。

    2. 单击节点编辑页面右侧导航栏的调度配置,进入节点调度配置页面。

配置节点调度属性

在节点的调度配置页面,您需要分别配置节点的调度参数调度策略调度时间调度依赖节点输出参数

(可选)调度参数

若您在编辑节点代码时,在代码中定义了变量,需在此处对该变量进行赋值。

调度参数是根据任务调度的业务时间及调度参数的取值格式自动替换为具体的值,实现任务调度时间内参数的动态替换。

配置调度参数

您可以通过如下两种方式定义调度参数。

定义调度参数方式

描述

配置图示

定义调度参数方式

描述

配置图示

添加参数

同一个调度任务可以配置多个调度参数,当需使用多个调度参数时,可以单击添加参数添加。

  • 您可以手动为调度参数赋值,详情请参见调度参数支持格式

  • 您也可以单击参数操作列的image,将当前节点定义的参数与上游节点的输出参数绑定。

image

加载代码中的参数

用于自动识别当前任务代码中定义的变量名,并将识别到的变量名添加为调度参数,便于调度任务后续使用。

说明

通常,代码中是按照${自定义变量名}方式来定义变量名。

Pyodps节点、通用Shell节点对于变量名的定义方式与其他节点存在差异。各类型节点的调度参数配置格式,详情请参见各类型节点的调度参数配置示例

image

调度参数支持格式

具体请参见调度参数支持格式

确认生产环境任务的调度参数配置

为避免周期调度任务运行时,由于调度参数不符合预期而导致任务运行出现问题,建议在任务发布后,前往生产运维中心的周期任务界面,查看生产环境下该周期任务的调度参数配置情况。查看周期任务,详情请参见管理周期任务

调度策略

调度策略用于定义周期调度任务中实例的生成方式、调度类型、计算资源与资源组等信息。

参数

说明

参数

说明

实例生成方式

节点提交发布至生产环境调度系统后,平台会根据节点配置的实例生成方式生成自动调度的周期实例

  • T+1次日生成:节点发布至生产环境后第二天自动调度,您可在周期实例页面查看任务的执行情况。若您当天需执行任务,可选择对该任务执行补数据操作。补数据选择业务时间昨天今天的周期实例执行情况一致。

  • 发布后即时生成:节点发布至生产环境后当天自动调度,您可在周期实例页面查看任务的执行情况。新建任务时,选择此方式时,该任务当天是否真实跑数据,是否空跑,与任务的定时时间及发布时间有关。已发布的生产任务修改调度周期时,DataWorks会根据最新调度情况替换已生成的未来时间段的实例,但过期的实例不会删除。

调度类型

  • 正常调度

    • 使用场景:正常状态运行的周期任务,并且生成的周期实例也是正常状态运行。

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

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

  • 暂停调度

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

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

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

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

  • 空跑调度

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

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

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

超时定义

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

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

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

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

重跑属性

配置节点在特定情况下重跑。

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

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

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

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

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

    • 不支持配置失败自动重跑

失败自动重跑

开启后,当任务运行失败(不包括用户主动终止任务运行)时,调度系统会根据重跑次数和重跑间隔自动触发重跑。

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

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

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

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

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

计算资源

配置任务运行使用的计算资源,按需选择。

调度资源组

配置任务运行使用的调度资源组,按需选择即可。

  • 如果需要修改新建任务默认配置的资源组,可前往调度设置页面操作,详情请参见调度设置

  • 如果需要修改已创建任务的资源组,详情请参见通用参考:切换资源组

调度时间

调度时间用于配置调度任务自动执行的周期、时间等信息。

说明

如果是工作流中的节点,则调度时间相关参数在工作流页面的调度配置中设置,如果是非工作流中的节点,则在各节点的调度配置中设置调度时间

注意事项

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

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

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

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

  • 非调度时间任务会空跑

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

  • 任务执行时间说明

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

配置调度时间

参数

说明

参数

说明

调度周期

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

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

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

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

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

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

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

重要

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

生效日期

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

Cron表达式

该表达式根据时间属性配置自动生成,无需配置。

调度依赖

DataWorks上任务的调度依赖是指调度场景下节点间的上下游依赖关系。在DataWorks中,上游节点任务运行完成且运行成功,下游节点任务才会开始运行。配置调度依赖后,可保障调度任务在运行时能获取到正确的数据(即当前节点依赖的上游节点成功运行后,DataWorks通过节点的运行状态识别到上游表的最新数据已产生,下游节点再去取数),避免下游节点取数据时,上游表数据还未正常产出,导致下游节点取数出现问题。

注意事项

  • 节点依赖关系配置后,默认在任务调度运行时,下游节点运行条件之一为其依赖的上游节点均已执行成功,否则当前任务取数会存在质量问题。

  • 任务实际运行时间除了取决于任务本身的定时时间(即任务在调度场景下的预期执行时间)外,还取决于上游任务的完成时间(即下游任务实际执行时间还取决于上游任务的定时时间)。若上游任务未完成运行,即便下游任务的定时时间早于上游任务,下游任务也不会运行。任务运行条件,详情请参见任务运行诊断

配置调度依赖

DataWorks任务依赖最终是为了保障下游取数无误,实际是上下游表数据的血缘依赖。您可根据业务需求,选择是否需要基于表的血缘关系配置调度依赖。节点的调度依赖配置流程如下。

image

由于节点依赖关系配置后,默认节点的上下游产出表存在强依赖关系(即下游表数据的产出需要依赖上游产出的表数据),因此,任务在配置调度依赖时,需确认是否存在强血缘依赖,即确认当前任务是否会因为上游数据未产出而导致当前任务取数出现问题。若下游节点中表数据的产出,需依赖上游节点产出的表数据,则认为上下游节点的表存在强血缘依赖关系。

序号

说明

序号

说明

为避免当前任务执行时间不符合预期,您可先评估表之间是否存在强依赖关系,确认是否需要基于血缘关系配置调度依赖。

确认当前场景是否为周期调度任务产出的表数据。不在DataWorks周期调度产出的表数据,DataWorks无法通过任务运行情况监控数据产出,因此,部分表不支持配置调度依赖。

DataWorks周期性调度产出数据的表包括但不限于以下几类:

  • 实时同步产出的表

  • 从本地上传到DataWorks的表

  • 维表

  • 手动任务产出的表

  • DataWorks上调度节点产出的周期性变更的表

③④

根据需要依赖上游昨天还是今天的数据、小时分钟任务是否要依赖自己上一个小时或分钟实例,来选择依赖上游同周期还是上一周期

  • 同周期调度依赖:下游依赖上游今天产出的表数据。

  • 上一周期调度依赖(跨周期依赖):

    • 下游依赖上游昨天产出的表数据。

    • 小时、分钟任务特殊依赖场景:

      • 依赖自己上一个小时或分钟的周期实例数据,可设置跨周期依赖。

      • 小时任务依赖小时任务,如果上下游的定时时间完全相同,设置跨周期依赖可以实现下游2点的实例依赖上游1点的实例。分钟任务依赖分钟任务,原理相同。

说明

根据血缘配置时,调度依赖场景选择配置细节,请参见调度依赖方式选择(同周期依赖)

⑤⑥⑦

依赖关系配置完成并发布生产后,可在运维中心周期任务中查看任务依赖关系是否符合预期。

自定义节点配置依赖

DataWorks上任务间不存在强血缘依赖(例如,不强依赖上游某个分区数据,仅取上游当前时间点最大分区数据),或依赖的数据非周期调度节点产出的表数据(例如,本地上传的表数据),则您可自定义节点的依赖关系。自定义依赖配置具体如下:

  • 依赖工作空间根节点

    例如,同步任务中的上游数据来源于其他业务数据库,SQL类型任务对实时同步任务产出的表数据进行加工等场景,您可直接选择挂载依赖至工作空间根节点下。

  • 依赖虚拟节点

    当工作空间中业务流程较多或较复杂时,您可通过虚拟节点管理该业务流程,将需要统一管控的节点挂载依赖至某虚拟节点,使工作空间下数据流转路径更加清晰。例如,控制业务流程整体调度时间、控制业务流程整体调度与冻结(即不调度)。

节点输出参数

在上游节点定义输出参数及其取值后,在下游节点定义输入参数(取值引用上游节点的输出参数),即可在下游节点中使用此参数获取上游节点传递过来的取值。

注意事项

  • 节点输出参数仅作为下游节点的输入参数(在下游节点调度参数区域添加参数,通过参数操作列的image关联上游参数),部分节点无法直接将上游节点的查询结果传递到下游,如果您需要将上游节点的查询结果传递到下游节点,可以使用赋值节点,详情可参见文档:赋值节点

  • 支持节点输出参数的节点为:EMR HiveEMR Spark SQLODPS ScriptHologres SQLAnalyticDB for PostgreSQLMySQL节点。

配置节点输出参数

节点输出参数的取值分为常量变量两种类型。

完成输出参数的定义并提交当前节点后,即可在下游节点配置调度参数时,绑定上游节点的输出参数作为下游节点的输入参数。

image

  • 参数名:定义的输出参数名称。

  • 参数值:输出参数的取值。取值类型包括常量和变量:

    • 常量为固定字符串。

    • 变量包括系统支持的全局变量、调度内置参数、自定义参数。

附录参考

  • 本页导读 (1)
  • 前提条件
  • 注意事项
  • 进入调度配置页面
  • 配置节点调度属性
  • (可选)调度参数
  • 调度策略
  • 调度时间
  • 调度依赖
  • 节点输出参数
  • 附录参考