配置并使用调度参数

在数据工作流中,任务代码(如SQL)通常需要根据调度时间动态改变,以处理不同日期的数据分区。为避免手动修改代码,可以使用调度参数。通过在代码中预设占位符,任务调度时系统会自动将占位符替换为业务日期、定时运行时间等动态值,实现工作流的自动化与参数化运行。

核心配置流程

使用调度参数需要定义调度参数,并在调度配置中为调度参数进行赋值。在数据开发测试无误后,将含有调度参数的代码提交至运维中心,由系统进行自动调度并根据赋值逻辑动态替换调度参数的值。

步骤

动作

核心目标

1. 定义参数

在节点代码中,使用 ${param} 格式定义一个或多个参数。

为动态值预留一个占位符。

2. 配置参数

在节点的调度配置 > 调度参数面板,为代码中的变量赋值。

将占位符${param}与具体的调度参数(如$bizdate$[yyyymmdd-1])等关联起来。

3. 测试

使用冒烟测试功能,模拟特定业务日期,验证参数替换和代码执行的正确性。

在开发环境确保配置无误。

4. 发布与验证

将节点提交到生产环境,并在运维中心确认最终的参数配置。

确保线上任务的参数符合预期。

使用步骤

一、定义参数

image

  1. 双击目标节点,如ODPS SQL节点,进入节点编辑界面。

  2. 在代码中定义参数:在ODPS SQL节点或其他SQL节点代码中,使用 ${param} 语法定义一个参数名。DataWorks推荐使用有意义的参数名,方便后期查阅和管理。

    调度参数调用格式:

    格式类型

    调用语法

    适用范围

    备注

    通用格式

    ${参数名}

    适用于绝大多数节点类型,如 ODPS SQL、数据同步节点等。

    这是最常用格式。

    特殊格式

    因节点而异,非 ${...} 格式。

    PyODPS、Shell

    详情请参考:各类型节点的调度参数配置示例

    -- 示例:定义一个名为pt_date的变量,用于分区过滤
    SELECT * FROM my_table WHERE ds = '${pt_date}'; 
  3. 单击界面右侧的调度配置,进入调度参数配置。

  4. 配置调度参数,配置方式见下文。

二、配置参数

支持通过可视化定义用表达式定义两种方式设置调度参数,可以通过参数列表右上角的用表达式定义进行切换,默认为可视化定义模式。

  1. 配置参数

    可视化定义

    单击节点右侧的调度配置,进入调度参数配置界面。

    image

    • 新增参数

      单击节点右侧的调度配置,在调度参数中添加参数。支持以下两种参数的添加方式。

      1. 单击新增参数,手动填写参数的参数名和参数值。注意参数名需与代码中定义的变量名保持一致。

      2. 单击加载代码中的参数,DataWorks将自动解析上文代码中的变量,如${pt_date},并回填,您只需填写参数值即可。

    • 参数赋值

      支持设置系统内置变量、自定义时间变量和常量。

      • 单击输入框,下拉列表中,展示了部分常用的参数表达式,可以直接选用。可支持手动输入自定义表达式或者系统内置变量。

      • 支持根据业务需要填写,参数值支持的范围详见:调度参数支持的格式

    用表达式定义

    单击用表达式定义,切换配置模式。如果您更习惯表达式方式配置参数,可以使用该模式。

    image

    • 使用表达式定义时,多个参数之间使用空格分隔。

    • 当通过用表达式定义方式,添加、删除或修改调度参数时,DataWorks会对当前表达式的语法进行校验,校验不通过则无法配置相应调度参数。

      例如,DataWorks会对等号左右不允许使用空格等语法规则进行检测。

  2. 参数预览

    参数定义完成后,单击调度参数预览,查看调度参数在指定业务日期后N个实例的参数预览效果,测试参数定义是否符合预期。支持调整业务日期和实例预览个数。

    image

说明

此处部分节点如离线同步会自带${bizdate}参数,该参数名自动赋值为$bizdate,您可替换代码中bizdate参数名为自定义的参数名。${bizdate}本身无特殊含义,与其他自定义参数相同。

image

三、冒烟测试

调度参数赋值完成后,建议通过冒烟测试功能,配置业务日期,模拟目标任务的调度场景,验证该场景下代码执行及调度参数的替换是否符合预期。若不符合预期,请根据需要及时调整,以免影响任务正常调度运行。

执行冒烟测试会产生相应实例产生实例费用。实例的费用详情请参见Serverless资源组计费
  1. 提交节点代码。

    1. 配置调度时间调度依赖

    2. 单击保存保存,保存代码和配置后,单击提交提交按钮,提交当节点最新代码提交至运维中心后,才可在开发环境使用冒烟测试功能。

      说明

      若发现冒烟测试时执行的不是最新的代码或者参数,请重新提交节点。

  2. 执行冒烟测试。

    单击工具栏的image冒烟测试按钮,在冒烟测试弹窗中选择业务日期,单击确认,开始进行冒烟测试。

  3. 查看冒烟测试日志。

    1. 在弹出的冒烟测试记录窗口中,找到最新的记录,单击查看日志

      image

    2. 在日志中检查参数打印情况,确认是否符合预期。

      说明

      若不慎关闭窗口,可点击工具栏的image冒烟测试记录按钮重新打开。

重要

运行image与高级运行image功能需手动为代码中的变量赋值常量,因此无法校验配置的调度参数是否符合预期。

四、发布与验证

在开发环境验证完成后,任务可以提交发布至运维中心,正式提交生产,进行自动调度。任务发布后,请务必检查生产环境的调度参数,以防运行出错。

说明

如果周期任务的调度参数配置不符合预期,或运维中心搜索不到目标任务,请确认该任务是否发布成功。任务的发布操作,详情请参见发布任务

  1. 检查参数定义。

    进入运维中心,切换目标地域和工作空间,进入周期任务运维 > 周期任务界面。在任务列表中单击任务名称,查看任务的属性面板中的执行参数是否符合预期。

    image

  2. 运维中心冒烟测试。

    在运维中心也可以通过冒烟测试,来确认已提交发布的任务在生产环境下,是否按照预期进行参数替换和代码执行。详情参见:执行测试并查看测试实例

    重要

    需要注意的是,冒烟测试会真实执行生产环境的数据,请谨慎执行,避免对生产库的数据造成污染。

    image

  3. 实际调度结果观测。

    待任务进入自动调度后,可以通过查看周期实例中的参数是否已经按要求自动替换来进一步验证替换参数是否正确。

    image

完整配置示例

本文以ODPS SQL节点为例,通过在开发环境执行冒烟测试功能测试配置的调度参数是否符合预期,并在任务发布后,查看生产运维中心中该任务的调度参数配置情况。

说明

各类型节点的调度参数配置,详情请参见各类型节点的调度参数配置示例

  1. 编辑节点代码并配置调度参数。

    ODPS SQL节点的代码及调度参数的配置情况如下图所示。节点代码及参数配置

    1. 代码中定义变量。

      --赋值系统内置参数
      SELECT '${var1}';
      SELECT '${var2}';
      --赋值自定义参数
      SELECT '${var3}';
      SELECT '${var4}';
      --赋值常量
      SELECT '${var5}';
    2. 为变量赋值。

      调度配置 > 调度参数区域,为变量赋值(如区域2)。更多赋值格式参见:调度参数支持的格式

      • var1=$bizdate,即取yyyymmdd格式的业务日期。

      • var2=$cyctime,即取yyyymmddhh24miss格式的任务定时运行时间。

      • var3=${yyyymmdd},即取yyyymmdd格式的业务日期。

      • var4=$[yyyymmddhh24miss],即取yyyymmddhh24miss格式的任务定时运行时间。

      • var5=杭州,即设置var5的值为常量,杭州。

    3. 可选:配置调度时间。

      配置ODPS SQL节点的调度周期为小时调度(如区域3)。

      说明

      您可以根据实际情况选择是否配置时间周期,本文以添加时间周期示例。

      • 调度开始时间为16:00

      • 调度结束时间为23:59

      • 调度时间间隔为1小时。

      更多时间周期配置,详情请参见时间属性配置说明

    4. 设置调度依赖。

      为开发节点配置调度依赖。详见:配置调度依赖。此处使用根节点作为本节点的上游依赖。

      image

  2. 在节点编辑页面的顶部工具栏,单击保存提交图标,保存并提交ODPS SQL节点的配置。

  3. 执行开发环境冒烟测试。

    1. 单击开发环境冒烟测试图标,在开发环境测试对话框配置业务时间,模拟节点的调度周期。

      配置业务时间业务时间配置如下:

      • 业务日期:2025-10-16

      • 开始时间:16:00

      • 结束时间:17:00

      ODPS SQL任务为小时调度任务,则该任务在业务日期:2025-10-1716:0017:00时间会生成两个实例。

      说明

      因为业务日期为运行日期的前一天,因此,任务实际运行日期为2025-10-17

      16:00节点预期的取值结果如下:

      • var1=20251016

      • var2=20251017160000

      • var3=20251016

      • var4=20251017160000

      17:00节点预期的取值结果如下:

      • var1=20251016

      • var2=20251017170000

      • var3=20251016

      • var4=20251017170000

    2. 单击确认,节点按照指定时间启动运行。

    3. 运行时间结束后,单击查看冒烟测试日志图标,查看冒烟测试日志。

      节点生成的两个实例运行成功,且节点运行结果符合预期。

      image

      image

      image

  4. 若当前工作空间为标准模式,需要将节点发布至生产环境。在ODPS SQL节点编辑页面,单击顶部菜单栏右侧的发布,发布当前节点。任务的发布操作见:节点发布

  5. 进入运维中心,确认节点的调度参数配置。

    生产环境参数配置

    1. 单击DataStudio顶部菜单栏右侧的运维中心,进入运维中心页面。

    2. 周期任务运维 > 周期任务界面,搜索目标节点。

      说明

      节点发布成功后,您才能在周期任务界面搜索到。

    3. 单击目标节点名称,在属性中查看执行参数

      本次示例中,节点的执行参数为var1=$bizdate var2=$cyctime var3=${yyyymmdd} var4=$[yyyymmddhh24miss],符合预期。

    4. 观察实例实际替换情况。等待调度实例生成之后,单击周期实例菜单,搜索任务名称,单击任务实例名称,在属性中查看执行参数

      本次示例中,节点的执行参数为var1=20251016 var2=20251017160000 var3=20251016 var4=20251017160000,符合预期。

相关文档