全局变量

更新时间:
复制为 MD 格式

在工作流中使用全局变量可以减少重复参数的配置,常用于在线工作流以及DataWorks离线调度工作流。在在线工作流中,全局变量使多个组件能够共享相同的参数,而在DataWorks的离线调度中,则用于替换定时调度参数,从而提升工作流的灵活性和效率。

使用方法

  1. 配置全局变量。

    进入已创建的工作流,单击画布空白处,在界面右侧新建全局变量。

    全局变量的引用方式为 ${变量名}。变量名仅允许输入1-20个字符,必须以字母开头,只能包含字母、下划线和数字。全局变量用于离线调度时需要在离线调度配置同名变量,此处填写的变量值仅用于在线运行实验。

  2. 在使用全局变量处输入${变量名},即可引用该变量。

使用示例1:在线工作流使用全局变量

本例通过设置全局变量para1,将表中的列名status更改为ifHealth并在SQL脚本中进行引用。

  1. 创建工作流

    本例以预置模板“心脏病预测案例”为例创建工作流,创建完成后,仅保留前两个节点,并删除其余的节点。

  2. 单击画布空白处,在界面右侧新建全局变量。

    配置的全局变量名为para1 ,值为ifHealth

  3. 使用全局变量。

    修改SQL脚本,将使用全局变量处替换为${para1},引用该变量。

    SQL脚本-1SQL编辑器中,SELECT语句末尾使用 ${para1} 作为输出列别名,FROM子句使用 ${t1} 引用输入源 读数据表-1。同时勾选 是否由系统添加Create Table语句,此时最后一句必须为SELECT语句。

  4. 运行工作流。

    待运行结束,右击组件SQL脚本,选择查看数据 > SQL脚本的输出,可以看到列名status已经改为ifHealth

使用示例2:DataWorks离线调度工作流时使用全局变量

本例通过设置全局变量gDate,将定时调度的工作流与日期进行关联,然后在DataWorks上设置同名调度参数进行调度。

  1. 创建测试数据表。

    本例以在MaxCompute控制台上创建一个名为dwtest的表(详见下表)为例。具体操作,请参见SQL参考

    dwtest 表包含四列:t1(数值,示例值 1.0、0.0、1.2、0.1)、t2(数值,示例值 1.1、1.0、0.0、0.1)、label(字符串,示例值 A、B、C、D、E、F)、ds(日期分区,示例值 20190519、20190520),共 10 行测试数据。

  2. 创建工作流并配置全局变量。

    1. 单击画布空白处,在界面右侧新建全局变量gDate

      变量值设置为 20190520

    2. 配置工作流组件。

      image

      • 读数据表:表名配置为上述创建的表dwtest。

      • SQL脚本:在SQL脚本中使用上述配置的全局变量gDate

        select * from ${t1} where ds=${gDate}
  3. 运行工作流。

    待运行结束,右击组件SQL脚本,选择查看数据 > SQL脚本的输出,可以看到查询的全局变量gDate对应的数据。

    查询结果中,ds 列的值为 20190520,即全局变量 gDate 对应的分区日期值,说明全局变量已成功传入。

  4. 单击画布左上方的周期性调度,再单击新建调度节点,跳转到DataWorks进行离线调度,在新建节点对话框配置节点名称,单击确认

  5. 选择PAI Designer实验,然后单击画面右侧的调度配置。具体配置详情,请参见节点调度配置

    本示例配置如下,其余保持默认配置:

    • 调度参数:新增同名调度参数gDate,值为$bizdate

    • 时间属性:重跑属性配置为运行成功或失败后皆可重跑。

    • 调度依赖:依赖的上游节点为使用工作空间根节点。

  6. 单击工具栏中的保存提交图标,根据界面提示,保存并提交节点。

  7. 单击页面上方的运维中心,查看机器学习任务的运行情况和操作日志。

    您也可以直接进行补数据、工作流试跑等操作,详情请参见管理周期任务

相关文档