一、什么是Kettle?
Kettle作为用户规模最多的开源ETL工具,强大简洁的功能深受广大ETL从业者的欢迎。但kettle本身的调度监控功能却非常弱。Pentaho官方都建议采用crontab(Unix平台)和计划任务(Windows平台)来完成调度功能。所以大家在实施kettle作业调度功能的时候,通常采用以下几种方式:使用spoon程序来启动Job,使用crontab或计划任务,自主开发java程序来调用kettle的类库。
- 开源的 ETL工具,用于数据库间的数据迁移 。可以在 Linux、windows、unix 中运行。有图形界面,也有命令脚本还可以二次开发。
二、将kettle与MySQL建立连接
kettle压缩包:kettle-neo4j-remix-8.2.0.7-719-REMIX.zip
系统环境:windows10
连接mysql需要将jar包放到kettle文件下的lib目录下
这里我是用的是mysql-connector-java-5.1.38.jar,
-
启动kettle:双击spoon.bat (启动过程会稍长,耐心等待)
-
进入后的界面
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210322230210686.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODQ2ODE2Nw==,size_16,color_FFFFFF,t_70 -
点击右上角connect
-
点击other repositories
-
选择database repository后点击get started
-
填写一个名称后选择database connection
-
选择mysql,填写配置信息,mysql的地址,选择数据库(需要已存在的,可以自己创一个),mysql用户名以及密码,然后点击测试连接
记得启动mysql
- 左上角没有报错说明测试连接成功,此时点击确定
- 选中刚才创建的连接后点击back
- 点击finish
- 再次点击finish
- 再次点击右上角的connect,选择刚才创建的连接
- 初始用户名密码都为admin
三、演示示例:新建转换
示例准备:需要在mysql的新建一个测试库并创建两张表且插入数据
- 测试数据
//创建测试库
create database kettle_test;
use kettle_test;
//创建测试表
create table stu1(id int, name varchar(20), age int);
create table stu2(id int, name varchar(20));
//插入测试数据
insert into stu1 values(1001,'zhangsan',22),(1002,'lisi',22),(1003,'xiaohua',22);
insert into stu2 values(1001,'hanmeimei');
- 右击转换,点击新建
- 选择展开输入
- 下拉双击表数据
- 双击右侧展示框中的表输入
- 指定输入数据的库
- 确定输入库后写入查询语句并预览,确定预览行数
- 预览效果
- 输入表数据就完成了,接下来选择输出列中的插入/更新
- 编辑插入/更新
- 执行前先查看下stu2的数据
- 执行转换(会提示先保存)
- 查看转换后stu2
四、演示示例:新建作业(Job)
-
新建作业
-
依次添加流程
start:可以设计执行时间
转换:可以选择以及保证的转换文件
sql:可以额外添加需要执行的sql语句
dummy:结束
-
选择转换文件
-
编辑sql脚本
-
执行
-
查看结果
-
这样就完成了一个简单的对mysql的操作示例