工具下载: 去公众号 "taskctl" 回复内容 "领取" 或 "软件" 即可
介绍:
ETL负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成, 最后加载到数据仓库或数据集市中,成为联机分析处理、 数据挖掘的基础。 ETL是数据仓库中的非常重要的一环。
它是承前启后的必要的一步。相对于关系数据库, 数据仓库技术没有严格的数学理论基础,它更面向实际工程应用。 所以从工程应用的角度来考虑, 按照物理数据模型的要求加载数据并对数据进行一些系列处理, 处理过程与经验直接相关, 同时这部分的工作直接关系数据仓库中数据的质量, 从而影响到联机分析处理和数据挖掘的结果的质量。
ETL中的关键技术
ETL过程中的主要环节就是数据抽取、数据转换和加工、数据装载。为了实现这些功能,各个ETL工具一般会进行一些功能上的扩充,例如:工作流、调度引擎、规则引擎、脚本支持、统计信息等。
数据抽取
数据抽取是从数据源中抽取数据的过程。实际应用中,数据源较多采用的是关系数据库。从数据库中抽取数据一般有以下几种方式。
(1)全量抽取
全量抽取类似于数据迁移或数据复制,它将数据源中的表或视图的数据原封不动的从数据库中抽取出来,并转换成自己的ETL工具可以识别的格式。全量抽取比较简单。
(2)增量抽取
增量抽取只抽取自上次抽取以来数据库中要抽取的表中新增或修改的数据。
在ETL使用过程中。增量抽取应用较全量抽取应用更广泛。如何捕获变化的数据是增量抽取的关键。对捕获方法一般有两点要求:准确性,能够将业务系统中的变化数据按一定的频率准确地捕获到;性能,不能对业务系统造成太大的压力,影响现有业务。
目前增量数据抽取中常用的捕获变化数据的方法有:
a.触发器:在要抽取的表上建立需要的触发器,一般要建立插入、修改、删除三个触发器,每当源表中的数据发生变化,就被相应的触发器将变化的数据写入一个临时表,抽取线程从临时表中抽取数据,临时表中抽取过的数据被标记或删除。触发器方式的优点是数据抽取的性能较高,缺点是要求业务表建立触发器,对业务系统有一定的影响。
b.时间戳:它是一种基于快照比较的变化数据捕获方式,在源表上增加一个时间戳字段,系统中更新修改表数据的时候,同时修改时间戳字段的值。当进行数据抽取时,通过比较系统时间与时间戳字段的值来决定抽取哪些数据。有的数据库的时间戳支持自动更新,即表的其它字段的数据发生改变时,自动更新时间戳字段的值。有的数据库不支持时间戳的自动更新,这就要求业务系统在更新业务数据时,手工更新时间戳字段。
同触发器方式一样,时间戳方式的性能也比较好,数据抽取相对清楚简单,但对业务系统也有很大的倾入性(加入额外的时间戳字段),特别是对不支持时间戳的自动更新的数据库,还要求业务系统进行额外的更新时间戳操作。另外,无法捕获对时间戳以前数据的delete和update操作,在数据准确性上受到了一定的限制。
c.全表比对:典型的全表比对的方式是采用MD5校验码。ETL工具事先为要抽取的表建立一个结构类似的MD5临时表,该临时表记录源表主键以及根据所有字段的数据计算出来的MD5校验码。每次进行数据抽取时,对源表和MD5临时表进行MD5校验码的比对,从而决定源表中的数据是新增、修改还是删除,同时更新MD5校验码。
MD5方式的优点是对源系统的倾入性较小(仅需要建立一个MD5临时表),但缺点也是显而易见的,与触发器和时间戳方式中的主动通知不同,MD5方式是被动的进行全表数据的比对,性能较差。当表中没有主键或唯一列且含有重复记录时,MD5方式的准确性较差。
d.日志对比:通过分析数据库自身的日志来判断变化的数据。Oracle的数据捕获(CDC,Changed Data Capture)技术是这方面的代表。CDC 特性是在Oracle9i数据库中引入的。CDC能够帮助你识别从上次抽取之后发生变化的数据。
利用CDC,在对源表进行insert、update或 delete等操作的同时就可以提取数据,并且变化的数据被保存在数据库的变化表中。这样就可以捕获发生变化的数据,然后利用数据库视图以一种可控的方式提供给目标系统。CDC体系结构基于发布者/订阅者模型。发布者捕捉变化数据并提供给订阅者。订阅者使用从发布者那里获得的变化数据。
通常,CDC系统拥有一个发布者和多个订阅者。发布者首先需要识别捕获变化数据所需的源表。然后,它捕捉变化的数据并将其保存在特别创建的变化表中。它还使订阅者能够控制对变化数据的访问。订阅者需要清楚自己感兴趣的是哪些变化数据。一个订阅者可能不会对发布者发布的所有数据都感兴趣。订阅者需要创建一个订阅者视图来访问经发布者授权可以访问的变化数据。CDC分为同步模式和异步模式,同步模式实时的捕获变化数据并存储到变化表中,发布者与订阅都位于同一数据库中。异步模式则是基于Oracle的流复制技术。
ETL处理的数据源除了关系数据库外,还可能是文件,例如txt文件、excel文件、xml文件等。对文件数据的抽取一般是进行全量抽取,一次抽取前可保存文件的时间戳或计算文件的MD5校验码,下次抽取时进行比对,如果相同则可忽略本次抽取。
数据转换和加工
从数据源中抽取的数据不一定完全满足目的库的要求,例如数据格式的不一致、数据输入错误、数据不完整等等,因此有必要对抽取出的数据进行数据转换和加工。
数据的转换和加工可以在ETL引擎中进行,也可以在数据抽取过程中利用关系数据库的特性同时进行。
(1)ETL引擎中的数据转换和加工
ETL引擎中一般以组件化的方式实现数据转换。常用的数据转换组件有字段映射、数据过滤、数据清洗、数据替换、数据计算、数据验证、数据加解密、数据合并、数据拆分等。这些组件如同一条流水线上的一道道工序,它们是可插拔的,且可以任意组装,各组件之间通过数据总线共享数据。
有些ETL工具还提供了脚本支持,使得用户可以以一种编程的方式定制数据的转换和加工行为。
(2)在数据库中进行数据加工
关系数据库本身已经提供了强大的SQL、函数来支持数据的加工,如在SQL查询语句中添加where条件进行过滤,查询中重命名字段名与目的表进行映射,substr函数,case条件判断等等。下面是一个SQL查询的例子。
select ID as USERID, substr(TITLE, 1, 20) as TITLE, case when REMARK is null then ' ' else REMARK end as CONTENT from TB_REMARK where ID > 100;
相比在ETL引擎中进行数据转换和加工,直接在SQL语句中进行转换和加工更加简单清晰,性能更高。对于SQL语句无法处理的可以交由ETL引擎处理。
数据装载
将转换和加工后的数据装载到目的库中通常是ETL过程的最后步骤。装载数据的最佳方法取决于所执行操作的类型以及需要装入多少数据。当目的库是关系数据库时,一般来说有两种装载方式:
- 直接SQL语句进行insert、update、delete操作。
- 采用批量装载方法,如bcp、bulk、关系数据库特有的批量装载工具或api。
大多数情况下会使用第一种方法,因为它们进行了日志记录并且是可恢复的。但是,批量装载操作易于使用,并且在装入大量数据时效率较高。使用哪种数据装载方法取决于业务系统的需要。
ETL工具综合对比表:
最后
现在有很多成熟的工具提供ETL功能,且不说他们的好坏。
从应用角度来说,ETL的过程其实不是非常复杂,这些工具给数据仓库工程带来了很大的便利性,特别是开发的便利和维护的便利。但另一方面,开发人员容易迷失在这些工具中。举个例子,VB是一种非常简单的语言并且也是非常易用的编程工具,上手特别快,但是真正VB的高手有多少?
微软设计的产品通常有个原则是“将使用者当作傻瓜”,在这个原则下,微软的东西确实非常好用,但是对于开发者,如果你自己也将自己当作傻瓜,那就真的傻了。ETL工具也是一样,这些工具为我们提供图形化界面,让我们将主要的精力放在规则上,以期提高开发效率。从使用效果来说,确实使用这些工具能够非常快速地构建一个job来处理某个数据,不过从整体来看,并不见得他的整体效率会高多少。
问题主要不是出在工具上,而是在设计、开发人员上。他们迷失在工具中,没有去探求ETL的本质。可以说这些工具应用了这么长时间,在这么多项目、环境中应用,它必然有它成功之处,它必定体现了ETL的本质。
如果我们不透过表面这些工具的简单使用去看它背后蕴涵的思想,最终我们作出来的东西也就是一个个独立的job,将他们整合起来仍然有巨大的工作量。大家都知道“理论与实践相结合”,如果在一个领域有所超越,必须要在理论水平上达到一定的高度.人一定要靠自己!
相关推荐
本篇文章将对几种主流的ETL工具进行深入的对比分析,以帮助读者了解它们的特点、优势及适用场景。 1. **Informatica** Informatica是一款功能强大的ETL工具,以其用户友好的界面和丰富的数据处理能力而闻名。它...
对当前几大主流etl工具,informatica powercenter,IBM datastage,Business Objects,Cognos,Insight,IBM MetaData Workbench + Metadata server,石竹 MetaOne进行横向的分析比较.
下面我们将对目前市面上主流的几款ETL工具进行比较。 ETL 工具测试结果 我们对四个ETL工具进行了测试,分别是DataIntegrator、Data Stage、Informatica和OWB。测试结果显示,除了Data Stage外,其他三个工具的数据...
ETL Automation 是由 Teradata 公司发布的 ETL 流程调度产品,使用 JAVA 程序开发,支持跨平台部署,安装、维护简单。
本篇将对比分析三款主流的ETL工具——Informatica、Datastage和BeeDI,探讨它们在市场占有率、服务支持、平台兼容性、数据源与目标数据库支持、数据抽取、转换和装载功能等方面的差异。 首先,从市场角度来看,...
Kettle是一款开源的ETL工具,由Pentaho公司开发,因其强大的数据转换能力和灵活的插件体系而广受赞誉。本项目是基于Kettle实现的Web版ETL工具,旨在提供一种更直观、易用的方式来执行数据处理任务,尤其适合需要进行...
在这个主题中,我们将深入探讨ETL工具的开源特性以及配置使用的一些基本知识。 首先,ETL工具的开源性质意味着用户可以免费获取并根据自己的需求进行定制。开源软件通常拥有活跃的社区支持,开发者可以通过源代码...
**Kettle**(Pentaho Data Integration)是一款强大的开源ETL工具,以其易用性和灵活性而闻名。Kettle 支持多种数据源和目标,提供丰富的转换步骤和作业选项。以下是Kettle的一些基本使用技巧: - **创建转换**:...
综上所述,TASKCTL作为一款强大的ETL调度工具,凭借其企业级的性能、稳定性及易用性,为大数据环境下的数据处理提供了可靠的支持。通过Taskctl 4.0 Setup.exe的安装,以及readme.txt的辅助,用户可以便捷地将TASKCTL...
"ETL工具箱 中文版"通常指的是提供一系列ETL功能的软件,旨在帮助用户更方便地执行这些任务,而且界面和文档为中文,更适合中国用户使用。 在数据仓库领域,ETL工具扮演着至关重要的角色。它们的主要功能包括: 1....
BO DataStage是由SAP BusinessObjects提供的一款强大的企业级ETL工具,广泛应用于大规模数据集成项目中。其主要特点包括: - **高性能并行处理**:支持多线程、多任务并行处理机制,能够高效地处理海量数据。 - **...
ETL管理工具通常提供图形化界面,简化了上述步骤的配置和调度,同时也提供了监控和日志记录功能,以便追踪数据流动和处理状态。这些工具可能包括Talend、Informatica、Microsoft SQL Server Integration Services ...
【标题】中的“基于Web版Kettle开发的一套分布式综合调度、管理、ETL开发的用户专业版BS架构工具”指的是使用Kettle(Pentaho Data Integration)进行ETL(提取、转换、加载)过程,并且是Web化的版本,便于在浏览器...
#### 四、开源ETL工具对比 目前市场上存在多种开源ETL工具,其中Pentaho Data Integration (Kettle) 和 Talend Open Studio 是较为流行的两款。 ##### 1. Pentaho Data Integration (Kettle) - **特点**:提供了...
这款工具适用于数据开发人员、大数据从业人员以及运维人员,帮助他们理解和掌握批量作业调度的技术特性和功能。 批量作业在银行业中扮演着至关重要的角色,因为它们处理和传输大量的关键数据。随着大数据时代的到来...
本文件“ETL工具对比分析search.rar”提供了对当前市场上主流ETL工具的详细比较,同时也涵盖了报表工具和元数据工具的优劣分析。以下是对这些工具的深入探讨: 1. ETL工具: - **Cognos Data Movement**:IBM的...
在当前信息技术领域中,随着数据量的增长和数据仓库的规模不断扩大,数据集成任务也随之增多,单机调度已经无法高效应对大量复杂的ETL(Extraction, Transformation, Loading)任务。为了解决ETL任务调度效率低下、...
Kettle作为一款流行的开源ETL(Extract, Transform, Load)工具,因其简单易用及广泛的应用,在数据集成领域占有一席之地。然而,Kettle在调度监控方面并非一开始就有成熟的方案,这就导致了在一些企业实施项目时,...
4. ETL工具比较:分析市场上的主流ETL工具,如Informatica、Talend、Microsoft SQL Server Integration Services (SSIS)等,包括其优缺点和适用场景。 5. 数据转换技巧:讲解数据转换的常用技术,如SQL脚本、数据流...
6. 关键词解析:文件中提到的关键词,如“分布式ETL”、“任务调度”和“基于置换的离散型粒子群优化算法”,反映了文章研究的核心内容和领域。 7. 中图分类号与文献标志码:此类信息有助于学术界对文章的归类和...