什么是kettle

Kettle 是”Kettle E.T.T.L. Envirnonment”只取首字母的缩写,这意味着它被设计用来帮助你实现你的ETTL 需要:抽取、转换、装入和加载数据;翻译成中文名称应该叫水壶,名字的起源正如该项目的主程序员MATT 在一个论坛里说的哪样:希望把各种数据放到一个壶里然后以一种指定的格式流出。

Kettle的整体结构图

image.png

kettle流程讲解

1 转换

转换步骤,可以理解为将一个或者多个不同的数据源组装成一条数据流水线。然后最终输出到某一个地方,文件或者数据库等
比如将 表1 由数据库A 抽到数据库 B
image.png

2 作业

作业,可以调度设计好的转换,也可以执行一些文件处理(比较,删除等),还可以ftp上传,下载文件,发送邮件,执行shell命令等

image.png

kettle基础操作

1 创建连接/共享连接

新建连接
image.png
维护连接 选择对应数据库 ,维护连接信息
image.png
共享连接 — 共享之后,其他的转换也可以使用此连接
image.png

2 输入 (表输入,excle输入)

表输入
image.png作用: 从某个数据库中按条件查找某个表的数据

excle输入
image.png
作用:读取excel文件,和csv文件读取类似,有表单,表头,出错(是否忽略错误,严格的类型判断等)的处理

3 输出(表输出,文本文件输出,excel输出)

EXCEL 输出
image.png
作用: 将数据写入excel
image.png作用:将数据写入到数据库,可以指定是否truncate表,编辑前一步转换字段与现在表结构的字段映射关系。以及每次commit的记录数大小等

文本文件输出
image.png
作用: 将数据写入到文本文件,通常是csv文件

4 数据处理 (执行sql脚本)

image.png

5 提示

尽量在数据库中完成数据的操作, 比如 截取数据,数据类型转换,数据排序, 添加常量。。。 数据库的效率相比kettle要高很多

6 调度

创建.bat 脚本
例如 : kettle.bat 内容如下

  1. #切换 kettle目录中
  2. cd C:\pdi-ce-7.1.0.0-12\data-integration\
  3. #通过kitchen.bat执行作业 作业目录 日志级别 日志存放目录
  4. kitchen.bat /file:C:\Users\ZCX\Desktop\GateDataJob.kjb /level:Basic>> D:\kettle\log\kettle_%date:~0,4%%date:~5,2%%date:~8,2%.log

使用任务计划程序调度
image.png

kettle总结

  1. Kettle的功能非常强大,数据抽取率也比较高,开源产品,可以进行第三方修改,工具中的控件能够实现数据抽取的大部分需求<br /> 所有功能支持控件化,使用简单 (性能需要考虑)