1.kettle简介java
Kettle是一款国外开源的ETL工具,纯java编写,能够在Windows、Linux、Unix上运行,数据抽取高效稳定。linux
Kettle 中文名称叫水壶,该项目的主程序员MATT 但愿把各类数据放到一个壶里,而后以一种指定的格式流出。程序员
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工做流的控制。sql
Kettle家族目前包括4个产品:Spoon、Pan、CHEF、Kitchen。数据库
SPOON 容许你经过图形界面来设计ETL转换过程(Transformation)。windows
PAN 容许你批量运行由Spoon设计的ETL转换 (例如使用一个时间调度器)。Pan是一个后台执行的程序,没有图形界面。oracle
CHEF 容许你建立任务(Job)。 任务经过容许每一个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工做。任务经过容许每一个转换,任务,脚本等等。任务将会被检查,看看是否正确地运行了。app
KITCHEN 容许你批量使用由Chef设计的任务 (例如使用一个时间调度器)。KITCHEN也是一个后台运行的程序。工具
kettle的最新下载地址:https://community.hitachivantara.com/docs/DOC-1009855学习
kettle 8.2版本能够支持windows、linux和mac os操做系统
官方文档:https://wiki.pentaho.com/display/EAI/.01+Introduction+to+Spoon
kettle中的一个图形用户界面叫spoon,spoon能够设计和运行转换和做业。
在windows中执行spoon.bat,在Lunix系统中执行spoon.sh;
Spoon是一个图形设计工具,用来设计和测试数据交换处理流程,也能够经过命令行(终端)执行处理流程。
在spoon中设计做业和转换,kettle提供两种方式存储:资源库和文件;
若是你选择资源库,spoon第一次启动时须要建立资源库;选择文件方法,做业保存文件是的扩展名是KJB,转换文件的扩展名为KTR,为了简化学习,下面教程采用后者。
点击后等待一下子,开启较慢;打开后的界面以下:
Kettle提供了资源库方式的方式来整合全部的工做,可是由于资源库移植不方便,因此咱们选择没有资源库;
1)建立一个新的transformation,点击 保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestTrans,kettle默认transformation文件保存后后缀名为ktr;
2)建立一个新的job,点击 保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestJob,kettle默认job文件保存后后缀名为kjb;
在文件->新建装换。
新建转换后在左边的主对象树中创建DB链接用以链接数据库。如图所示:
创建数据库链接的过程与其余数据库管理软件链接数据库相似。
DB链接—>新建
输入所要链接数据库的信息,点击测试看是否正确链接
注意:在数据库连接的过程当中,可能会报某个数据库驱动链接找不到的异常。那是由于你没有对应的数据库连接驱动,请下载对应驱动后,放入kettle的lib文件夹,重启便可
若是本地安装着Oracle数据库的话,能够从安装路径:E:\app\product\11.2.0\dbhome_1\jdbc\lib(个人路径),通常选择ojdbc6.jar。
左边面板选择:核心对象—>输入—>表输入
双击拖过来的表,能够进行编辑;
选择数据库链接和编辑sql语句,在这一步能够点击预览,查看本身是否链接正确。确认无误后,点击肯定。
1.在左边面板中选择:核心对象à输出->插入\更新 如图所示:
2. 编辑插入更新:
首先:表输入链接插入更新。
选中表输入,按住shift键,拖向插入更新。
3.而后:双击插入更新,编辑它。编辑完成点击肯定
此处须要注意的是,输入表,与输出的表,都要真实存在。
4.启动测试看执行效果
点击执行按钮
查看执行结果:
执行前表数据
能够看到,输出表ID为1,2,3的age字段数据数据进行了更新,ID为4,5的name,age字段数据进行了更新,id为6的数据进行了插入
使用做业能够定时或周期性的执行转换,新建一个做业。并从左边面板拖入start 和转换。
双击start能够编辑,能够设置执行时间等等
点开装换,能够设置须要执行的转换任务,好比能够执行上面咱们作的转换,XXX.ktr
最后点击运行便可。