详解一款ETL工具--数据清洗首推kettle

hyfsoft 2019-04-28

概述

ETL(即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少。kettle是纯java编写,支持图形化的GUI设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面有着比较稳定的表现,下面一起来看下吧。


Kettle概念

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

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

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

详解一款ETL工具--数据清洗首推kettle

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


Kettle组成

kettle家族目前包括四个产品,spoon,pan,chef,kitchen

详解一款ETL工具--数据清洗首推kettle


Kettle-ETL

1、ETL

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

转换(Transform):任何对数据的处理过程都是转换。这些处理过程通常包括(但不限于)下面一些操作:

1、移动数据

2、根据规则验证数据

3、修改数据的内容或者数据结构

4、集成多个数据源的数据

5、根据处理后的数据计算派生值或者聚集值

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

2、ETL实现的主要转换

详解一款ETL工具--数据清洗首推kettle

1、对空值的处理

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

2、对数据格式的规范化

根据业务数据源中各个字段的数据类型,进行数据格式的规范和统一。

例如,统一将数值类型转化成字符串类型。

3、根据业务需求进行字段的拆分或者合并

依据业务需求对字段可进行分解。

例如,主叫号020-88888888,可进行区域码和电话号码分解。

区域号:020

电话号码: 88888888

4、对缺失数据的替换

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

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

6、 根据编码表进行数据唯一性的转换

根据编码表制定的业务规范进行数据的转换,实现数据仓库系统内部数据的一致性。

对无依赖性的非法数据,可替换或导出到错误数据文件中,保证主键唯一记录的加载。


ETL软件

详解一款ETL工具--数据清洗首推kettle

商用ETL工具软件

Informatica、IBM DataStage、Microsoft SSIS 、Oracle ODI

开源ETL工具软件

Kettle 、Talend、CloverETL、Ketl、Octopus

总结:

Kettle和informatica都提供了大量的转换步骤,脚本功能,都可以处理复制的ETL转换。

通常情况下informatica比kettle更快。informatica有下推优化,缓存查询等提高性能的手段。但是如果你对kettle和数据库有足够的了解,做一些调整,你可以提高kettle的速度,在一些情况下可以达到甚至超过informatica的速度。


篇幅有限,今天主要介绍一下kettle方面的内容,后面有空再整理下kettle搭建及怎么使用,感兴趣的朋友可以关注一下~

详解一款ETL工具--数据清洗首推kettle

相关推荐