视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
java中调用kettle转换文件
2020-11-09 14:19:57 责编:小采
文档


java中调用kettle转换文件 通过命令行也可以调用,然后java中调用命令行代码也可以;这样没有和java代码逻辑无缝集成。本文说明kettle5.1中如果通过其他API和java代码无缝集成;网上大多数资料都是低版本的,在kettle5.x中已经不能运行。 1、 需要哪些jar文

java中调用kettle转换文件

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

1、 需要哪些jar文件

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

要是少了jar文件,运行程序一定报错,大家根据错误到kettle安装目录LIB中找相应的jar加到编译路径中。

2、 示例说明如何通过java调用转换

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

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

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

示例代码如下:

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);

 }

}

下载本文
显示全文
专题