Kettle 中的 JavaScript代码插件使用了JDK1.6中对脚本语言的支持功能(Scripting API), Sun的JDK6实现包含了一个基于Mozilla Rhino的脚本语言引擎,支持JavaScript, Scripting API通过实际调用Rhino引擎来执行Java Script。在jdk环境中写代码的话, 需要使用JDK Scripting API显式的执行js代码(js代码被放在一个String里), 而在Kettle的插件界面里面是直接写js代码 (就类似于Rhino在交互界面下面,直接写JS),Kettle后台会通过 JDK的Scripting API进行执行。
Kettle中JS调用Java的具体语法具体可以参考 :Rhino详解:Java与JS互操作
JDK 1.6对Rhino的整合可以参考:JDK1.6对脚本语言的支持(Mozilla Rhino)
Kettle示例:1. 总的转换过程
2. 生成记录步骤
3. 使用JavaScript代码插件合并name和age列,并增加一个时间后缀
//Script here
var sdf = new Packages.java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
var curDate = sdf.format(new Packages.java.util.Date());
var mergeColumn = name + "***" + age + "***" + curDate;
4. 输出字段
如果步骤3修改如下:(用mergeColumn列替换原先的name列)
那么步骤4字段输出如下:(name列的输出就是原先的name和age的合并值加时间后缀)