一、Kettle的安装
1、需要安装jdk ,注意jdk的版本要和你运行的kettle的版本要匹配
安装的时候,其实是安装了两个软件 jdk 和 jre
配置环境变量:
最好这个环境变量的名字是 JAVA_HOME ,不要写成其他的名字。因为这个地方的名字不仅仅是kettle在使用。
2、解压pdi
pdi这个软件是绿色版的。
1) 将这个Spoon.bat 在桌面上创建一个快捷方式
2)修改字符集
3)每次运行的时候,建议使用管理员去运行。
二、案例
1、将txt数据导入到excel 中
选择 【转换】—> 【新建】,拖拽 【文本文件输入】和 【Excel输出】,摁住shift键,拖拽连接两者。
运行该脚本:
虽然得到了结果,但是数据格式有点不满意
再次运行,查看效果:
2、案例二 将excel表格中的数据导入到mysql中
新建数据库:kettle2201
如果出现如下错误:
:::color2 如果报了错:某个类找不到,这个类又不是你写的,就是别人写的,意思是少包,缺少jar
此时说明缺少驱动包—mysql连接的驱动包
:::
拷贝到 pdi这个软件的lib 目录下:
然后重启 kettle 这个软件,关掉,再进入就是重启了。
再次连接,依然报错,错误如下:
这个错误是mysql的时区所导致的。方案很多,建议大家使用如下方案:
此时,kettle帮助我们写了一个创建表的语句,需要进行微调:
CREATE TABLE t_user
(
id varchar(255)
, name varchar(30)
, age int
, gender int
, province varchar(30)
, city varchar(30)
, region varchar(30)
, phone varchar(11)
, birthday DATE
, hobby varchar(255)
, register_date datetime
)
;
运行这个脚本:
为了方便以后连接数据库,可以将我们本地的数据库连接进行一次共享,以后就可以重复使用了。
3、案例三 将mysql的数据导入到mysql
假如有一个表 t_user , 如果t_user中的数据发生变化,会将新的变化同步给 第二个表,相同的id 只保留一份数据。
最后的结果不是我们想要的效果,而应该是这样的布局:
第一次测试,修改 t_user表中的数据,执行,发现 t_user3 这个表中的数据也发生了变化,说明更新成功。
第二次测试,在t_user表中新增一条数,执行脚本,发现t_user3中也新增一条数据。
4、案例四
假如现在我的mysql中的数据想根据性别导出,性别为男的导出到一个excle表格中,性别为女的导出到另一个excle表格中
表输入设置:
switch 设置:
将两个excel表格的位置说明一下即可。
5、案例五
执行sql脚本
6、Job的使用
新建 —> 创建 【作业】
Start的设置:
设置转换:
通过Job 可以完成非常复杂的逻辑架构流程: