
Kettle也叫PDI,在2006年Kettle加入了开源的BI组织Pentaho,正式命名为PDI,英文名全称为Pentaho Data Integeration。Kettle是“Kettle E.T.T.L. Envirnonment”只取首字母的缩写,这意味着它被设计用来帮助你实现你的ETL需要:抽取、转换、装入和加载数据;翻译成中文名称应该叫水壶,名字的起源正如该项目的主程序员MATT在一个论坛里说的那样:希望把各种数据放到一个壶里然后以一种指定的格式流出。
Kettle允许管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么。Kettle中有两种脚本文件,转换(transformation)和工作(job),transformation完成针对数据的基础转换,job则完成整个工作流的控制。
Kettle整体结构图:

Kettle的术语:
- Transformation:转换步骤,可以理解为将一个或者多个不同的数据源组装成一条流水线。然后最终输出到某一个地方,文件或者数据库等。
- Job:作业,可以调度设计好的转换,也可以执行一些文件处理(比较、删除),还可以上传下载文件、发送邮件、执行Shell命令等。Job与Transformation的差别是:Transformation专注于数据的ETL,而Job的范围比较广,可以是Transformation,也可以是Mail、SQL、Shell、FTP等等,甚至可以是另外一个Job。
- Hop:连接Transformation步骤或者连接Job(实际上就是执行顺序)的连线。
Transformation hop :主要表示数据的流向。从输入、过滤等转行操作,到输出。
- Job hop:可设置执行条件:无条件执行、当上一个Job执行结果为true时执行、当上一个Job执行结果为false时执行
Kettle家族目前包括4个产品:Spoon、Pan、CHEF、Kitchen。
- SPOON允许你通过图形界面来设计ETTLE转换过程(Transformation)。
- PAN允许你批量运行由Spoon设计的ETL转换(例如使用一个时间调度器)。Pan是一个后台执行的程序,没有图形界面。
- CHEF允许你创建任务(Job)。任务通过允许每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。任务通过允许每个转换,任务,脚本等等。任务将会被检查,看看是否正确的运行了。
- KITCHEN允许你批量使用由Chef设计的任务(例如使用一个时间调度器)。KITCHEN也是一个后台运行的程序。
- Spoon.bat:在windows平台运行Spoon。
- Spoon.sh:在Linux、Apple OSQ、Solaris平台运行Spoon。
- 资源库是用来保存转换任务的,用户通过图形界面创建的转换任务可以保存在资源库中。资源库可以使多用户共享转换任务,转换任务在资源库中是以文件夹形式分组管理的,用户可以自定义文件夹名称。资源库有两种形式:Kettle database repository; Kettle file repository。
Kettle的应用场景:表视图模式、文件模式。
Kettle转化功能介绍:kettle中有两种脚本文件,Transformation(.ktr)和Job(.kjb),Transformation完成针对数据的基础装换,job则完成整个工作流的控制。
Kettle的功能非常强大,数据抽取效率也比较高,开源产品,可以进行第三方修改,工具中的控件能够实现数据抽取的大部分需求。所有功能支持控件化,使用简单。