java怎么调kettle_java中调用kettle转换文件

本文介绍了如何在Java中无缝集成Kettle5.1进行数据转换。通过提供必需的jar文件,展示了一个将Excel内容导入数据库的样例代码,详细讲解了设置参数和执行转换的步骤。
摘要由CSDN通过智能技术生成

java中调用kettle转换文件

通过命令行也能够调用,然后java中调用命令行代码也能够。这样没有和java代码逻辑无缝集成。本文说明kettle5.1中假设通过其它API和java代码无缝集成;网上大多数资料都是低版本号的。在kettle5.x中已经不能执行。

1、       须要哪些jar文件

2e236bce5256f10035bef1eb2724460f.png

以kettle开头的是必须,上图最以下三个也要;红色框中的两个是我測试转换用到的。各自是生成UUID和文件。

要是少了jar文件,执行程序一定报错。大家依据错误到kettle安装文件夹LIB中找对应的jar加到编译路径中。

2、       演示样例说明怎样通过java调用转换

演示样例是把一个excel的内容导入到数据中。excel仅仅有两列,所以须要在kettle中生成一列uuid,然后导入到数据库中。

3e6654c37983afff773b1a3ec88801b2.png

默认生成的uuid有‘-’间隔符,所以通过“Replace in string”替换为空;

SouthEast

excel步骤,使用了命名參数,所以要在转换配置设置命名參数。

SouthEast

演示样例代码例如以下:

publicclass KettleUtil2 {

public String RES_DIR = "res";

private String fullFileName ;

public KettleUtil2(String fileName){

fullFileName = System.getProperty("user.dir") + File.separator + RES_DIR;

fullFileName += File.separator + fileName;

}

/**

* 没有參数是,设置參数为null

* @param paras

*/

publicvoid runTransformation(Map paras) {

try {

KettleEnvironment.init();

TransMeta transMeta = new TransMeta(fullFileName);

Trans transformation =new Trans(transMeta);

for(Map.Entry entry: paras.entrySet()) {

transformation.setParameterValue(entry.getKey(), entry.getValue());

}

transformation.execute(null);

transformation.waitUntilFinished();

if (transformation.getErrors() > 0) {

thrownew RuntimeException(

"There wereerrors during transformation execution.");

}

} catch (KettleException e) {

System.out.println(e);

}

}

}

最后调用代码例如以下:

publicclass EtlTest {

publicstaticvoid main(String[] args) {

KettleUtil2 etl = new KettleUtil2("testimport.ktr");

Map para = new HashMap();

//给转换中命名參数赋值

para.put("XlsName", "data");

etl.runTransformation(para);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值