kettle – 简介
ETL:简介
ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少的,Kettle就是强大的ETL工具。
kettle:简介
kettle - 概念
Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。
Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。
Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。
Kettle中有两种脚本文件,transformation(.ktr)和job(.kjb),transformation完成针对数据的基础转换,job则完成整个工作流的控制。
Kettle:四大家族(核心组件)
Chef(中文:厨师)、Spoon(中文:勺子)、Kitchen(中文:厨房)、Pan(中文:平底锅)
- Chef—工作(job)设计工具 (GUI方式)。
- Spoon—转换(transform)设计工具 (GUI方式)。
- Kitchen—工作(job)执行器 (命令行方式)。
- pan—转换(transform)执行器 (命令行方式)。
kettle:Job和Transformation
Kettle的执行分为两个层次:Job和Transformation。这两个层次的最主要的在于数据的传递和运行方式
- Transformation:定义对数据操作的容器,数据操作就是数据从输入到输出的一个过程,可以理解为比Job粒度更小一级的容器,我们将任务分解成Job,然后需要将Job分解成一个或多个Transformation,每个Transformation只完成一部分工作。
- Step:是Transformation内部的最小单元,每一个Step完成一个特定的功能。
- Job:负责将Transformation组织在一起进而完成某一工作,通常我们需要把一个大的任务分解成几个逻辑上隔离的Job,当这几个Job都完成了,也就说明这项任务完成了。
- Job Entry:Job Entry是Job内部的执行单元,每一个Job Entry用于实现特定的功能,如:验证表是否存在,发送邮件等。可以通过Job来执行另一个Job或者Transformation,也就是说Transformation和Job都可以作为Job Entry。
- Hop:用于在Transformation中连接Step,或者在Job中连接Job Entry,是一个数据流的图形化表示。
在Kettle中Job中的JobEntry是串行执行的,故Job中必须有一个Start的JobEntry;Transformation中的Step是并行执行的。