ETL-Kettle学习(一)

ETL-Kettle学习(一)–摆渡人

ETL简介

ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少的,Kettle就是强大的ETL工具。

Kettle简介

概念:
Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。

Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。

Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。

Kettle中有两种脚本文件,transformation(.ktr)和job(.kjb),transformation完成针对数据的基础转换,job则完成整个工作流的控制。

Kettle:四大家族(核心组件)

ETL-Kettle学习(一)
Chef(中文:厨师)、Kitchen(中文:厨房)、Spoon(中文:勺子)、Pan(中文:平底锅)

Chef—工作(job)设计工具 (GUI方式)

Kitchen—工作(job)执行器 (命令行方式)

Spoon—转换(transform)设计工具 (GUI方式)

pan—转换(transform)执行器 (命令行方式)

Job和Transformation的差别:Transformation专注于数据的ETL,而Job的范围比较广,可以是Transformation,也可以是Mail、SQL、Shell、FTP等,甚至可以是另外一个Job。

Kettle概念图
ETL-Kettle学习(一)
Kettle的执行分为两个层次JobTransformation。这两个层次的最主要的在于数据的传递和运行方式

1.Transformation:定义对数据操作的容器,数据操作就是数据从输入到输出的一个过程,可以理解为比Job粒度更小一级的容器,我们将任务分解成Job,然后需要将Job分解成一个或多个Transformation,每个Transformation只完成一部分工作。
(定义对数据操作的容器,数据操作就是数据从输入到输出的一个过程,可以理解为比作业粒度更小一级的容器,我们将任务分解成作业,然后需要将作业分解成一个或多个转换,每个转换只完成一部分工作。)
2.Step:是Transformation内部的最小单元,每一个Step完成一个特定的功能。

3.Job:负责将Transformation组织在一起进而完成某一工作,通常我们需要把一个大的任务分解成几个逻辑上隔离的Job,当这几个Job都完成了,也就说明这项任务完成了。
(负责将[转换]组织在一起进而完成某一块工作,通常我们需要把一个大的任务分解成几个逻辑上隔离的作业,当这几个作业都完成了,也就说明这项任务完成了。)

4.Job Entry:Job Entry是Job内部的执行单元,每一个Job Entry用于实现特定的功能,如:验证表是否存在,发送邮件等。可以通过Job来执行另一个Job或者Transformation,也就是说Transformation和Job都可以作为Job Entry。

5.Hop:用于在Transformation中连接Step,或者在Job中连接Job Entry,是一个数据流的图形化表示。

注:在Kettle中Job中的JobEntry是串行执行的,故Job中必须有一个Start的JobEntry;Transformation中的Step是并行执行的。

下载及安装:
1.安装好JDK1.8(契合)
链接:https://pan.baidu.com/s/1ovgMlPZXBgPeRXbVu0-Sfw
提取码:xnad
2.Kettle下载
链接: https://pan.baidu.com/s/15DgzGD7P5l9ztXzqkEQyTg
提取码: udbf
3.Kettle 连接 MySQL mysql-connector-java插件
链接:https://pan.baidu.com/s/1txFjLBUIFfWD4W0I6yG6VQ
提取码:82pv

打开kettle文件:pdi-ce-8.2.0.0-342\data-integration\Spoon.bat

界面:
ETL-Kettle学习(一)