kettle作为一个功能强大高效的ETL工具一直备受好评,最近需要将kettle整合到java中,完成数据的转换清洗,其他碰到诸多问题,特此记录下。
1, 千万要注意kettle的版本问题,使用kettle4写的作业就不要想用kettle5来玩。项目中要引入的kettle的jar
放在lib包下,需要注意在pom文件中做好相应的引入
<build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <encoding>UTF-8</encoding> <compilerArguments> <!--加载手工添加的jar包--> <extdirs>src/main/webapp/WEB-INF/lib/</extdirs> </compilerArguments> </configuration> </plugin> </plugins> </build>
引入的kettle包一定要是正式环境的kettle一致的,正式环境是kettle4,那么就去kettle下面将它下面的lib文件夹下的包烤过来,正常情况下4只有5个jar,还会缺数个jar包,如上面的图,导入数个公共的jar才行,否则会一直报错,可以去kettle5下面找这些公共的包。使用5的话也不要全部jar拷贝过来,导入上面的就好了。
2,kettle4保存文件的时候千万不要有中文,否则异常一堆还找不到错误
如下的错误
典型的kettle的jar与kettle的ktr kjb文件不匹配导致的
有中文路径的