一、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 可以完成非常复杂的逻辑架构流程:

