1. Kettle简介
Kettle是一个开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定,基本的数据抽取、转换、加载,他都可以。
可以把各种数据放到一个壶里,然后以一种指定的格式流出,比如一个mysql数据库的数据同步到一个Postgres数据库。
它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
2. 下载Kettle
Kettle可以在http://kettle.pentaho.org/网站下载。
3. 运行Kettle
下载kettle压缩包,因kettle为绿色软件,解压缩到任意本地路径即可。
点击Spoon.bat直接运行软件。(注:需要提前安装好JDK环境)
4. 将数据转换成Excel
为了实现这个功能,我们需要:
1.连接到数据库
2.导出为Excel
首先,我们新建一个转换:
新建,之后,我们可以看到,工具箱中,有很多的控件,我们都可以使用。
新建数据库连接(注:需要在软件的根目录lib文件夹下添加所连接数据库的驱动jar包):
填写相关的链接信息:
测试链接是否成功(可省略):
好了,可以连接到数据库了,下面,我们得把数据导出啊,我们需要使用输入这个控件。
输入下面,有很多的控件,我们这次只使用表输入,因为我们是直接从数据库中拿数据。
点击获取SQL查询语句,弹出数据库浏览器弹窗:
选择要导出的表:
点击动作可以进行数据的预览:
同时也可以选定好表之后点击表输入弹窗的正下方预览按钮预览数据:
源头好了,同样的思路,我们需要一个目标,就是输出了,输出到Excel:
同样的,我们托好之后,双击就可以编辑了,这里,我们主要关注2个配置,一个是excel保存地址,和字段:
我们选择一个地址,然后得,看下字段那个tab。
我们单击,获取字段,就可以从源头获取表中的字段了,当然,我们可以只导出,我们需要的字段。
一步一步来的话,上面获取,可能会获取不到,因为,有一步,需要将2个控件,连起来,源头有了,目标也有了,得让他们关联起来啊,再Kettle中,这个连线叫做Hop(跳),就像一个管道一样,将数据流从一个点,指向另一个点。(也可按住Shift键链接)
和Java里面,一样,绿色的话,就代表成功了!
5. 将数据从一张表中复制到另一张表
同样的,首先我们需要一个目标,就是输出了,输出到表:
双击表输出步骤按钮,弹出表输出相关选项设置窗口,点击目标表浏览按钮,弹出数据库浏览器窗口进行数据库目标输出表的选择:
选择完毕之后,勾选指定数据库字段选框,将tab切换到数据库字段:
同样的和导出excel一样一步一步来的话,上面获取,可能会获取不到,具体为什么就不再赘述可以查看导出excel(也可按住Shift键链接):
点击获取字段会弹出一个询问是否新增新的、新增所有或清除并新增的窗口:
我们点击清除并新增:
点击输入字段映射:
此时我们可以看见表字段和流字段已经一一对应上了。(注:也可以根据自己的需求删除或另外新增其他字段,可随自己需要自定义。)
点击确定
此时点击运行:
绿色的话,就代表成功了!