原文地址:
http://hi.baidu.com/mcj0127/blog/item/a0a61dee39d325f2b2fb959d.html
ETL(extract, transform and load)产品乍看起来似乎并不起眼,单就此项技术本身而言,几乎也没什么特别深奥之处,但是在实际项目中,却常常在这个环节耗费太多的人力,而在后续的维护工作中,更是往往让人伤透脑筋。之所以出现这种状况,恰恰与项目初期没有正确估计ETL工作、没有认真考虑其工具支撑有很大关系。
做ETL产品的选型,仍然需要从以前说的四点(即成本、人员经验、案例和技术支持)来考量。在此,主要列举三种主流ETL产品:Ascential公司的Datastage、Informatica公司的Powercenter、 NCR Teradata公司的ETL Automation。其中,ETL Automation相对其他两种有些特别之处,放在后面评述。
旗鼓相当:Datastage与Powercenter
就Datastage和Powercenter而言,这两者目前占据了国内市场绝大部分的份额,在成本上看水平相当,虽然市面上还有诸如Business Objects公司的Data Integrator、Cognos公司的DecisionStream,但尚属星星之火,未成燎原之势。
谈Datastage和Powercenter,如果有人说这个就是比那个好,那听者就要小心一点了。在这种情况下有两种可能:他或者是其中一个厂商的员工,或者就是在某个产品上有很多经验而在另一产品上经验缺乏的开发者。为什么得出这一结论?一个很简单的事实是,从网络上大家对它们的讨论和争执来看,基本上是各有千秋,都有着相当数量的成功案例和实施高手。确实,工具是死的,人才是活的。在两大ETL工具技术的比对上,可以从对ETL流程的支持、对元数据的支持、对数据质量的支持、维护的方便性、定制开发功能的支持等方面考虑。
一个项目中,从数据源到最终目标表,多则上百个ETL过程,少则也有十几个。这些过程之间的依赖关系、出错控制以及恢复的流程处理,都是工具需要重点考虑。在这一方面,Datastage的早期版本对流程就缺乏考虑,而在6版本则加入Job Sequence的特性,可以将Job、shell脚本用流程图的方式表示出来,依赖关系、串行或是并行都可以一目了然,就直观多了。Powercenter有Workflow的概念,也同样可以将Session串联起来,这和Datastage Sequence大同小异。
ETL的元数据包括数据源、目标数据的结构、转换规则以及过程的依赖关系等。在这方面,Datastage和Powercenter从功能上看可谓不分伯仲,只是后者的元数据更加开放,存放在关系数据库中,可以很容易被访问。此外,这两个厂家又同时提供专门的元数据管理工具,Ascential有Metastage,而Informatica拥有Superglue。你看,就不给你全部功能,变着法子从你口袋里面多掏点钱。
数据质量方面,两种产品都采用同样的策略——独立出ETL产品之外,另外有专门的数据质量管理产品。例如和Datastage配套用的有ProfileStage和QualityStage,而Informatica最近也索性收购了原先OEM的数据质量管理产品FirstLogic。而在它们的ETL产品中,只是在Job或是Session前后留下接口,所谓前过程、后过程,虽然不是专为数据质量预留的接口,不过至少可以利用它外挂一些数据质量控制的模块。
在具体实现上看,Datastage通过Job实现一个ETL过程,运行时可以通过指定不同参数运行多个实例。Powercenter通过Mapping表示一个ETL过程,运行时为Session,绑定了具体的物理数据文件或表。在修改维护上,这两个工具都是提供图形化界面。这样的好处是直观、傻瓜式的;不好的地方就是改动还是比较费事(特别是批量化的修改)。
定制开发方面,两者都提供抽取、转换插件的定制,但笔者认为,Datastage的定制开发性要比Powercenter要强那么一点点。因为Datastage至少还内嵌一种类BASIC语言,可以写一段批处理程序来增加灵活性,而Powercenter似乎还缺乏这类机制。另外从参数控制上,虽然两者的参数传递都是比较混乱的,但Datastage至少可以对每个job设定参数,并且可以job内部引用这个参数名;而Powercenter显得就有些偷懒,参数放在一个参数文件中,理论上的确可以灵活控制参数,但这个灵活性需要你自己更新文件中的参数值(例如日期更新)。另外,Powercenter还不能在mapping或session中引用参数名,这一点就让人恼火。
总起来看,Datastage和Powercenter可谓旗鼓相当,在国内也都有足够的支持能力,Datastage在2005年被IBM收购之后,可以说后劲十足。而Informatica则朝着BI全解决方案提供商方向发展,Powercenter显然还将是它的核心产品。
独树一帜:Teradata的ETL Automation
继续要说的第三种产品是Teradata的ETL Automation。之所以拿它单独来说是因为它和前面两种产品的体系架构都不太一样。与其说它是ETL工具,不如说是提供了一套ETL框架。它没有将注意力放在如何处理“转换”这个环节上,而是利用Teradata数据库本身的并行处理能力,用SQL语句来做数据转换的工作,其重点是提供对ETL流程的支持,包括前后依赖、执行和监控等。
这样的设计和Datastage、Powercenter风格迥异,后两者给人的印象是具有灵活的图形化界面,开发者可以傻瓜式处理ETL工作,它们一般都拥有非常多的“转换”组件,例如聚集汇总、缓慢变化维的转换。而对于Teradata的ETL Automation,有人说它其实应该叫做ELT,即装载是在转换之前的。的确,如果依赖数据库的能力去处理转换,恐怕只能是ELT,因为转换只能在数据库内部进行。从这个角度看,Automation对数据库的依赖不小,似乎是一种不灵活的设计。也正是这个原因,考虑它的成本就不单单是ETL产品的成本了。
其实,在购买现成的工具之外,还有自己从头开发ETL程序的。
ETL工作看起来并不复杂,特别是在数据量小、没有什么转换逻辑的时候,自己开发似乎非常节省成本。的确,主流的ETL工具价格不菲,动辄几十万;而从头开发无非就是费点人力而已,可以控制。至于性能,人大多是相信自己的,认为自己开发出来的东西知根知底,至少这些程序可以完全由自己控制。
就目前自主开发的ETL程序而言,有人用c语言编写,有人用存储过程,还有人用各种语言混杂开发,程序之间各自独立。这很危险,虽然能够让开发者过足编码的瘾,却根本不存在架构。
有位银行的朋友,他们几年前上的数据仓库系统,就是集成商自己用c语言专门为他们的项目开发的。单从性能上看似乎还不赖,然而一两年下来,项目组成员风雨飘零,早已物是人非,只有那套程序还在那里;而且,按照国内目前的软件工程惯例,程序注释和文档是不全或者是不一致的,这样的程序已经对日常业务造成很大阻碍。最近,他们已经开始考虑使用ETL工具重新改造了。
分享到:
相关推荐
三大主流ETL工具选型.docx 什么是ETL.docx 商业智能 通过SSIS设计ETL来将Oracle,DB2,Sybase等数据源的数据定期导入到数据仓库.docx 商务智能(BI)的四大关键技术-ETL(抽取(Extract)、转换(Transform)和加载(Load))....
10.三大主流ETL工具选型 11.商务智能(BI)的四大关键技术-ETL(抽取(Extract)、转换(Transform)和加载(Load)) 12.商业智能 通过SSIS设计ETL来将Oracle,DB2,Sybase等数据源的数据定期导入到数据仓库 13.选择合适的ETL...
本篇将对比分析三款主流的ETL工具——Informatica、Datastage和BeeDI,探讨它们在市场占有率、服务支持、平台兼容性、数据源与目标数据库支持、数据抽取、转换和装载功能等方面的差异。 首先,从市场角度来看,...
根据给定的信息,本文将对几款主流元数据管理工具进行深入分析,包括IBM的MetaStage、CA的Advantage Repository以及Informatica的SuperGlue。这些工具在企业级元数据管理方面发挥着至关重要的作用。 ### IBM ...
首先,对于Kettle作业的调度监控方式,有三种主流方法:使用Kettle自带的Spoon工具、通过命令行工具pan和kitchen进行调度,以及通过Java调用Kettle核心库的方式。这三种方法各有优缺点,选择合适的方法对于确保系统...
Ascential MetaStage是业界领先的数据集成平台之一,它提供了一套全面的工具和服务,用于数据提取、转换和加载(ETL)过程。这款软件能够处理各种类型的数据源,包括关系数据库、平面文件、XML文档等,并支持将数据...
二、ETL 工具选型需求 * ETL 设计与处理工具支持主流服务器硬件与操作系统平台 * 支持 GB 中文字符与中文代码集,支持各种字符集的转换 * 支持各种平台的异构数据源系统 BI 系统招标技术需求涵盖了数据中心数据库...
文档涵盖了多个方面,包括文档的目的、范围、缩写约定、参考文献以及对数据仓库、ETL工具、OLAP和展示工具的基本介绍。 文档目的 文档的主要目的是通过比较Oracle和DB2在数据仓库领域的性能、功能、开发过程和应用...
3. ETL工具(Extract, Transform, Load): ETL是数据仓库建设的重要组成部分,用于数据抽取、转换和加载。常用工具有Kettle、Tableau和 Pentaho的Pentaho Data Integration(Kettle)。Talend以其扩展性和可定制化...
3. **ETL工具**:用于数据提取、转换和加载。常见的工具有Kettle、Talend和Pentaho。Talend具有良好的扩展性和稳定性,而Pentaho则以其易于使用著称,但扩展性相对较弱。 4. **报表与BI**:报表工具如帆软...
ETL(提取、转换、加载)工具中,kettle、Tablend和Pentaho较为常见,它们各有优缺点,如Talend的扩展性和定制性,而Pentaho则易于使用但扩展性相对较弱。 大数据平台常采用Hadoop与Hive的组合,提供强大的数据处理...
ETL工具中,kettle、Tableau和Pentaho是常见的选择。Talend基于Eclipse,扩展性和可定制性强,适合熟悉Java的用户;Pentaho(包含Kettle)操作简便,但扩展性相对较弱。 大数据平台通常采用Hadoop+Hive的组合,华为...
关于bi工具选型的参考依据 商务智能技术在银行业务中基于数据仓库的研究与实现 数据仓库_历史与现在发展状况 数据仓库分析系统整体设计方案 数据仓库基本操作 数据仓库设计 数据仓库学习笔记 数据仓库总体设计报告 ...
对于实时数据分析,架构师需要熟悉Storm和Kafka等实时数据处理和消息队列技术,以及Spark Streaming和NiFi等流式数据处理工具,这些技术提供了实时数据计算和ETL流程的构建能力。 7. 数据科学与分析平台 Spark和...
- 熟悉BI和大数据解决方案,包括ETL工具(如Kettle、DataStage、Talend)的使用,报表开发工具(如FineBI、Cognos、SmartBI)的掌握,以及数据仓库、ETL设计、Cube建模、OLAP开发和报表开发等全过程。 这些要求...
- 熟悉传统数据仓库理论和ETL工具,如Kettle、DataStage。 - 熟练使用Oracle、MongoDB、MySQL等数据库。 - 具备扎实的Java编程基础,熟悉Java开发工具和调试工具。 - 具有良好的团队协作精神和指导能力,以及...
- **数仓建模概念**:介绍了数据仓库建模的基本原理,包括第三范式和维度建模两种主流方法。 - **维度分析**:讲解了维度分析的基本概念,如维度表和事实表,并通过具体案例说明了如何识别和区分维度与指标。 #### ...
他们需要利用先进的技术和工具来处理PB级别的大规模数据,确保数据的安全、可靠和高效利用。具体职责包括但不限于: 1. **数据仓库建设**:构建企业级数据模型,开发各层数据模型。 2. **多维数据分析系统设计**:...
9. **技术选型与实施**:介绍当前主流的数据管理工具和技术,如ETL(提取、转换、加载)、大数据平台等,以及如何根据企业需求进行技术选型和实施规划。 10. **持续改进与创新**:阐述如何在数据体系构建完成后,...