#Kettle转换使用教程

##概述

Kettle是一款国外开源的ETL工具,纯java编写的ETL工具 ,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。并且Kettle 是 PDI 以前的名称,现在PDI 的全称是Pentaho Data Integeration

ETL是指EXTRACT(抽取)、TRANSFORM(转换)、LOAD(加载)

更多介绍可以访问Kettle中文网:http://www.kettle.net.cn/

安装与配置

运行环境:JDK1.5以上

下载

下载地址: https://sourceforge.net/projects/pentaho/files/Data%20Integration/

可以下载7.1版本的kettle:
在这里插入图片描述

也可以在Home中下载最新版的PDI
在这里插入图片描述

安装

kettle是纯java编写的,因此下载后解压即可直接运行,类似于绿色软件的打开方式。

解压后的文件夹如下:
在这里插入图片描述

启动

在windows下点击spoon.bat即可启动,下面以7.1版本的举例:
在这里插入图片描述
启动画面:
在这里插入图片描述启动完成:
在这里插入图片描述

子程序介绍

四大工具

Chef—工作(job)设计工具 (GUI方式)

Kitchen—工作(job)执行器 (命令行方式)

Spoon—转换(transform)设计工具 (GUI方式)

Span—转换(transform)执行器 (命令行方式)
在这里插入图片描述

Spoon.bat: 图形界面方式启动作业和转换设计器。
Pan.bat: 命令行方式执行转换。
Kitchen.bat: 命令行方式执行作业。
Carte.bat: 启动web服务,用于 Kettle 的远程运行或集群运行。
Encr.bat: 密码加密
在这里插入图片描述

使用前需要理解转换和作业

Kettle 的 Spoon 设计器用来设计转换(Transformation)和 作业(Job)。

•转换主要是针对数据的各种处理,一个转换里可以包含多个步骤(Step)

•作业是比转换更高一级的处理流程,一个作业里包括多个作业项(Job Entry),一个作业项代表了一项工作,转换也是一个作业项。

转换

启动后,在图形界面的左上角添加转换

在这里插入图片描述

kettle转换支持的输入格式非常多,因此功能十分强大
在这里插入图片描述

execl表格转换txt文本

第一步

下面就将execl表格按照一定的格式转换为txt文本的过程作为演示

先在输入中拖出一个excel输入

在这里插入图片描述

再到输出中拖出一个文本文件输出(GUI的操作简单的优势体现得淋漓尽致)

在这里插入图片描述

长按shift分别用鼠标左键点击Excel输入文本文件输出,将它们用箭头连接起来

在这里插入图片描述

第二步

使用鼠标右键分别对Excel输入文本文件输出进行编辑步骤设置
在这里插入图片描述
步骤名称可以自定义,方便识别即可,表格类型一定要匹配
在这里插入图片描述
点击浏览添加文件,然后点击增加添加选中的文件(可以一次增加多个文件)
在这里插入图片描述
在标签栏中选择工作表,添加需要选择的工作名称,在起始行或者起始列中选择从表格中开始读取数据的位置
在这里插入图片描述之后的标签选择默认设置即可,在字段标签中点击获取来自头部数据的字段
在这里插入图片描述

在格式下的方框中双击即可获得下拉的格式模板,选择想要的模板即可
在这里插入图片描述
在步骤编辑结束前,一定要先预览,查看从表格中读出的数据是否是需要处理的数据,看从之后点击确定
在这里插入图片描述
在这里插入图片描述

第三步

接下来需要进行文本文件输出步骤设置,进入设置的方法于对excel输入设置相同
在这里插入图片描述
文件中添加文件名称,扩展名选择txt(建议文件名称前面加上生成文件绝对路径位置,方便查找生成的文件)
在这里插入图片描述

内容中分隔符使用$[09]表示使用制表符作为分隔符号(不能直接输入\t作为制表符),编码格式可以选择utf-8

使用sublime先安装hexVIew插件,使用插件,点击toggle查看制表符的十六进制,然后分隔符处通过$[],例如制表符查看是09;则分隔符为:$[09]

在这里插入图片描述

字段中点击获取字段,可以对字段下数据的类型与格式进行设置

在这里插入图片描述

字符串的格式可以参照下表
在这里插入图片描述

设置完成后,可以开始运行(注意:需要先对转换的任务进行保存,才能开始运行转换)
在这里插入图片描述

当运行成功后,输入与输出图标上都会出现两个小对勾,并且出现完成的日志(当发生错误的时候,可以通过查看日志来排除错误)

在这里插入图片描述

转换成功后的文本文件效果图如下:
在这里插入图片描述

数据库表转换

第一步

建立数据库连接

在这里插入图片描述

数据库连接输入数据库信息,因为是MySQL数据库,因此在连接类型中选择MySQL,确认输入数据库信息无误,一定要进行测试,获得正确连接到数据提示后点击确定

在这里插入图片描述

如建立连接数据库1一样,连接数据库2

在这里插入图片描述

配置好两个数据库后,在DB连接中即可看到

在这里插入图片描述

输入中拖出表输入

在这里插入图片描述

输出中拖出插入/更新,长按shift连接两个步骤

在这里插入图片描述

第二步

对表输入进行编辑,输入需要查询的select语句(注意sql语句后不需要添加分号)

在这里插入图片描述

在进行转换前一定要先点击预览,确认好目标范围

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qqnz2xYK-1598438183703)(kettle使用.assets/image-20200826164115677.png)]

第三步

对插入/更新进行编辑,选择需要连接的数据库与表,并点击获取字段,获得id、name、password的映射
在这里插入图片描述

在获得的字段中,选择作为判断条件的字段,比如name,并右键保留所选行
在这里插入图片描述

点击获取和更新字段,得到数据库中字段的映射关系,因为目标表中没有id字段,因此需要删除id的映射,设置好后点击确定。

当关键字name相同的时候,会进行更新字段的操作,当下方表格中的更新项为Y是进行更新,为N是不进行更新。

当关键字name不相同的时候,就直接进行插入更新操作。
在这里插入图片描述
在这里插入图片描述

在开始进行转换前,查询目标表中的信息
在这里插入图片描述

点击启动,开始转换,当两个步骤中出现两个小对勾,代表转换成功

在这里插入图片描述

再次查询,可以看到目标表进行更新,但admin的password字段未更新
在这里插入图片描述

在插入/更新中进行设置,选择更新为Y,再次尝试

在这里插入图片描述

admin的password字段已更新

在这里插入图片描述


关键字:kettle、kettle学习笔记、Pentaho

参考资料:
kettle学习笔记

KETTLE实战视频教程视频

kettle教程视频

Logo

更多推荐