码迷,mamicode.com
首页 > 编程语言 > 详细

java中调用kettle转换文件

时间:2014-11-07 07:33:27      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:java调用kettle   etl kettle   java   jar   

java中调用kettle转换文件

 

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

1、       需要哪些jar文件

bubuko.com,布布扣

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

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

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

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

bubuko.com,布布扣

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

bubuko.com,布布扣

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

bubuko.com,布布扣

示例代码如下:

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<String,String> paras) {

      try {

        KettleEnvironment.init();

 

        TransMeta transMeta = new TransMeta(fullFileName);

        Trans  transformation =new Trans(transMeta);

       

        for(Map.Entry<String, String> 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<String,String> para = new HashMap<String,String>();

     

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

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

      etl.runTransformation(para);

   }

}


 

 

 

java中调用kettle转换文件

标签:java调用kettle   etl kettle   java   jar   

原文地址:http://blog.csdn.net/neweastsun/article/details/40886841

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!