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

一、下载安装

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

kettle docker 安装 kettle安装_数据库


本次测试mysql,因此需要一个连接mysql的驱动包

下载地址:https://dev.mysql.com/downloads/connector/j/

打开地址选择Platform Independent,然后点击下载,有驱动包就不用下载了。

下载好后将文件解压,将里面的 mysql-connector-java-8.0.28.jar 放到,kettle解压的lib下面( \data-integration\lib)。

kettle docker 安装 kettle安装_kettle docker 安装_02


点开Spoon.bat启动

kettle docker 安装 kettle安装_数据库_03


kettle docker 安装 kettle安装_数据仓库_04

二、使用

1、Kettle的两种设计

kettle docker 安装 kettle安装_mysql_05


2、kettle组成

kettle docker 安装 kettle安装_数据仓库_06


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

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

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

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

3、测试使用

1) 新建转换:可以直接Ctrl+N,也可以右键转换新建,双击转换也行。

新建后会出现下图所示的界面。保存一下,我起名叫demo.

kettle docker 安装 kettle安装_kettle docker 安装_07


输入选择表 建立连接

kettle docker 安装 kettle安装_kettle docker 安装_08


kettle docker 安装 kettle安装_kettle docker 安装_09


转换之前,需要做保存

kettle docker 安装 kettle安装_kettle docker 安装_10


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

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

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

kettle docker 安装 kettle安装_数据仓库_11


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

kettle docker 安装 kettle安装_数据挖掘_12


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

kettle docker 安装 kettle安装_数据仓库_13


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

kettle docker 安装 kettle安装_kettle docker 安装_14


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

kettle docker 安装 kettle安装_数据挖掘_15


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