什么是kettle
Kettle 是”Kettle E.T.T.L. Envirnonment”只取首字母的缩写,这意味着它被设计用来帮助你实现你的ETTL 需要:抽取、转换、装入和加载数据;翻译成中文名称应该叫水壶,名字的起源正如该项目的主程序员MATT 在一个论坛里说的哪样:希望把各种数据放到一个壶里然后以一种指定的格式流出。
Kettle的整体结构图
kettle流程讲解
1 转换
转换步骤,可以理解为将一个或者多个不同的数据源组装成一条数据流水线。然后最终输出到某一个地方,文件或者数据库等
比如将 表1 由数据库A 抽到数据库 B
2 作业
作业,可以调度设计好的转换,也可以执行一些文件处理(比较,删除等),还可以ftp上传,下载文件,发送邮件,执行shell命令等
kettle基础操作
1 创建连接/共享连接
新建连接
维护连接 选择对应数据库 ,维护连接信息
共享连接 — 共享之后,其他的转换也可以使用此连接
2 输入 (表输入,excle输入)
表输入
作用: 从某个数据库中按条件查找某个表的数据
excle输入
作用:读取excel文件,和csv文件读取类似,有表单,表头,出错(是否忽略错误,严格的类型判断等)的处理
3 输出(表输出,文本文件输出,excel输出)
EXCEL 输出
作用: 将数据写入excel
作用:将数据写入到数据库,可以指定是否truncate表,编辑前一步转换字段与现在表结构的字段映射关系。以及每次commit的记录数大小等
文本文件输出
作用: 将数据写入到文本文件,通常是csv文件
4 数据处理 (执行sql脚本)
5 提示
尽量在数据库中完成数据的操作, 比如 截取数据,数据类型转换,数据排序, 添加常量。。。 数据库的效率相比kettle要高很多
6 调度
创建.bat 脚本
例如 : kettle.bat 内容如下
#切换 到kettle目录中
cd C:\pdi-ce-7.1.0.0-12\data-integration\
#通过kitchen.bat执行作业 作业目录 日志级别 日志存放目录
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
使用任务计划程序调度
kettle总结
Kettle的功能非常强大,数据抽取率也比较高,开源产品,可以进行第三方修改,工具中的控件能够实现数据抽取的大部分需求<br /> 所有功能支持控件化,使用简单 (性能需要考虑)