更新时间:2024-04-29 GMT+08:00

脚本及作业中引用参数使用介绍

该章节介绍如何在脚本及作业中引用参数,以及引用后的生效范围、是否支持EL表达式和简易变量集等,让您更加清晰地了解工作空间级和脚本、作业级配置参数的使用方法。

环境变量、作业参数、脚本参数均可以配置参数,但作用范围不同;另外如果环境变量、作业参数、脚本参数同名冲突,调用的优先级顺序为:作业参数 > 环境变量参数 > 脚本参数

表1 参数的使用方法

类别

场景

生效范围

调用方法

环境变量/环境常量

配置作业参数时,当某参数隶属于多个作业时,可将此参数提取出来作为环境变量。

当前工作空间

${环境变量}

${环境常量}

配置方法请参考:环境变量

作业变量/作业常量

作业参数为作业级的参数,可用于作业中的任意节点。

当前作业

${作业变量}

${作业常量}

配置方法请参考:配置作业参数

脚本参数

配置自定义字段的参数名称和参数值。

当前脚本

${脚本参数}

配置方法请参考:脚本参数

SQL脚本的变量格式有${}和${dlf.}两种,支持用户根据实际情况进行配置。配置的变量格式会作用于SQL脚本、作业中SQL语句、单节点作业,环境变量。配置脚本变量格式的操作请参见脚本变量定义

系统默认脚本变量格式为${}。

环境变量

环境变量中支持定义变量和常量,环境变量的作用范围为当前工作空间。
  • 变量是指不同的空间下取值不同,需要重新配置值,比如“工作空间名称”变量,这个值在不同的空间下配置不一样,导出导入后需要重新进行配置。
  • 常量是指在不同的空间下都是一样的,导入的时候,不需要重新配置值。
图1 环境变量

具体应用如下:

在环境变量中已新增一个变量,“参数名”“sdqw”“参数值”“wqewqewqe”

  1. 打开一个已创建好的作业,从左侧节点库中拖拽一个“Create OBS”节点。
  2. 在节点属性页签中配置属性。

    图2 Create OBS

  3. 单击“保存”后,选择“前往监控”页面监控作业的运行情况。

配置作业参数

作业参数中支持定义参数和常量,作业参数的作用范围为当前作业。
  • 参数是指不同的作业下取值不同,需要重新配置值。
  • 常量是指在不同的作业下都是一样的,不需要重新配置值。
    图3 作业参数

    作业参数定义好之后,可以再作业节点里面引用该参数。

    图4 引用作业参数

脚本参数

  • 脚本参数支持如下使用方式,脚本参数的作用范围为当前脚本。
    • SQL脚本支持在脚本编辑器中直接输入参数(Flink SQL不支持),通过作业调度时可通过节点属性进行赋值,如2所示。
    • Shell脚本可以在编辑器上方配置参数和交互式参数以实现参数传递功能。
    • Python脚本支持参数传递功能。
    • SQL脚本支持在脚本编辑器中直接输入参数(Flink SQL不支持),脚本独立执行时可通过编辑器下方配置,如图5所示。
      图5 独立执行时的脚本参数

  1. 开发一个脚本。开发脚本时,脚本表达式里面必须包含变量(例如,SQL中变量是DATE,脚本中就写${DATE})。在作业参数配置里面,您可以在2中编写脚本参数DATE的语句表达式。
    “脚本开发”界面,在编辑器中输入开发语句,如下图所示。
    INSERT INTO B FROM (SELECT * FROM A WHERE DATE = ${DATE})
    图6 开发脚本

    脚本dws_030903编写完成后,保存并提交此脚本的最新版本。

  2. 开发一个批处理作业。开发作业时,您需要配置节点属性参数。

    在数据开发主界面的左侧导航栏,选择数据开发 > 作业开发

    图7 作业调度时的脚本参数

    • 如果作业所关联的SQL脚本如果使用了参数,此处显示脚本参数名称(例如DATA),请在参数名称后的输入框配置参数值。参数值支持使用EL表达式
    • 若关联的SQL脚本,脚本参数发生变化,可单击刷新按钮同步,也可以单击进行编辑。
    • 涉及脚本的节点均可以采用此方式引用脚本变量,如SQL脚本、Shell脚本和Python脚本。

简易变量集

简易变量集提供了一系列自定义的变量,自定义参数会根据任务调度的业务日期、计划时间及参数的取值格式自动替换为具体的值,实现在任务调度时间内参数的动态替换。简易变量集的详细内容请参见简易变量集参考