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,将源表的数据迁移到目标表。