转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/80878477
本文出自【我是干勾鱼的博客】
Kettle是一款非常优秀的ETL工具,做数据抽取、同步、清洗都很方便,而且是开源的。由于使用Java做的,所以在各个平台上应用都很方便,今天就来讲讲Kettle的使用。
Kettle在官网其实是被称谓“Data Integration”,在Kettle的官网Data Integration - Kettle是这样说的:
Pentaho’s Data Integration, also known as Kettle, delivers powerful extraction, transformation, and loading (ETL) capabilities.
所以如果在官网看到“Data Integration”的叫法别以为自己来错了地方,这就是Kettle!
Ingredient:
-
MySQL:MySQL Community Server 5.6.40(Download MySQL Community Server)
-
MySQL Connector for Java:Connector/J 5.1.47 - Platform Independent (Architecture Independent), ZIP Archive(Download Connector/J)
1 安装过程
1.1 安装JDK
首先,保证机子上已经安装了JDK并且配好了环境变量。
1.2 解压缩Kettle
其次,将Kettle解压缩后,运行文件夹:
data-integration
中的文件:
spoon.bat
或者:
spoon.sh
文件就可以将Kettle启动了。
1.3 放置数据库驱动
最后,一般都需要连接数据库,所以需要把对应数据库的驱动放到文件夹:
{Kettle}/data-integration/lib/
文件夹下。
2 关于JDK的版本
这里解释一下,“Kettle 7.1.0.0-12”是Kettle目前的最新版,试过了可以使用。而这个版本必须使用“JDK 1.8”及以上的版本。
3 关于MySQL驱动的版本
3.1 版本不能太高
MySQL这里用的是“5.6.40”,对于MySQL的驱动来说,虽然MySQL在官网说“8.0”版本的驱动对于MySQL5.5以上的版本都支持:
MySQL Connector/J 8.0 is highly recommended for use with MySQL Server 8.0, 5.7, 5.6, and 5.5. Please upgrade to MySQL Connector/J 8.0.
但笔者试过了,如果用“Kettle 7.1.0.0-12”,“MySQL Community Server 5.6.40”,这时候如果使用“MySQL Connector/J 8.0”版本的驱动,Kettle启动之后配置数据库连接的时候,即使把驱动放到Kettle的lib目录下了,但是Kettle仍然识别不出来,仍然认为没有驱动,如图所示:
所以还是使用“5.1.46”版本的MySQL驱动吧!
3.2 版本也不能太低
另外这个驱动版本也不能太低,如果用了太低的版本,比如说之前用了:
mysql-connector-5.1.8.jar
有的时候在“转换”中添加一个“输出”中的:
插入/更新
或者:
表输出
时,会发现无法正常获取字段,正如kettle不能正常自动获取字段中所说,可能是MySQL驱动的版本太低了。
3.3 驱动的合适版本
所以综上所述,Kettle 7.1.0.0-12使用数据库*MySQL Community Server 5.6.40时,使用MySQL驱动5版本里面的最高版本:
Connector/J 5.1.46 - Platform Independent (Architecture Independent), ZIP Archive
是个不错的选择。
4 修改配置文件kettle.properties
这个修改不是必须的,视具体情况而定,我在ETL工具Kettle基本用法——Kettle数据交互时将空字符串当做NULL传递问题的解决中也做了说明。如果不希望出现数据交互时将空字符串当做NULL传递的情况,需要修改配置文件:
C:\Users\用户名.kettle\kettle.properties
在其中加入:
KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL=Y
然后重启Kettle就可以了。
5 完成
这样,Kettle的安装就完成了。
参考: