Kettle是一款开源免费的ETL工具,ETL全称 Extract – Transform – Load 意味着数据抽取,转换,装载的过程。
ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据, ETL是BI(商业智能)项目重要的一个环节。

一、下载安装
官网下载地址:https://sourceforge.net/projects/pentaho/files/Data%20Integration/

本次测试mysql,因此需要一个连接mysql的驱动包
下载地址:https://dev.mysql.com/downloads/connector/j/
打开地址选择Platform Independent,然后点击下载,有驱动包就不用下载了。
下载好后将文件解压,将里面的 mysql-connector-java-8.0.28.jar 放到,kettle解压的lib下面( \data-integration\lib)。

点开Spoon.bat启动

二、使用
1、Kettle的两种设计

2、kettle组成

作业和转换可以在图形界面里执行,但这只适合在开发、测试和调试阶段。在开发完成后,需要部署到生产环境中 Spoon 就很少用到了,Kitchen 和 Pan 命令行工具用于实际的生产环境。

部署生产阶段一般需要通过命令行执行,需要把命令行放到 Shell 脚本中,并定时调度这个脚本。

Kitchen 和 Pan 工具是 Kettle 的命令行执行程序,只是在 Kettle 执行引擎上的封装,它们只是解释命令行参数,调用并把这些参数传递给 Kettle 引擎。

Kitchen 和 Pan 在概念和用法上都非常相近,这两个命令的参数也基本是一样的。唯一不同的是 Kitchen 用于执行作业,Pan 用于执行转换。

3、测试使用
1) 新建转换:可以直接Ctrl+N,也可以右键转换新建,双击转换也行。
新建后会出现下图所示的界面。保存一下,我起名叫demo.

输入选择表 建立连接


转换之前,需要做保存

执行成功之后,可以在mysql查看,stu2的数据

mysql> select * from stu2;+------+----------+| id | name |+------+----------+| 1001 | zhangsan || 1002 | lisi || 1003 | wangwu |+------+----------+3 rows in set (0.00 sec)

2)新建作业job
如果想要定时运行这个转换,那么就要用到作业。


从左侧依次拖动 START 、转换、成功到右侧,并用线连接起来。

双击 START,可以配置作业的运行间隔,这边配置了5秒运行一次。

双击转换,选择之前新建的那个转换。

点击运行,就能运行这次作业,点击停止就能停止。在下方执行结果,可以看到运行的日志。

这样就完成了一个最简单的作业,每隔5s,将源表的数据迁移到目标表。