当前位置:文档之家› pentaho-Kettle安装及使用说明(例子)

pentaho-Kettle安装及使用说明(例子)

Kettle安装及使用说明1.什么Kettle?Kettle是一个开源的ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)项目,项目名很有意思,水壶。

按项目负责人Matt的说法:把各种数据放到一个壶里,然后呢,以一种你希望的格式流出。

Kettle包括三大块:Spoon——转换/工作(transform/job)设计工具(GUI方式)Kitchen——工作(job)执行器(命令行方式)Span——转换(trasform)执行器(命令行方式)Kettle是一款国外开源的etl工具,纯java编写,绿色无需安装,数据抽取高效稳定。

Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

2.Kettle简单例子2.1下载及安装Kettle下载地址:/projects/pentaho/files现在最新的版本是 3.6,为了统一版本,建议下载 3.2,即下载这个文件pdi-ce-3.2.0-stable.zip。

解压下载下来的文件,把它放在D:\下面。

在D:\data-integration文件夹里,我们就可以看到Kettle的启动文件Kettle.exe或Spoon.bat。

2.2 启动Kettle点击D:\data-integration\下面的Kettle.exe或Spoon.bat,过一会儿,就会出现Kettle的欢迎界面:稍等几秒,就会出现Kettle的主界面:2.3 创建transformation过程a.配置数据环境在做这个例子之前,我们需要先配置一下数据源,这个例子中,我们用到了三个数据库,分别是:Oracle、MySql、SQLServer,以及一个文本文件。

而且都放置在不同的主机上。

Oralce:ip地址为192.168.1.103,Oracle的实例名为scgtoa,创建语句为:create table userInfo(id int primary key,name varchar2(20) unique,age int not null,address varchar2(20));insert into userInfo values(1,'aaa',22,'成都市二环路');insert into userInfo values(2,'东方红',25,'中国北京');insert into userInfo values(3,'123',19,'广州白云区');MySql:ip地址为192.168.1.107,数据库名为test2,创建语句为:create database test2;use test2;create table login(id int primary key,realname varchar(20) unique,username varchar(20) unique,password varchar(20) not null,active int default 0);insert into login values(1,'aaa','admin','admin',0);insert into login values(2,'东方红','test','test',1);insert into login values(3,'123','xxx123','123456',1);SQLServer:本机,ip为192.168.1.115,创建语句为:create database test3;use test3;create table student(sid varchar(20) primary key,sname varchar(20) unique,teacher varchar(20) not null,);insert into student values('078','aaa','李老师');insert into student values('152','东方红','Mr Wu');insert into student values('034','123','徐老师');文本文件:名为dbtest.log,位于192.168.1.103\zhang\上,即跟Oracle同一个主机。

数据仓库:位于192.168.1.107上,跟MySql一台主机,而且数据库也是MySql,也就是说,MySql上有2个数据库,test2和test4。

创建语句为:create database test4;use test4;create table inforTotal(id int primary key,name varchar(20) unique,age int not null,address varchar(20),username varchar(20) unique,password varchar(20) not null,active int default 0,sid varchar(20) unique,teacher varchar(20) not null,cat varchar(20),dog varchar(20));b.Spoon界面在主界面,选择没有资源库,进入工作空间。

c.创建transformation文件1.新建transformation文件双击左边转换将创建一个新的transformation(也可以通过菜单里面的文件-新建-转换方式新建文件),点击另存为,保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestTrans,kettle默认transformation,文件保存后后缀名为ktr。

2.创建数据库连接在transformation页面下,点击左边的【主对象树】,双击【DB连接】,进行数据库连接配置。

在Connection Name下面的数据库里输入连接的名字,如oracle在Settings里的Host Name里输入主机名,如102.169.1.103在Settings里的Database Name里输入数据库名,如scgtoa在 Settings里的User Name里输入数据库用户名,如bbs在Settings里的Password里输入数据库密码,如bbs然后点击”Test”按钮测试连接是否成功,如果成功后,点击OK按钮。

同样地,我们创建MySql和SQLServer的连接,如:最后我们看到这样的界面:d.抽取、转换、装载过程1.表输入在EtltestTrans页面下,点击左侧的【核心对象】,点击【输入】,选中【表输入】,拖动到主窗口释放鼠标。

双击工作区中【表输入】图标,数据库连接选择刚刚创建好的连接名为Oracle的数据库连接,在主窗口写入对应的查询语句:SELECTID, NAME, AGE, ADDRESSFROM USERINFOORDER BY NAME步骤名称写为:oracle - userInfo表输入可以通过预览,查看这个步骤输出的数据。

同样地,我们建立一个MySql的表输入组件:查询语句为SELECTid, realname, username, password, activeFROM loginORDER BY realname步骤名称为:mysql - login表输入2.表连接查询在EtltestTrans页面下,点击左侧的【核心对象】,点击【连接】,选中【Merge Join】,拖动到主窗口释放鼠标。

如图:然后,点击表输入,按住shift键,再拖动鼠标到Merge Join,这时就实现了在两个组建之间的连线。

如图:双击工作区中的Merge Join,在出现的窗口里:步骤名称命名为:表连接查询第一个步骤选择:oracle - userInfo表输入第二个步骤选择:mysql - login表输入连接类型选择:FULL OUTER在连接字段里,第一个步骤写:NAME,第二个步骤写:realname3.表连接查询与表输入再次连接查询SQLServer表输入,如图:4.远程文本文件输入在EtltestTrans页面下,点击左侧的【核心对象】,点击【输入】,选中【文本文件输入】,拖动到主窗口释放鼠标。

双击这个图标,进入编辑窗口:输入步骤名称:远程文本文件输入在选中的文件里的文件/目录下面输入,文件所在的路径,注:这个路径可以通过本机的网上邻居访问。

5.第三次表连接查询再次拖入一个表连接查询图标,将上次的查询结果与远程文本文件相连,再进行一次表连接查询。

6.插入/更新在EtltestTrans页面下,点击左侧的【核心对象】,点击【输出】,选中【插入/更新】,拖动到主窗口释放鼠标。

将它与第三次表连接查询进行连线。

双击”插入/更新”图标,进入编辑窗口。

数据库连接选择数据仓库的数据库,目标表选择对应的infortaotal表,在查询关键字里,表字段写name(表示仓库表里的字段),流里的字段1里写入NAME(即上一个步骤输入的内容里的NAME)。

比较符用”=”号。

点击Edit mapping按钮,将表字段,与流利的字段进行对应,即流里字段里的值输入到表里的哪个字段里去。

e.执行transformation这样,我们的transformation就创建完成了,这时,我们可以点击运行,测试创建的transformation是否成功。

点击这个按钮,就会执行ETL过程,这时我们可以查看数据仓库的表,如果有数据,并符合我们的要求,那么说明我们的transformation成功了。

2.4 创建job过程Job就是把一个或多个transformation按照一定的顺序组合起来,形成一个流程。

a.创建job文件通过菜单里的“文件-新建-作业”就可以创建一个job文件,点击另存为D:\etltest\jobtest.kjb。

b.job流程1.拖入图标并连线在EtlscriptJob页面,点击【核心对象】,点击【通用】,选中【START】拖动到主窗口释放鼠标,再选中一个【Transformation】,拖动到主窗口释放鼠标,建立【START】与【Transformation】之间的连接。

相关主题