目录
Kettle学习笔记(一)— 环境部署及运行
Kettle学习笔记(二)— 基本操作
kettle学习笔记(三)— 定时任务的脚本执行
Kettle学习笔记(四)— 总结
打开Kettle
打开时间略长,请耐心等待。
常用的控件说明
这里先对控件做下简单说明,方便后面使用。
通用控件
-
通用——START:作业开始;
-
通用——作业:指定某个作业循环执行;
-
通用——转换:指定某个转换,加入到作业中来;
-
通用——设置变量:设置变量,为了转换或者作业中获取变量;
-
通用——成功:作业完成操作;
-
通用——DUMMY:空操作,什么也不执行;
-
邮件——发送邮件:给指定邮箱发送邮件,发件人的账号需要开通第三方发送邮件的功能;
-
文件管理——复制/移动结果文件:复制/移动文件;
-
文件管理——创建一个目录:创建指定的目录;
-
文件管理——删除一个文件:删除指定的一个文件;
-
文件管理——复制文件:复制指定的文件;
-
文件管理——删除目录:删除指定的目录;
-
文件管理——删除多个文件:通过正则表达式批量删除文件;
-
条件——检查数据库连接:检查数据库是否能够连接通;
-
条件——检查表是否存在:检查指定的表是否存在;
-
文件传输——SFTP下载:可以通过SSH进行远程下载文件;
-
文件传输——SFTP上传:可以通过SSH进行远程上传文件;
-
文件传输——FTP删除:可以远程删除指定的文件;
转换中常用控件:
-
输入——Excel输入:从excel文件中读取数据;
-
输入——文本文件输入:从文本文件中读取数据;
-
输入——生成随机数:用来生成指定类型的随机数;
-
输入——自定义数据常量:将值不变的变量存入到此处,方便管理;
-
输入——获取系统信息:可以获取系统信息(日期、命令行参数);
-
输入——表输入:从数据库表中读取数据;
-
输出——Excle输出:注意.xls格式输出行数有限制,一般输出.xlsx最好;
-
输出——插入/更新:根据指定的匹配字段,可以检测是插入新数据,还是修改旧数据;
-
输出——文本文件输出:将结果数据输出到文本文件中去;
-
输出——表输出:将结果数据输出到某个数据库的某个表中;
-
转换——增加常量:在原数据中将常量值增加新一列;
-
转换——排序记录:对原数据按照某个字段进行排序;
-
转换——剪切字符串:对字符串进行截图;
-
转换——去重复记录:对于某个字段有重复的记录进行过滤;
-
转换——字段选择:筛选流中的字段,慎用,过滤后后面的控件将无法获取流中筛除的字段了;
-
流程——空操作:将不需要的数据放到此处,类似垃圾箱;
-
流程——过滤记录:按照条件进行过滤,类似if-else;
-
流程——Switch/Case:与java中switch/case一样;
-
脚本——java代码:执行java代码;
-
脚本——javascript代码:执行javascript代码;
-
脚本——执行SQL脚本:执行sql;
-
连接——记录集连接:类似于sql的left join/right join/inner join,但是使用前的数据必须要经过排序;
-
作业——从结果获取记录:从作业中获取数据;
-
作业——复制记录到结果:将转换中的结果数据放到作业中去;
-
作业——获取变量:从作业中获取变量;
-
作业——设置变量:设置变量,从而让作业中能够获取变量;
建立转换
文件—新建—转换。
新建转换后点击左边的主对象树,然后选择DB连接,建立用以连接数据库。如图所示:
建立数据库连接的过程相当于在数据库管理工具连接数据库。
输入所需同步的两个数据库,点击测试查看连接是否正常
注意:在数据库链接的过程中,可能会报某个数据库连接找不到的异常。那是因为你没有对应的数据库链接驱动,请下载对应驱动后,放入kettle的lib文件夹。
简单的数据同步/更新
新建表插入
在左边的菜单选择“核心对象”,在核心对象里面选择“输入—表输入”,用鼠标拖放到右边面板。
双击拖进来的表,可对表进行编辑。
新建插入\更新
在左边面板中选择核心对象、选择“输出->插入\更新”如图所示:
双击插入更新,编辑它选中表输入,按住shift键,拖向插入更新。
选中表输入,按住shift键,拖向插入更新。
双击插入更新,更改设置。
查询字段:用来对比的关键字段,kettle会根据它来判断是插入还是更新,一般用id
运行装换
点击运行按钮,测试装换是否成功。
启动完成。
使用作业控制转换
作业可以定时或周期性的执行转换,新建作业。并从左边面板拖入start 和转换。
双击start可以编辑,可以设置执行时间等等
点开装换,可以设置需要执行的转换任务,打开我们保存的转换。
将成功拖到右侧面板,并连接。
这样一个简单的通过作业调度的kettle就算做完了。