欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【使用指南】Kettle转换使用教程

程序员文章站 2024-03-22 12:20:58
...

#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:
【使用指南】Kettle转换使用教程

也可以在Home中下载最新版的PDI
【使用指南】Kettle转换使用教程

安装

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

解压后的文件夹如下:
【使用指南】Kettle转换使用教程

启动

在windows下点击spoon.bat即可启动,下面以7.1版本的举例:
【使用指南】Kettle转换使用教程
启动画面:
【使用指南】Kettle转换使用教程启动完成:
【使用指南】Kettle转换使用教程

子程序介绍

四大工具

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

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

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

Span—转换(transform)执行器 (命令行方式)
【使用指南】Kettle转换使用教程

Spoon.bat: 图形界面方式启动作业和转换设计器。
Pan.bat: 命令行方式执行转换。
Kitchen.bat: 命令行方式执行作业。
Carte.bat: 启动web服务,用于 Kettle 的远程运行或集群运行。
Encr.bat: 密码加密
【使用指南】Kettle转换使用教程

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

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

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

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

转换

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

【使用指南】Kettle转换使用教程

kettle转换支持的输入格式非常多,因此功能十分强大
【使用指南】Kettle转换使用教程

execl表格转换txt文本

第一步

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

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

【使用指南】Kettle转换使用教程

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

【使用指南】Kettle转换使用教程

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

【使用指南】Kettle转换使用教程

第二步

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

在格式下的方框中双击即可获得下拉的格式模板,选择想要的模板即可
【使用指南】Kettle转换使用教程
在步骤编辑结束前,一定要先预览,查看从表格中读出的数据是否是需要处理的数据,看从之后点击确定
【使用指南】Kettle转换使用教程
【使用指南】Kettle转换使用教程

第三步

接下来需要进行文本文件输出步骤设置,进入设置的方法于对excel输入设置相同
【使用指南】Kettle转换使用教程
文件中添加文件名称,扩展名选择txt(建议文件名称前面加上生成文件绝对路径位置,方便查找生成的文件)
【使用指南】Kettle转换使用教程

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

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

【使用指南】Kettle转换使用教程

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

【使用指南】Kettle转换使用教程

字符串的格式可以参照下表
【使用指南】Kettle转换使用教程

设置完成后,可以开始运行(注意:需要先对转换的任务进行保存,才能开始运行转换)
【使用指南】Kettle转换使用教程

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

【使用指南】Kettle转换使用教程

转换成功后的文本文件效果图如下:
【使用指南】Kettle转换使用教程

数据库表转换

第一步

建立数据库连接

【使用指南】Kettle转换使用教程

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

【使用指南】Kettle转换使用教程

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

【使用指南】Kettle转换使用教程

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

【使用指南】Kettle转换使用教程

输入中拖出表输入

【使用指南】Kettle转换使用教程

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

【使用指南】Kettle转换使用教程

第二步

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

【使用指南】Kettle转换使用教程

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

【使用指南】Kettle转换使用教程

第三步

对插入/更新进行编辑,选择需要连接的数据库与表,并点击获取字段,获得id、name、password的映射
【使用指南】Kettle转换使用教程

在获得的字段中,选择作为判断条件的字段,比如name,并右键保留所选行
【使用指南】Kettle转换使用教程

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

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

当关键字name不相同的时候,就直接进行插入更新操作。
【使用指南】Kettle转换使用教程
【使用指南】Kettle转换使用教程

在开始进行转换前,查询目标表中的信息
【使用指南】Kettle转换使用教程

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

【使用指南】Kettle转换使用教程

再次查询,可以看到目标表进行更新,但admin的password字段未更新
【使用指南】Kettle转换使用教程

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

【使用指南】Kettle转换使用教程

admin的password字段已更新

【使用指南】Kettle转换使用教程


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

参考资料:
kettle学习笔记

KETTLE实战****视频

kettle教程视频

相关标签: 使用指南