kettle 设置变量

以下只是本人在使用过程中一些经验,可能有误解不对的地方,希望大家指正。

这个控件可以在job中调用,也可以在transformation中使用。下面将分别说明在两个不同任务中调用时的使用方法和需要注意事项。

一、在job任务中使用

 

 

在job中设置变量一般都是设置全局变量,在不同转换间使用。首先需要Get System Info用来检索变量,因为我们一般会用来设置时间、路径等一些变量

 

系统进行检索

 

 

第一列选择变量名称,然后选择type找到你需要的类型。如果想把你的输入信息设置为变量,type应该选择command line argument 1.

双击Set Variables, 点击获取变量会获取到你定义的变量,以后调用时加上${变量名}就可以使用了。

 

设置变量名和值以及属性 

 

valid in the virtual machine: 整个虚拟机将知道这个变量

valid in the parent job:变量仅在父任务中可用

valid in the grand-parent job:变量仅在组父任务中可用

valid in the root job:变量仅在根任务中可用

 

注意事项:

1. 只接受一行(只能一行)数据来设置变量

2.在本转换中不能调用此变量,因为数据是并行传送的

 

二、在转换中设置字段为变量参数

 

新建设置参数的job 

 

指的是参数名和字段来源(就是想用来设置成变量的字段)
 
因为数据是一行一行传来,需要接受每一行数据,而不是只要第一行 
 
设置变量job里面的内容 

 

在这个job里面需要填写参数名,不然这个job将会获取不到上一步传过来的字段。

设置job里面的属性设置 

 

将输入字段设置为参数, value填写形式如下。

变量设置格式

 

后面就和全局变量一样可以调用了。

三、在转换中设置变量参数

设置常量或者路径为变量
 

如果设置参数值为常量或数字,则value可以直接,如上图5所示

如果设置路径作为变量(value里还可以包含变量值),如上6,7。注意的是在调用路径变量的时候加单引号‘’,我是在后面引用变量的时候加的,所以设置的时候没有加,当然也可以在设置value得时候就添加变量,那么在调用的时候就不需要添加单引号了。

posted @ 2017-11-08 11:33  郭雪原  阅读(18775)  评论(1编辑  收藏  举报