跳到正文
八一菜刀
返回

Kettle实战100篇 第25篇 作业核心对象设置变量组件

我们在很多场景下都需要用到设置变量组件,比如在分页查询数据时,然后分批次写入数据时,都需要事先定义好变量,一般作为作业中起始组件,设置变量的作业举足轻重,这考验你在一个完成的ETL过程中的逻辑能力,你的ETL是否能正常完美的执行,和开始设置的变量有很重要的关系.

作业中的设置变量组件如下:

我们可以通过设置变量组件中的变量以.properties文件的方式引入

可以指定属性文件名为F:\bak\testkettlevariable.properties

然后在指定我们的变量名范围,那么我们接下来的整个ETL过程中都可以使用该变量

使用文件的方式引入变量如下:

我们在配置文件中设置我们的变量,如下图:

我们的JavaScript脚本中打印出变量,脚本内容如下:

var name=parent_job.getVariable("TEST_NAME");

var version=parent_job.getVariable("TEST_VERSION");

var subject="自定义日志输出";
//实例化工厂类
var logFactory = new org.pentaho.di.core.logging.LogChannelFactory();
//实例化日志channel对象
var log= logFactory.create(subject);
//日志输出
log.logMinimal("name:"+name+",version:"+version);

true;

脚本内容很简单,获取我们在文件中定义的变量,然后通过日志输出,最后运行,控制台打印如下:

因为我们是在脚本中使用,使用的是Kettle的内置对象parent_jobgetVariable方法拿到当前ETL中的变量,如果在后面组件中,可以是拥有$符号的输入框中通过${variable_name}来引用,或者使用%variableName%

另外,我们在组件中也可以看到组件的作用范围,主要有四种:


分享文章:

上一篇
Kettle实战100篇 第26篇 生产环境部署Pentaho
下一篇
Kettle实战100篇 第24篇 日志报表输出