- ETL数据整合与处理(Kettle)
- 王雪松 张良均主编
- 2582字
- 2025-03-12 17:56:22
1.1.2 选择ETL工具
根据不同的供应商可将ETL工具分为两种,一种是数据库厂商自带的ETL工具,如甲骨文数据仓库生成器(Oracle Warehouse Builder,OWB)、甲骨文数据生成器(Oracle Data Integrator,ODI)。另一种是第三方工具提供商,如Kettle、Informatica。开源世界中,也有很多的ETL工具,功能各异,强弱不一。
1.典型工具
(1)Oracle Data Integrator
甲骨文数据生成器(Oracle Data Integrator,ODI)前身是Sunopsis公司的数据集成平台(Active Integration Platform),其在2006年底被Oracle收购,整合并重新命名为Oracle Data Integrator,适用于ETL和数据集成的场景。与Oracle原来的ETL工具OWB相比,ODI有一些显著的特点,比如:虽然ODI和OWB一样都是ELT架构,但是ODI比OWB支持更多的异构的数据源;ODI提供了调用Web服务的机制,并且ODI的接口也可以为Web提供服务,支持和面向服务框架(SOA)环境进行交互;ODI能够检测事件,一个事件可以触发ODI的一个接口流程,从而完成近乎实时的数据集成。
ODI主要功能有以下特点。
①使用CDC作为变更数据捕获的捕获方式。
②代理支持并行处理和负载均衡。
③完善的权限控制、版本管理功能。
④支持数据质量检查,清洗和回收脏数据。
⑤支持与Java信息服务(Java Message Service,JMS)消息中间件集成。
⑥支持Web服务。
(2)SQL Server Integration Services
微软数据集成器(SQL Server Integration Services,SSIS)是SQL Server 2005的新成员。在SQL Server的早期版本中,其实已经有了SSIS的雏形,那时SSIS的名称为数据转换服务(DTS)。在SQL Server 2005的前两个版本SQL Server 7.0和SQL Server 2000中,DTS主要负责提取和加载。通过使用DTS,可以从任何数据源中提取数据并装载至其他数据库或文件中。SQL Server 2005对DTS进行了重新设计和改进,从而形成了SSIS。SSIS提供了数据相关的控制流、数据流、日志、变量、事件、连接管理等基础设施。控制流也称为工作流或任务流,它更像工作流,在工作流中每个组件都是一个任务。这些任务是按预定义的顺序执行的。任务流中可能有分支,当前任务的执行结果决定沿哪条分支前进。数据流是新的概念。数据流也称为流水线,主要解决数据转换的问题。数据流由一组预定义的转换操作组成。数据流的起点通常是数据源(源表);数据流的终点通常是数据的目的地(目标表)。可以将数据流的执行认为是一个流水线的过程。在该过程中,每一行数据都是装配线中需要处理的零件,而每一个转换都是装配线中的处理单元。
(3)Kettle
Kettle是Pentaho数据集成器(Pentaho Data Integration,PDI)的前身,由于Kettle已经被广大开发者接受,所以从业者都习惯性地把PDI也称为Kettle。Kettle是“Kettle E.T.T.L. Environment”的首字母缩写,表示抽取、转换、装入和加载数据,翻译成中文是水壶的意思,希望把各种数据放到一个壶里,像水一样,以一种指定的格式流出,表达数据流的含义。
Kettle的主要作者是马特·卡斯特尔(Matt Casters),他在2003年开始了Kettle工具的开发。Kettle在2006年初加入了开源的Pentaho公司,并正式命名为Pentaho Data Integration,之后PDI的发展越来越快,关注的人也越来越多。自2017年9月20日起,Pentaho被日本日立集团下的新公司Hitachi Vantara合并。
Kettle常见用途有以下5个方面。
①不同数据库和应用程序之间的数据迁移。
②充分利用云、集群和大规模并行处理环境,将大量数据集加载至数据库中。
③通过从非常简单到非常复杂的转换步骤进行数据清理。
④数据集成,包括利用实时ETL作为报表数据源的能力。
⑤内置支持缓慢变化的维度和代理键创建的数据仓库填充。
2.工具选择
在数据整合和处理中,选择ETL工具,通常考虑以下6个方面的因素。
(1)对平台的支持程度。
(2)对数据源的支持程度。
(3)抽取和装载的性能是不是较高,且对业务系统的性能影响大不大,倾入性高不高。
(4)数据转换和加工的功能强不强。
(5)是否具有管理和调度功能。
(6)是否具有良好的集成性和开放性。
Kettle是业界最受欢迎、使用人数最多和应用范围最广泛的ETL数据整合工具之一,深受用户的喜爱。相比于其他主流的ETL工具,Kettle的优势如表1-2所示。
表1-2 Kettle的优势

3.Kettle软件简介
Kettle由以下4个部分功能组成。
(1)SPOON:用户通过图形界面来设计ETL转换过程。
(2)PAN:允许用户使用时间调度器,批量运行由SPOON设计的ETL转换。PAN是一个后台执行的程序,以命令行方式执行转换,没有图形界面。
(3)CHEF:允许用户创建Job(作业)任务。作业任务通过设置的转换、任务和脚本等,来进行自动化更新数据仓库等复杂工作。
(4)KITCHEN:允许用户批量使用由CHEF设计的任务,如使用一个时间调度器,由时间触发执行相应的任务。KITCHEN也是一个后台运行的程序,以命令行方式执行作业任务。
作为广受用户欢迎的ETL工具,Kettle具有以下特点。
(1)开源软件,可以在多个常用的操作系统下运行。
(2)图形化操作,使用十分简单与方便。
(3)支持多种常用数据库和文件的数据格式,适应范围广。
(4)具有完整的工作流控制,能够较好地控制复杂的数据转换工作。
(5)提供定时调度功能,方便用户及时处理数据。
ETL属于偏底层的数据基础性工作,应用场景很多。从模式上划分,Kettle主要有以下3种应用场景。
(1)表视图模式。在同一网络环境下,对各种数据源的表数据进行抽取、过滤、清洗等,如历史数据同步、异构系统数据交互、数据发布或备份等都归属于表视图模式。
(2)前置机模式。前置机模式是典型的数据交换应用场景。以数据交换的A方和B方为例,A和B双方的网络不通,但是A和B都可以与前置机C进行连接,双方约定好前置机的数据结构,这个结构与A和B的数据结构基本上是不一致的,用户把应用数据按照数据标准推送到前置机上。以此类推,同样可以处理三方及以上的数据交换。
(3)文件模式。以数据交换的A和B方为例,A和B双方在物理上完全隔离,只能通过文件的方式来进行数据交互。文件类型有多种,如TXT、Excel、SQL和CSV等文件类型,在A方应用中开发一个接口用于生成标准格式的CSV文件,然后用USB盘或其他介质在某一时间复制文件,接入到B方的应用上,在B方上按照标准接口解析相应的文件,并接收数据。以此类推,同样可以处理三方及以上的文件。
ETL的数据处理过程主要包括数据初始化、迁移、同步、清洗、导入导出等步骤。从过程上划分,Kettle有以下5种应用场景。
(1)数据初始化。数据初始化是导入基础类数据,此时的数据可能有多种,如文本文件数据、从其他数据库中获取的数据、从Web服务中获取的数据等,数据经过处理后写入目标数据库中。初始化场景的关注点在于多种数据源。
(2)数据迁移。将某些数据迁移至另一个地方或几个地方。
(3)数据同步。数据同步是指将数据实时(较短时间内)同步至另一个提供查询或统计功能的数据库中。
(4)数据清洗。强调数据清洗过程,数据会经过校验、去重、合并、删除、计算等处理。
(5)导入导出。将经过清洗处理的数据导入导出到数据库或文件中。