Kettle

Kettle 是⼀款纯 Java 编写的开源 ETL ⼯具。 Kettle 是 PDI ( Pentaho Data Integeration )的前⾝。表⽰抽取、转换、装⼊和加载数据, 翻译成中⽂是⽔壶的意思,希望把各种数据放到⼀个壶⾥,像⽔⼀样,以⼀种指定的格式流出,表达数据流的含义。

Kettle 共有两类设计模式,转换( Transformation )和作业( Job );
转换⽤于控制数据处理和流转,作业则⽤于转换集成和流程控制。

ETL

ETL 的 3 个字⺟分别代表 Extract (抽取)、 Transform (转换)和 Load (装载)。
数据抽取:从数据源端的系统中,抽取⽬标端系统需要的数据。
数据转换:从数据源端获取的数据按照业务需求,转换成⽬标端要求的数据形式,并对错误、不规范、不⼀致的数据(俗称”脏数据”)进⾏清洗和加⼯。
数据装载:将转换后的数据装载到指定数据库或⽂件中。

练习

1.处理等于 3000 抽取到 emp3000 ,不等于抽取到 empnot3000

计算每个员⼯的年薪

2.查询所有⼤于平均⼯资的员⼯信息

3.表 A 和表 B 数据结构完全相同,表⾃建,数据⾃定义 表 A 数据存在新增 & 修改 & 删除 操作,实现表 A 和表 B 的数据保持⼀致

(表A修改后记得提交!)

执行后表B与表A数据一致(将表A更新到表B)

4.数据来⾃ excel ,利⽤ PRODUCTID 和 CUSTOMID 进⾏关联后,插⼊到本地数据库中的⼀个表中

1
2
3
4
5
6
7
--建表
create table pcid(
ORDERID varchar2(100), ZTIME varchar2(100),
PRODUCTID varchar2(100), SALE_AMOUNT number(5),
CUSTOMID varchar2(100), PRICE number(10,2),
CUSTOMNAME varchar2(100), COUNTRY varchar2(100)
);

执行后查看表pcid

新建作业,发送邮件
SMTP 服务需要⾃⼰登录 qq 邮箱开通:账号与安全-安全设置-根据提⽰开通服务

转换错误执行发送邮件,之后成功接收邮件

使⽤ windows ⾃带任务计划管理程序定时调⽤ Kettle 作业,同时输出 BASIC 级别⽇志
将以下代码写入到winjob.bat

1
2
3
D:
cd D:\data-integration
kitchen /rep huangwenzhe /user admin /pass admin /file D:\kettle\huangwenzhe\kjob1.kjb /level basic>D:\kettle\huangwenzhe\kettle.log

Windows管理工具-任务计划程序-操作-创建基本任务

到点任务执行,发送邮件并生成log