kettle转换中使用javascript例子整理(1)

原创 2014年09月24日 17:14:49

这些例子在(\data-integration\samples\transformations目录下)

1 JavaScript - Access database connection metadata.ktr(访问数据库连接)







var db = _step_.getTransMeta().findDatabase("db_mysql_etltest_repository_4.2");//db_mysql_etltest_repository_4.2,是自己起的名字,是在数据库连接的时候连接名

var url = db.getURL();

var hostname = db.getHostname();

文本文件中的输出:

url:jdbc:mysql://localhost:3306/etltest_repository4_2?defaultFetchSize=500&useCursorFetch=true 

hostname:localhost 


2 JavaScript - Access environment variables.ktr(访问环境变量,参数与变量相同)



var v1 = getVariable("VAR1", "啊啊啊啊");//第二个参数表示为空时默认取值

var v2 = getVariable("java.io.tmpdir", "");

 

文本文件输出

v1@v2

呵呵@C:\Users\ADMINI~1\AppData\Local\Temp\

3 JavaScript - Add 2 and a half seconds to a Date.ktr(时间相加)





var thenInt = now.getInteger()+2500;//ms

var then = newjava.util.Date( thenInt );

文本文件输出:

now@thenInt@then

2014/09/23 14:09:40.653@ 1411452583153@2014/09/23 14:09:43.153


4 JavaScript - Base64 Decoder and Encoder.ktr(64位解码、编码)





var bytes = Packages.org.apache.commons.codec.binary.Base64.decodeBase64( F1.getString().getBytes() );

var decString =new Packages.java.lang.String( bytes );//64位解码器

//编码器

var encString =new Packages.java.lang.String( Packages.org.apache.commons.codec.binary.Base64.encodeBase64( decString.getBytes() ) );

文本文件输出:

F1@decString@bytes@encString

VGV4dCBmaWxlIGlucHV0  @Text file input  @"[B@43e76d"@VGV4dCBmaWxlIGlucHV0 

5 (重)JavaScript -create new rows.ktr(创建新的行)






if (groupsField!=null)

{

  var groups = groupsField.split(",");

  for (i=0;i<groups.length;i++)

  {

    newRow = createRowCopy(getOutputRowMeta().size());//新的一行,输出的列数

    var rowIndex = getInputRowMeta().size();//输入的列数

    newRow[rowIndex++] = trim( groups[i] );//对应列的值

    newRow[rowIndex++] = "N";

    putRow(newRow);//输出该行

  }

}

var subgroup = "";//对应上面的列名

var ignore = "Y";//对应上面的列名


文本文件输出:

member@groupsField@subgroup@ignore

Member 2 @Group1, Group2                @Group1@N

Member 2 @Group1, Group2                @Group2@N

Member 1 @Group1, Group2, Group3, Group4  @Group1@N

Member 1 @Group1, Group2, Group3, Group4  @Group2@N

Member 1 @Group1, Group2, Group3, Group4  @Group3@N

Member 1 @Group1, Group2, Group3, Group4  @Group4@N

 

6 JavaScript - date to string conversion.ktr(日期->字符串)





var datString =date2str(datOriginal, "yyyy**MM**dd hh&&mm&&ss#SSS");

// other date formats can be found in the manual searching for "date formats"

// remeber to change to length below of datString if you change the format

文本文件输出:

datOriginal@datString

2007/01/27 00:00:00.000@2007**01**27 12&&00&&00#000 




在kettle里编写javascript代码操作数据

在kettle里面编写javascript可以简化我们的操作,kettle使用的是Mozilla的rhino,javascript的返回必须在下方定义,点击获取变量即可定义,也可以手动编辑定义变量。...
  • wjs3238090
  • wjs3238090
  • 2015年01月27日 16:23
  • 8847

Kettle_js脚本_示例

一,String function 1 .date2str //js操作时间 var dValue = new Date(); //把时间变成字符串 var dValue1 = date2str(dV...
  • God_Father_kao
  • God_Father_kao
  • 2017年04月22日 09:33
  • 2883

Kettle与动态转换(JavaScript脚本)

Kettle使用的是JavaScript来作为它的脚本实现,使用的是mozilla 的rhino 1.5r5版本实现,如果你打算实现一些复杂的计算过程,比如字符串分割,数据类型转换,条件计算等等,...
  • u011715213
  • u011715213
  • 2015年02月06日 11:04
  • 1242

KETTLE使用javascript步骤过滤特殊字符

使用kettle在抽取大量excel数据时,总是遇到excel中有一些特殊字符,导致ExecuteSQL script步骤执行失败,本文记录一些方法过滤一些特殊字符。同行有更好的方式实现,欢迎指点,共...
  • neweastsun
  • neweastsun
  • 2015年06月11日 07:50
  • 4132

Kettle 5.2中JavaScript代码插件的用法

Kettle 中的 JavaScript代码插件使用了JDK1.6中对脚本语言的支持功能, Sun的JDK6实现包含了一个基于Mozilla Rhino的脚本语言引擎,支持JavaScript, Ke...
  • gladmustang
  • gladmustang
  • 2014年11月30日 12:43
  • 3450

《使用javascript访问kettle内部组件》示例代码

  • 2014年10月08日 14:09
  • 3KB
  • 下载

kettle转换中使用javascript例子整理(2)

7(重) JavaScript -dialog.ktr(需要调用Java代码,有界面) // This JavaScript asks for a start and e...
  • man_earth
  • man_earth
  • 2014年10月27日 11:37
  • 3665

KETTLE 发送邮件乱码修正

KETTLE 在发送邮件的时候 出现乱码的情况,主要是出现在两个地方: 1) 发件人名称乱码 2) 附件名称乱码我用的是pentaho-kettle-5.4.0.1 版本, job的发送邮件部分...
  • mendan
  • mendan
  • 2015年09月28日 14:49
  • 2068

给大家说明。kettle中javascript步骤错误处理

javascript步骤错误处理          如果你熟悉kettle转换的错误特性,你可能想知道在javascript步骤如何使用。支持错误机制的步骤用户界面机制是相同的,在java...
  • w5223336
  • w5223336
  • 2014年10月23日 11:36
  • 3060

kettle中使用javascript步骤和fireToDB函数实现自定义数据库查询

kettle的javascript步骤自己写代码连接数据库,实现查询,更加灵活,一些业务场景中会用到。...
  • neweastsun
  • neweastsun
  • 2014年10月29日 08:50
  • 2976
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:kettle转换中使用javascript例子整理(1)
举报原因:
原因补充:

(最多只允许输入30个字)