设置变量

设置变量组件可以在作业的维度内设置一个变量值。位于“设置变量”组件所在ETL任务之后的其他ETL任务(同一作业内)或Shell任务(同一作业内)如果使用了“变量替换”功能,那么该任务内支持变量替换的参数都会在运行时被替换为“设置变量”组件中设置的同名变量值;同时,同一作业内“设置变量”组件之后的其它类型任务,所有占位符“${}”修饰的变量都会被自动替换。

操作步骤

  1. 双击画布中的设置变量组件,弹出设置变量窗口。

  1. 输入步骤名称,名称要求为非空,250个字符。

  1. 配置需要设置变量的字段及其对应的变量名。

  1. 单击<确定>按钮完成配置。

参数说明

设置变量功能使用示例

1.      使用场景

ETL任务中使用表抽取或执行SQL组件,设计SQL语句时使用了参数名称占位,期望在运行时自动获取相应参数的值,以实现不修改ETL任务的情况下动态生成符合需求的SQL语句。

2.      使用示例

  1. 在作业中新建ETL任务“表抽取-设置变量”,实现的功能是:使用“表抽取”组件从表中查询最大的ID,然后使用“设置变量”组件将该值赋值给变量CUR_MAX_ID

 

其中,“表抽取”组件配置信息如下:

 

“设置变量”组件配置信息如下:

 

  1. 新建ETL任务“执行SQL-使用变量替换”,实现的功能是:更新数据库student表中ID大于‘${CUR_MAX_ID}’的数据memo字段的值,这里的SQL语句使用了变量名称占位,且开启了“变量替换”功能。

 

“执行SQL”组件配置信息如下:

 

  1. 在作业中将上述两个ETL任务串起来。

“设置变量”组件只能在作业维度上设置变量值。涉及到变量替换的业务场景中,必须将设置变量步骤放在使用变量之前。使用规范:设置变量的过程单独创建一个ETL任务,所有使用了变量替换功能的ETL任务或Shell任务串接在设置变量任务之后。