Kettle学习大集合 联系客服

发布时间 : 星期五 文章Kettle学习大集合更新完毕开始阅读04af227e27284b73f242508c

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

下载地址:http://sourceforge.net/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。