kettle 脚本 java_kettle调用自定义Java代码

本文介绍了如何在Kettle中通过编写Java类并将其打包成JAR,来调用自定义的Java代码处理数据。具体步骤包括创建自定义处理类、将JAR放入Kettle lib目录、在Java代码控件中编写调用逻辑,并演示了如何读取、处理及输出数据。
摘要由CSDN通过智能技术生成

有时候需要对Kettle抽取过来的数据进行加解密或者其他一些自定义的操作,Kettle本身有对称加密和解密的功能,但由于有时候需要自定义,所以还是提供了调用外部接口的能力。

新建一个自定义处理的JAVA类,例如:

package test;

public class Test{

public static final String getMyName(String name){

//your code

return name;

}

}

处理好你的逻辑以后,打包成一个JAR包,放到KEttl的 lib目录里面,然后 在Java代码控件填写调用逻辑

import test.Test;

public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException

{

Object[] r = getRow();

if (r == null) {

setOutputDone();

return false;

}

if (first)

{

first = false;

}

// It is always safest to call createOutputRow() to ensure that your output row's Object[] is large

// enough to handle any new fields you are creating in this step.

//r = createOutputRow(r, outputRowSize);

/* TODO: Your code here. (See Sample)

/ Get the value from an input field

String foobar = get(Fields.In, "a_fieldname").getString(r);

foobar += "bar";

// Set a value in a new output field

get(Fields.Out, "output_fieldname").setValue(r, foobar);

*/

//调用jar

String name= get(Fields.In, "ENAME").getString(r); //输入参数

name= Test.getMyName(name);

get(Fields.Out, "ENAME").setValue(r, name);

//获取参数

String AGEField = getParameter("AGE");

get(Fields.Out, "AGE").setValue(r, AGEField); //输出参数

// Send the row on to the next step.

putRow(data.outputRowMeta, r);

return true;

}

运行转换测试数据是否正确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值