Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。
Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。
Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
--
Data Integration 的下载
各版本文件的下载地址:https://sourceforge.net/projects/pentaho/files/
打开地址:如图,点击绿色的按钮,下载最新的版本。

会跳转到这个页面, 不用再点击了。在这页面稍等一会儿 月20秒左右。 就开始下载了。


---
如果要下载之前的其他版本可以在 刚才的地址中选择 Data Integration
在选择7.1 加入我们要下载7.1版本的
点击zip 就可以,下载zip文件了。 也会打开跟刚才一样的另一个页面,不用点击,等待20秒左右就开始下载了。

--
我下载了7.0版本 pdi-ce-7.0.0.0-25.zip,解压后直接双击Spoon.bat运行。启动需要等一小会儿,然后进入kettle的主界面。
---
如果 运行spoon.bat弹出命令行后一直无反应,可以点击此链接
--
===kettle 使用
为方便启动,你也可以把Spoon.bat创建一个快捷方式到桌面。


在根目录的\samples子目录里有很多小例子,供我们慢慢学习。

这样kettle环境部署配置工作大功告成,可以开始我们的kettle之旅了。
==
4、Kettle组件介绍与使用
4.1 Kettle使用
Kettle提供了资源库的方式来整合所有的工作,;
1)创建一个新的transformation,点击保存到本地路径,例如保存到G:/etltest下,保存文件名为Trans,kettle默认transformation文件保存后后缀名为ktr;
2)创建一个新的job,点击保存到本地路径,例如保存到G:/etltest下,保存文件名为Job,kettle默认job文件保存后后缀名为kjb;

4.2 组件树介绍
4.2.1 Transformation的主对象树和核心对象分别如下图:


Transformation中的节点介绍如下:
主要对象树:菜单列出的是一个transformation中基本的属性,可以通过各个节点来查看。
DB连接:显示当前transformation中的数据库连接,每一个transformation的数据库连接都需要单独配置。
Steps:一个transformation中应用到的环节列表
Hops:一个transformation中应用到的节点连接列表
核心对象菜单列出的是transformation中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加:
Input:输入环节
Output:输出环节
Lookup:查询环节
Transform:转化环节
Joins:连接环节
Scripting:脚本环节
4.2.2 Job的主对象树和核心对象分别如下图:


主要对象树:菜单列出的是一个Job中基本的属性,可以通过各个节点来查看。
DB连接:显示当前Job中的数据库连接,每一个Job的数据库连接都需要单独配置。
Job entries/作业项目:一个Job中引用的环节列表。
核心对象菜单:列出的是Job中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加。
每一个环节可以通过鼠标拖动来将环节添加到主窗口中。
并可通过shift+鼠标拖动,实现环节之间的连接。
4.2.3 kettle的简单使用
DB连接
我们可以看到转换的主对象树和核心对象区域,然后我们添加一个DB连接。
选择“主对象树”,双击“转换”标签下的“DB连接”会弹出一个配置窗口。填入连接名称,选择连接类型,配置数据库设置,然后测试下配置是否正确。
由于kettle没有将所有数据库的Driver文件集成,所以如果想连接指定的数据库,需要自己下载JDBC驱动,放入指定的lib目录下。添加完JDBC驱动后,必须重启kettle才能正确加载驱动。

点击“核心对象”标签页中的“输入”,选择“表输入”拖到“转换”区域。

双击“表输入”图标弹出表输入对话框,填入步骤名称,选择数据库连接,点击“获取SQL查询语句”,或者直接写入SQL语句,填写附件信息,点击“预览”按钮查看执行结果,没有错误,点击“确认”关闭对话框。


点击“核心对象”—“输出”,选择“Excel输出”拖入到转换区,双击Excel输出图标,弹出对话框,选择文件名和其它附加参数,点击确认。


点击输入表的图标,同时按下shift键,再点击输出文件,将两者连接起来。然后双击Excel输出进行配置。


最后一步就是执行kettle脚本,点击工具栏的播放箭头即可。

点击“启动”开始转换,在转换过程中会出现转换的信息,如下图所示。


完成转换后,我们可以在Excel输出目录中查看转换结果。

注:时间字段转换到Excel为空,修改SELECT语句中使用TO_CHAR转换成字符串,例如:to_char(start_time,’yyyy-mm-dd HH24:MM:SS’) as start_time.
注:Excel(2007之前版本)中的记录不能超过65535条,否则会自动关闭文件,导致转换失败。
至此,一个简单的数据迁移脚本,从Mysql数据库导出数据到EXCEL文件中就大功告成了。
==
















