若任务需要周期性调度运行,用户需定义该任务的调度相关属性,包括调度周期、调度依赖、调度参数等。

注意事项

  • 已开启工作空间调度开关。仅当 DataWorks 工作空间开启启用调度周期开关后,工作空间中的任务才可以根据其配置自动调度运行。
  • 任务的调度配置仅用于定义任务调度运行时的相关属性,任务需通过发布流程发布至生产环境后,才会根据该配置进行最终调度。
  • 调度时间仅定义任务预期执行时间,其实际执行时间还受上游依赖执行情况控制。
  • DataWorks 支持多种类型任务互相依赖。
  • DataWorks 上,调度任务会根据调度类型及周期数生成相应的实例(例如,小时调度任务每天会根据周期数产生相应数量的小时实例),并通过周期实例的方式自动调度运行该任务。
  • 在使用调度参数的情况下,DataWorks 调度任务各周期代码入参由该周期对应的定时时间以及您调度参数表达式最终决定。

配置节点调度属性

在节点的调度配置页面,您需根据下表配置节点的调度属性。

  • 基础属性
配置项 说明
基础属性 包括节点的名称、节点ID、节点类型、责任人等。
  • 节点ID:该节点的唯一标识,将在节点提交后生成
  • 责任人:默认为节点的创建人。您也可选择当前工作空间中的成员作为责任人。
  • 调度参数
配置项 说明
参数(可选) 用于定义节点调度时使用的参数。DataWorks 提供内置参数及自定义参数,可供任务在调度时实现参数动态赋值。
说明:若您在编辑节点代码时,在代码中定义了变量,需在此处对该变量进行赋值。
  • 时间属性

dataworks-schedule-13

配置项 说明
时间属性 DataWorks上任务调度将通过生成对应实例来执行,此处用于定义任务在生产环境的周期调度方式。
  • 实例生成方式:定义该任务在生产环境生成实例的时间。
  • 调度类型:定义该任务在生产环境的运行状态。
  • 调度日历:用于定义任务调度日期及调度方式。
  • 调度周期:定义该任务的调度频率,即多久执行一次任务。
  • 定时调度时间:定义该任务预期的运行时间。
  • 超时定义:定义该任务执行超过多长时间会自动退出。
  • 重跑属性:定义该任务自动调度时是否可重跑。
  • 出错自动重跑:定义该任务自动调度失败且可重跑时,自动重跑的频率。
  • 生效日期:定义该任务在什么时间段内调度。超过生效日期的任务将不再生成实例。
  • 资源属性

dataworks-schedule-14

配置项 说明
资源属性 用于定义该任务发布至生产环境调度运行时使用的调度资源组。
  • 调度依赖

dataworks-schedule-15

配置项 说明
调度依赖 用于定义该任务的上下游依赖关系。通过依赖关系有序调度运行上下游节点,即当上游节点运行成功后,下游节点才会启动运行,保障适时的产出有效业务数据。您可使用自动解析快速设置节点依赖,也可手动设置节点的依赖关系。
  • 当节点为业务流程的根节点,或该节点无其他节点依赖时,若您希望快速发布调度任务,可选择设置该节点依赖工作空间根节点。
  • 当业务流程包含多个输入或多个输出,或工作空间业务较复杂时,可选择使用虚拟节点统筹管理业务流程。例如,通过虚拟节点来控制该业务流程的调度时间。
说明:
  • 当您的节点属于同一个业务流程时,也可通过业务流程面板,使用手动拉线方式设置各个节点的依赖关系。
  • 工作空间创建成功后,平台将自动生成一个工作空间根节点(即Root虚拟节点)。通常,您可将该节点作为整体调度业务流程运行的起始节点。
  • 该节点的命名格式为工作空间名称_root
  • 该节点会在工作空间创建成功后的第二天00:00点定时运行。
  • 该节点运行时会空跑(即平台直接返回运行成功,不会真实执行任务),不占用调度资源,不收取任何费用。
    • 节点上下文

    dataworks-schedule-16

    配置项 说明
    节点上下文(可选) 用于定义上下游任务间的参数传递,定义后,可在下游节点中使用该参数获取上游节点传递过来的值。

    配置基础属性

    您可以在调度配置对话框查看调度节点的名称、节点ID、节点类型,并配置责任人、描述等基本信息。

    dataworks-schedule-11

    参数 描述
    名称 新建数据开发节点时输入的节点名称,不可以修改。
    节点ID 数据开发节点提交后会生成唯一的节点ID,不可以修改。
    节点类型 新建数据开发节点时选择的节点类型,不可以修改。
    责任人 数据开发节点的责任人。默认为当前登录用户,您也可以根据实际需求修改责任人
    说明:空间管理员可修改,且仅支持选择当前 DataWorks 工作空间中的成员为责任人。
    描述 调度节点的描述。通常用于呈现节点业务、用途等信息。

    配置调度参数

    dataworks-schedule-12

    调度参数支持的格式

    调度参数是 DataWorks 任务调度时使用的参数,可根据您配置的调度参数取值规则,在每次任务运行时自动替换为真实的取值,实现任务调度时间内参数的动态替换

    背景信息

    您可在代码中通过 ${变量名} 的方式定义变量,并在 调度配置 > 参数 界面,通过调度参数表达式为代码中的变量赋值,实现调度场景下的代码动态入参。部分节点的调度参数配置存在差异(例如,通用 Shell 节点中的变量只能以 $1、$2、$3... 命名)

    调度参数支持赋值常量,即每次进行任务调度时,该参数传入同一个值。如需在调度参数中为参数赋值常量,您可根据下图进行相应配置:

    dataworks-schedule-12-detail-01

    调度参数的相关概念

    调度参数通常会被用于指代某些动态时间的场景,此场景下,您可基于业务日期定时时间进行调度参数的取值设置。配置调度参数前,您可先了解这两个时间概念,便于后续设置调度参数取值。

    概念 描述
    业务日期 指昨天,在离线计算场景下,交易日期为业务发生的日期。DataWorks 默认取调度时间内,任务预期调度运行时间的前一天(即昨天)的日期为业务日期,精确到天。例如,今天统计前一天的营业额,此处的前一天,指交易发生的日期,也就是业务日期。
    定时时间 指今天,即某业务数据加工任务的预期执行时间。DataWorks 默认取调度时间内,任务预期调度运行的时间点(即今天)为定时时间,精确到秒。任务预期执行时间,与实际开始执行时间并非完全一致。任务实际开始执行时间受多方因素影响。

    调度参数支持的格式

    通常,调度参数用于获取不同的时间数据,您可根据业务需求,选择基于业务日期或定时时间获取相应时间数据。

    说明:DataWorks 提供了部分内置变量,其格式固定,为了使用更加灵活,建议您通过以下方式自定义时间格式。

    取值方式 参数格式 参数示例 相关参考
    基于业务日期获取时间数据。 通常,使用大括号 ${...},结合 yyyyyymmdd 自定义组合生成时间参数,获取业务日期前后多少年、月、天。
    说明:业务日期为定时时间所在日期-1。即 ${yyyymmdd} 的取值与 $[yyyymmdd-1] 取值一致。
    可通过 ${yyyymmdd}${yyyy-mm-dd}${...} 自定义时间格式获取,例如:
  • ${yyyymmdd±N}
  • ${yyyymmdd±7*N}
  • ${yy±N}
  • ${mm}
  • ${yyyy-mm-dd±N}
  • 更多赋值示例,请参见自定义参数 ${...}
    基于任务定时时间获取时间数据。 通常,使用中括号 $[...],结合 yyyyyymmddhh24miss 自定义组合生成时间参数,获取定时时间前后多少年、月、天、小时、分钟、秒。 可通过 $[yyyymmddhh24miss]$[...] 自定义时间格式获取。例如,取前一天的前一小时,参数表达式为 $[yyyymmdd-1-1/24]
  • 更多赋值示例,请参见自定义参数$[...]
  • 取多少小时、分钟,可能存在跨天问题,跨天时间的参数处理,详情请参见调度参数往前取一个小时,如何处理跨天参数替换的问题
  • 调度参数无法覆盖的场景(即通过上述表达式无法直接获取预期格式的参数赋值),您可先通过上述方式获取时间格式数据,再执行下表操作获取相应时间。

    场景示例 操作说明 相关参考
    通过引擎函数将时间格式的内容加工为时间戳。 在代码中使用引擎函数获取目标时间。 调度参数返回值二次处理的典型场景
    ${mm}01:获取每月1号。 通过纯字符串拼接,获取目标时间。

    使用调度参数的注意事项

  • ${…} 参数相关
  • 取 N 年前、N 月前的时间数据需使用 ${…} 参数。

  • ${…} 参数只能精确到年月日,因此 ${…} 参数不支持 ${yyyy-mm-dd-1/24} 用法。
  • 如需对年份、月份进行计算,建议使用 ${…} 参数。例如,${yyyy-N}${mm-N}
  • $[…] 参数相关
  • 取 N 小时前、N 分钟前的时间数据需使用 $[…] 参数。
  • $[…] 参数基于时分秒进行替换,无法根据 $[yyyy-N]$[mm-N] 时间格式获取多少年前、多少月前的时间数据。单独取年份、月份,请使用 ${…} 参数。
  • 如需获取精确到秒的时间数据时,建议使用 $[…] 参数。例如,$[yyyy-mm-dd-1-1/24]
  • $[...] 调度参数替换值不随实例实际运行时间改变。
  • $[...] 根据实例定时时间取值,调度参数替换值在实例生成时已确定,因此调度参数的替换值不会随着实例实际运行时间而改变。详情请参见附录:调度参数与业务日期、定时时间、实际运行时间的关系
  • ${bizdate} 变量名说明
  • 部分节点代码会自带一个 ${bizdate} 变量名,该变量名无特殊含义。您可根据业务需求自定义代码中的变量名。
  • 取小时、分钟时间的跨天问题处理
  • 取多少小时、分钟,可能存在跨天问题,跨天时间的参数处理,详情请参见调度参数往前取一个小时,如何处理跨天参数替换的问题

    附录:参数列表

    自定义参数 ${...}$[...] 的功能差异,详情请参见 ${…} 和 $[…] 参数的功能差异

    • 自定义参数 ${...}

    常用取值示例如下。

    基于业务日期加减周期 获取方式
    前/后 N 年 ${yyyy±N}
    前/后 N 月 ${yyyymm±N}
    前/后 N 周 ${yyyymmdd±7*N}
    前/后 N 天 ${yyyymmdd±N}
    年月日加/减 N 天 ${yyyymmdd±N}
    加/减 N 年(yyyy格式) ${yyyy±N}年
    加/减 N 年(yy格式) ${yy±N}年
    重要
  • 单独获取 多少月前多少年前 等时间数据,建议使用 ${...} 参数。
  • ${…} 参数仅支持对天、月、年时间进行加减。
    • 自定义参数 $[...]

    常用取值示例如下。

    基于定时时间加减周期 获取方式
    后 N 年 $[add_months(yyyymmdd,12*N)]
    前 N 年 $[add_months(yyyymmdd,-12*N)]
    后 N 月 $[add_months(yyyymmdd,N)]
    前 N 月 $[add_months(yyyymmdd,-N)]
    前/后 N 周 $[yyyymmdd±7*N]
    前/后 N 天 $[yyyymmdd±N]
    前/后 N 小时 获取该时间数据包含如下方式:
  • $[hh24miss±N/24]$[hh24±N/24]
  • $[自定义时间格式±N/24]
  • 取任务定时调度时间前一个小时的月份:$[mm-1/24]
  • 取任务定时调度时间前一个小时的年份:$[yyyy-1/24]
  • 取任务定时调度时间前一个小时的年月:$[yyyymm-1/24]
  • 取任务定时调度时间前一个小时的年月日:$[yyyymmdd-1/24]
  • 取任务定时调度时间前一个小时的前一天:$[yyyymmdd-1-1/24]
  • 前/后 N 分钟 获取该时间数据包含如下方式:
  • $[hh24miss±N/24/60]
  • $[yyyymmddhh24miss±N/24/60]
  • $[mi±N/24/60]
  • $[自定义时间格式±N/24/60]
  • 取任务定时调度时间15分钟前的年份:$[yyyy-15/24/60]
  • 取任务定时调度时间15分钟前的年月:$[yyyymm-15/24/60]
  • 取任务定时调度时间15分钟前的年月日:$[yyyymmdd-15/24/60]
  • 取任务定时调度时间15分钟前的小时:$[hh24-15/24/60]
  • 取任务定时调度时间15分钟前的分钟:$[mi-15/24/60]
  • 重要
  • 获取 多少小时多少分钟 前等时间数据请使用 $[...] 参数。
  • 调度参数替换值在实例生成时已经确定,因此调度参数的替换值不会随着实例实际运行时间而改变。

  • 基于如下调度任务设置,解析对应的参数。

    dataworks-schedule-17

    说明:当前时间为 2025年01月23日,任务每天 00:00 定时运行。

    参数格式 调度参数赋值 参数替换结果
    ${var1} var1=$cyctime var1=20250123000000
    ${var2} var2=$[mm-1/24] var2=01
    ${var3} var3=$[yyyy-1/24] var3=2025
    ${var4} var4=$[yyyymm-1/24] var4=202501
    ${var5} var5=$[yyyymmdd-1/24] var5=20250122
    ${var6} var6=$[yyyymmdd-1-1/24] var6=20250121
    ${var7} var7=$[yyyy-15/24/60] var7=2025
    ${var8} var8=$[yyyymm-15/24/60] var8=202501
    ${var9} var9=$[yyyymmdd-15/24/60] var9=20250122
    ${var10} var10=$[hh24-15/24/60] var10=23
    ${var11} var11=$[mi-15/24/60] var11=45
    • 系统内置参数

    DataWorks 支持下表的系统参数,可用于设置调度参数的取值。但该方式灵活性差,建议参考上文描述,使用自定义参数的方式设置调度参数取值。

    内置参数 定义
    $bizdate 业务日期,格式为 yyyymmdd,与自定义参数 ${yyyymmdd} 取值一致。该参数的应用较为广泛,日常调度中默认任务预期运行时间的前一天为业务日期。
    $cyctime 任务的定时时间,格式为 yyyymmddhh24miss,与自定义参数 $[yyyymmddhh24miss] 取值一致。
    $gmtdate 当前日期,格式为 yyyymmdd。该参数默认取当天日期,执行补数据操作时输入的日期为 业务日期+1。
    $bizmonth 业务月份,格式为 yyyymm
  • 如果业务日期的月份与当前月份一致,则 $bizmonth=业务日期月份-1
  • 如果业务日期的月份与当前月份不一致,则 $bizmonth=业务日期月份
  • $jobid 任务的定时时间,格式为 yyyymmddhh24miss,与自定义参数 $[yyyymmddhh24miss] 取值一致。
    $nodeid 节点 ID。
    $taskid 节点产生的实例 ID。

    附录:调度参数与业务日期、定时时间、实际运行时间的关系

    关系类别 说明及示例
    调度参数与实际运行时间的关系 调度参数替换值在实例生成时已确定,因此,调度参数的替换值不会随着实例实际运行时间的改变而发生变化。
    调度参数与任务定时时间的关系 当调度参数取小时、分钟时,参数替换值由实例的定时时间决定,即由节点调度配置的定时调度时间决定。调度参数与任务定时时间的关系例如,当前节点为小时调度节点,并且设置定时调度时间为 00:00~23:59,每小时调度一次,则:
  • 第一个小时实例定时时间为 0 点,小时的参数取值为 00。
  • 第二个小时实例定时时间为 1 点,小时的参数取值为 01。
  • 调度参数与业务日期、定时时间的关系 调度参数与业务日期、定时时间的关系

    自定义参数 ${…} 和 $[…] 的功能差异

    自定义参数分为系统内置参数、自定义参数 ${..}、自定义参数 $[...]、常量,不同类别的参数赋值格式及取值不同。本文为您介绍不同格式自定义参数的取值差异对比情况。

    不同格式自定义参数的应用对比

    以当前时间为 2021年11月01日,任务每天 00:00 定时运行,示例不同格式自定义参数的赋值情况,具体如下表。

    说明: 假设代码引用方式均为 pt=${datetime}

    参数格式 描述 调度参数赋值 参数替换结果
    ${yyyymmdd} 获取业务时间。 datetime=${yyyymmdd} datetime=20211031
    $[yyyymmddhh24miss] 获取定时时间,精确到秒。 datetime=$[yyyymmddhh24miss] datetime=20211101000000
    $bizdate 获取业务时间。 datetime=$bizdate datetime=20211031
    $cyctime 获取定时时间,精确到秒。 datetime=$cyctime datetime=20211101000000
    $gmtdate 获取当前时间,精确到天。 datetime=$gmtdate datetime=20211101
    $bizmonth 获取业务月份。 datetime=$bizmonth
  • 当业务时间与当前月份一致时,$bizmonth 的值为当前时间上个月的月份。
  • 当业务时间与当前月份不一致时,$bizmonth 的值为业务时间的月份。
  • 示例:当前时间为 2021年11月01日
  • 如果业务时间为 2021年11月02日(当前月份),则 datetime=202110
  • 如果业务时间为 2021年10月31日(非当前月份),则 datetime=202110
  • ${…} 和 $[…] 参数的功能差异

    ${…} 和 $[…] 参数的功能差异如下表所示。

    本文以 ODPS SQL 节点为例,假设当前时间为 2021年07月20日10时30分00秒,为您展示 ${…} 和 $[…] 参数的时间取值配置,具体如下表。

    时间取值 ${…} 参数 $[…] 参数
    取年份:2021
  • 调度参数赋值:datetime=${yyyy}
  • 代码引用:pt=${datetime}
  • 参数替换结果:pt=2021
  • 调度参数赋值:datetime=$[yyyy]
  • 代码引用:pt=${datetime}
  • 参数替换结果:pt=2021
  • 取年份:21
  • 调度参数赋值:datetime=${yy}
  • 代码引用:pt=${datetime}
  • 参数替换结果:pt=21
  • 调度参数赋值:datetime=$[yy]
  • 代码引用:pt=${datetime}
  • 参数替换结果:pt=21
  • 取年份:2020
  • 调度参数赋值:datetime=${yyyy-1}
  • 代码引用:pt=${datetime}
  • 参数替换结果:pt=2020
  • 不支持(详见调度参数注意事项
    取月份:07
  • 调度参数赋值:datetime=${mm}
  • 代码引用:pt='${datetime}'
  • 参数替换结果:pt='07'
  • 调度参数赋值:datetime=$[mm]
  • 代码引用:pt='${datetime}'
  • 参数替换结果:pt='07'
  • 取日期(天):20
  • 调度参数赋值:datetime=${dd}
  • 代码引用:pt=${datetime}
  • 参数替换结果:pt=20
  • 调度参数赋值:datetime=$[dd]
  • 代码引用:pt=${datetime}
  • 参数替换结果:pt=20
  • 取日期:2021-06-20
  • 调度参数赋值:datetime=${yyyy-mm-dd-29}
  • 代码引用:pt=${datetime}
  • 参数替换结果:pt=2021-06-20
  • 调度参数赋值:datetime=$[add_months(yyyy-mm-dd,-1)]
  • 代码引用:pt=${datetime}
  • 参数替换结果:pt=2021-06-20
  • 取日期:2021-07-19
  • 调度参数赋值:datetime=${yyyy-mm-dd}
  • 代码引用:pt=${datetime}
  • 参数替换结果:pt=2021-07-19
  • 调度参数赋值:datetime=$[yyyy-mm-dd-1]
  • 代码引用:pt=${datetime}
  • 参数替换结果:pt=2021-07-19
  • 取日期:2020-07-20
  • 调度参数赋值:datetime=${yyyy-mm-dd-364}
  • 代码引用:pt=${datetime}
  • 参数替换结果:pt=2020-07-20
  • 调度参数赋值:datetime=$[add_months(yyyy-mm-dd,-12*1)]
  • 代码引用:pt=${datetime}
  • 参数替换结果:pt=2020-07-20
  • 取时间:10:30:00 不支持
  • 调度参数赋值:datetime=$[hh24:mi:ss]
  • 代码引用:pt='${datetime}'
  • 参数替换结果:pt='10:30:00'
  • 取时间:2021-07-20 10:30:00 不支持 重要:调度参数赋值表达式中不支持空格,您可以使用两个调度参数,然后在代码引用时使用空格进行拼接。
  • 调度参数赋值:datetime1=$[yyyy-mm-dd] datetime2=$[hh24:mi:ss]
  • 代码引用:pt='${datetime1}' || ' ' || '${datetime2}'
  • 参数替换结果:
  • datetime1='2021-07-20'
  • datetime2='10:30:00'
  • pt='2021-07-20 10:30:00'
  • 取时间:2021-07-20 10:29:00 不支持
  • 调度参数赋值:datetime1=$[yyyy-mm-dd] datetime2=$[hh24:mi:ss-1/24/60]
  • 代码引用:pt='${datetime1}' || ' ' || '${datetime2}'
  • 参数替换结果:
  • datetime1='2021-07-20'
  • datetime2='10:29:00'
  • pt='2021-07-20 10:29:00'
  • 取时间:2021-07-20 09:30:00 不支持
  • 调度参数赋值:datetime1=$[yyyy-mm-dd] datetime2=$[hh24:mi:ss-1/24/60]
  • 代码引用:pt='${datetime1}' || ' ' || '${datetime2}'
  • 参数替换结果:
  • datetime1='2021-07-20'
  • datetime2='10:29:00'
  • pt='2021-07-20 10:29:00'
  • 取前一天时间,精确到秒,且年月日与时分秒之间无空格: 2021071910:30:00 不支持
  • 调度参数赋值:datetime=$[yyyymmddhh24miss-1]
  • 代码引用:pt='${datetime}'
  • 参数替换结果:
  • datetime='2021071910:30:00'
  • pt='2021071910:30:00'
  • 取前一天时间,精确到秒,且年月日与时分秒之间有空格: 20210719 10:30:00 不支持
  • 调度参数赋值:datetime1=$[yyyymmdd-1] datetime2=$[hh24:mi:ss]
  • 代码引用:pt='${datetime1}' || ' ' || '${datetime2}'
  • 参数替换结果:
  • datetime1='20210719'
  • datetime2='10:30:00'
  • pt='20210719 10:30:00'
  • 配置并使用调度参数

    调度参数是根据任务调度的业务时间及调度参数的取值格式自动替换为具体的值,实现在任务调度时间内参数的动态替换。本文为您介绍如何配置及使用调度参数,并以 ODPS SQL 节点为例,讲解调度参数配置完成后使用冒烟测试功能测试调度参数的替换情况。

    调度参数配置流程

    调度参数的配置流程如下表。

    序号 描述 相关参考
    1 您需在节点代码中通过 ${变量名} 的方式定义变量,再前往调度配置 > 参数 界面为变量赋值调度参数。 定义变量
    2 通过可视化及表达式两种方式为代码中的变量赋值。 为变量赋值调度参数
    3 通过调度参数预览功能,单独测试调度参数在调度场景下的替换情况。 测试调度参数替换情况
    4 通过开发环境冒烟测试功能,测试调度场景下代码执行与参数替换情况。 测试代码执行及调度参数替换情况
    5 测试通过后,任务发布至生产环境,您需在生产运维中心的周期任务界面,确认生产环境任务使用的调度参数是否符合预期。 确认生产环境任务的调度参数配置

    配置调度参数,并验证参数执行情况的完整示例,详情请参见完整配置示例。配置调度参数时的常见问题,请参见调度参数

    定义变量

    您可根据业务需求,参考下图步骤在代码中自定义变量,并在 调度配置 > 参数 中为变量赋值。

    说明: 部分节点会自带 ${bizdate} 变量名,该变量名自动赋值为 $bizdate,您可替换代码中 bizdate 变量名为自定义的变量名。

    dataworks-schedule-20

    为变量赋值调度参数

    测试调度参数替换情况

    测试代码执行及调度参数替换情况

    • 执行冒烟测试
    • 查看冒烟测试日志

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

    完整配置示例

    场景示例

    调度参数配置最佳实践

    • 参数介绍

    DataWorks 支持在代码中定义参数,并在调度配置中对参数进行赋值。赋值时支持赋值常量和调度时间表达式。

    定义参数的方法:在代码中可通过 ${参数名} 方式声明参数,在右侧调度配置中可使用常量或调度时间表达式给参数赋值。

    dataworks-schedule-18

    说明:Shell 及 PyODPS 声明参数的方法比较特殊,详情请参见不同类型节点调度参数配置示例

    • 系统调度参数

    bizdate 是 DataWorks 上的系统调度参数,当参数赋值为 =$bizdate 时,默认获取前一天的日期。

    参数定义 含义 日期格式 参考样例
    variate=$bizdate 获取业务日期。 yyyymmdd
  • 场景:天任务在2022年11月22日的1点执行
  • 赋值结果:variate=20221121
    • 自定义调度参数

    DataWorks 除系统调度参数外,还支持自定义调度参数。自定义调度参数有两种赋值模式,分别为 $[]${}

    参数定义 含义 支持的日期格式 参考样例
    variate1=$[yyyymmddhh24miss] 获取任务执行的定时时间,可精确到时、分、秒。 yyyy、yy、mm、dd、hh24、mi 及 ss。
  • 场景:天任务在2022年11月22日的1点执行。
  • 赋值结果:variate1=20221122010000
  • variate2=${yyyymmdd} 获取业务日期,只能精确到年、月、日。 yyyy、yy、mm 及 dd。
  • 场景:天任务在2022年11月22日的1点执行。
  • 赋值结果:variate2=20221121
  • 说明
  • 定时时间为用户设置的任务执行时间,非任务实际运行时间,定时时间的取值不会受任务实际运行时间的延迟而改变。
  • 时间格式中若存在空格,请使用两个调度参数进行拼接。

  • 各类型节点的调度参数配置示例

    除通用 Shell 节点、PyODPS 节点外,其他类型节点均可参考 SQL 类型节点(例如,ODPS SQL)的配置方式定义参数并为参数赋值。通用 Shell 节点、PyODPS 节点的调度参数使用存在部分差异。本文为您介绍各类型节点的调度参数配置示例。

    SQL类型节点及离线同步节点

    SQL 类型节点及离线同步节点的调度参数配置与多数类型节点的配置相似,可供多数节点参考使用。本文以 ODPS SQL 节点为例,为您展示如何为系统内置变量及自定义参数赋值,并在代码中进行调用。

    dataworks-schedule-19

    如上图,在参数赋值区域为参数赋值,然后进入代码调用区域引用系统内置变量 var1、var3,自定义参数 var2、var4,常量 var5。赋值示例如下:

    • 系统内置变量 var1 赋值取业务时间:var1=$bizdate
    • 系统内置变量 var3 赋值取任务定时时间:var3=$cyctime
    • 自定义参数 var2 赋值取业务时间:var2=${yyyymmdd}
    • 自定义参数 var4 赋值取定时时间:var4=$[yyyymmddhh24:mi:ss]
    • 常量 var5 参数赋值为 abc:var5=abc

    配置及使用调度参数,详情请参见配置并使用调度参数,更多调度参数的赋值方式,详情请参见调度参数支持的格式

    PyODPS节点

    为避免代码入侵,PyODPS 节点不支持在代码中直接使用 ${param_name} 格式的字符串替换定义的变量。执行代码前,您需要从类型为 dict(字典对象)的 args 全局变量中获取调度参数。

    dataworks-schedule-21

    如上图,在参数赋值区域为参数赋值,然后进入代码调用区域引用内置参数 var1,自定义参数 var2、var3。添加字典对象后的参数为 args['var1']args['var2']args['var3']。赋值示例如下:

    • 内置参数 var1 赋值取业务时间:var1=$bizdate
    • 自定义参数 var2 赋值取业务时间:var2=${yyyymmdd}
    • 自定义参数 var3 赋值取业务时间:var3=$[yyyymmdd]

    通用Shell节点配置示例

    通用 Shell 节点中的变量不允许自定义命名,只能以 $1、$2、$3... 命名(参数序号由小到大,依次递增),当参数的数量大于 10 时,请使用 ${10} 的方式声明变量。

    调度参数返回值二次处理的典型场景

    配置时间属性

    时间属性配置说明

    实例生成方式:发布后即时生成实例

    调度周期:分钟调度

    调度周期:小时调度

    调度周期:日调度

    调度周期:周调度

    调度周期:月调度

    调度周期:年调度

    场景:如何配置业务流程定时时间

    配置资源组

    常见问题

    提交节点

    调度参数

    参考资料

    节点调度配置

    调度配置最佳实践

    调度配置-调度参数常见问题

    原创文章,转载请注明出处:http://www.opcoder.cn/article/85/