全局变量

更新时间:
复制 MD 格式

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

使用方法

  1. 配置全局变量。

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

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

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

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

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

  1. 创建工作流。

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

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

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

  3. 使用全局变量。

    修改SQL脚本,在需要使用全局变量的位置填入${para1},即可引用该变量。

    在SQL脚本-1的SQL编辑器中,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. 单击页面上方的运维中心,查看机器学习任务的运行情况和操作日志。

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

相关文档