你不知道的Kettle学习笔记1--Kettle详解

一、Kettle
* Kettle是一款国外开源(免费:受欢迎)的ETL工具,
* 纯Java编写(Java开发很好的集成),可以在windows、Linux、Unix上运行(Linux服务器流行时代下,Kettle更加受欢迎),
* 数据抽取高效稳定(更更加受欢迎)。
Kettle中文名俗称“水壶”,开发目的是将各种数据放到一个水壶中,然后经过各种处理加工,以特定的格式流出。

二、Kettle-ETL
(一)ETL
抽取(Extract):一般抽取过程需要连接到不同的数据资源,以便为随后的步骤(转换、加载、分析、报表展示等)提供数据。数据抽取部分看上去简单而琐碎,实际上是ETL解决方案的成功实施的一个主要障碍。

转换(Transform):任何对数据的处理过程都是转换。这些处理过程通常包括(但不限于)下面一些操作:
1、移动数据
2、根据规则验证数据
3、修改数据的内容或者数据结构
4、集成多个数据源的数据
5、根据处理后的数据计算派生值或者聚集值

加载(Load):将数据加载到目标系统的所有操作

(二)、ETL实现的主要转换

1、对空值的处理
如果在转换过程中捕获到某些字段存在空值,在进行加载时需要将空值替换成某一数据或者直接进行加载,不做任何转换。

2、对数据格式的规范化
根据业务数据源中各个字段的数据类型,进行数据格式的规范和统一。
例如,统一将数值类型转化成字符串类型。

3、根据业务需求进行字段的拆分或者合并
依据业务需求对字段可进行分解。
例如,主叫号020-88888888,可进行区域码和电话号码分解。
区域号:020
电话号码: 88888888

4、对缺失数据的替换
根据业务需求对可实现无效数据、缺失数据进行替换

5、根据业务规则对数据进行过滤

6、 根据编码表进行数据唯一性的转换
根据编码表制定的业务规范进行数据的转换,实现数据仓库系统内部数据的一致性。
对无依赖性的非法数据,可替换或导出到错误数据文件中,保证主键唯一记录的加载。

三、ETL在BI中的作用

四、ETL实现方式
1、通过Java、Python等语言,自己手工编码,编写脚本,自己开发ETL软件。
2、购买商业的ETL工具软件。
3、使用开源免费的ETL软件,例如Kettle。
自己研发ETL工具软件前期开发成本过高,而商用ETL的后期维护成本过高,总的来说,使用开源的ETL工具软件最划算。

五、ETL软件

商用ETL工具软件
Informatica、IBM DataStage、Microsoft SSIS 、Oracle ODI

开源ETL工具软件
Kettle 、Talend、CloverETL、Ketl、Octopus

1、Kettle软件介绍
Kettle是一款开源的ETL(Extract Transformation Load) 工具,用来完成数据的抽取,清洗、转换和加载等数据处理方面的工作。

2、Kettle历史
原作者: Matt oracle工程师-3年左右拿到开源license
License: 4.3 以前 LGPL (改动需开源),4.3 以后改为Apache 2 (可以改商业) ,当前版本:Version 4.4 (2013年) 。
2006年 Kettle 2.2, Kettle 2.3 (Kettle 开源,License 为 LGPL)
2007年 Kettle 2.4, Kettle 2.5(被Pentaho 公司收购,更名为 PDI)
2008年 Kettle 3.0 ,Kettle 3.1
2009年 Kettle 3.2 (一个使用时间较长的稳定版本)
2K010年 Kettle 4.0 ,Kettle 4.1
2011年 Kettle 4.2
2012年 Kettle 4.3 ,Kettle 4.4 (License 变更为 Apache 2,支持大数据)
2013年 Kettle 5.0

3、Kettle特点

4、Kettle在国内应用

5、Kettle子程序的功能和启动方式
Spoon.bat:图形界面方式启动作业和转换设计器
Pan.bat:命令行方式执行转换
Kitchen.bat:启动WEB服务器,用于Kettlede远程运行或集群运行。
Encr.bat:密码加密

6、Kettle常用控件

7、Kettle与Informatica
Kettle和informatica都提供了大量的转换步骤,脚本功能,都可以处理复制的ETL转换。
通常情况下informatica比kettle更快。informatica有下推优化,缓存查询等提高性能的手段。但是如果你对kettle和数据库有足够的了解,做一些调整,你可以提高kettle的速度,在一些情况下可以达到甚至超过informatica的速度。

kettle的优点
(1)kettle的易用性比informatica好,需要培训要少很多。
(2)kettle不需要像informatica那样大的前期投入。
(3)kettle的插件架构支持快速定制开发。

informatica的优点
(1)informatica的错误报告功能比kettle更友好,更容易定位错误。kettle通常只把异常抛出,需要实施人员有更丰富的经验。
(2)informatica比kettle有更好的监控工具和负载均衡等企业级应用功能,更适合大规模的ETL应用。

你可能感兴趣的:(大数据,Kettle,BI,etl,商务智能)