etl产品 etl 卖点

etl产品

主流ETL产品:Ascential公司的Datastage(Datastage在2005年被IBM收购)、Informatica公司的Powercenter、 NCR Teradata公司的ETL Automation(一套ETL框架、主要关注“抽取”)。
ETL工具有:OWB(Oracle Warehouse Builder)、ODI(Oracle Data Integrator)、Informatic PowerCenter(Informatica公司)、AICloudETL、
DataStage(Ascential公司)、Repository Explorer、Beeload、Kettle、DataSpider、ETL Automation(NCR Teradata公司)、
Data Integrator(Business Objects公司)、DecisionStream(Cognos公司)

--

ETL一般都是和商业智能打包销售的,换句话说,有ETL需求的有可能都会用BI。

FineBI

--

ETL工具除了通用工具外,还有ETL技术领域专业的调度工具。对于规模大一点的ETL项目,建议采用专业的调度工具实施调度工作。调度工具主要包括:
国外: 美国BMC公司: Control-M
国内:
隆鑫:Taskctl
先进数通:Moia
宇信:WFT

软通动力:SMC

--

学生可以使用Microsoft sql 2005的SSIS工具,其他适合企业的有OWB(Oracle Warehouse Builder)、ODI(Oracle Data Integrator)、Informatic PowerCenter、AICloudETL、DataStage、Repository Explorer、Beeload、Kettle、DataSpider

--

北京织梦科技有限公司的ETL4J

--

北京灵蜂纵横软件有限公司 的 ETL工具 Beeload / BeeDI

--

BC-ETL(Extraction,Transformation,Loading)是一个数据抽取、转换和装载工具,是通用型的数据仓库工具。通过BC-ETL,可以将分散在不同业务系统数据库中的数据集成到统一的数据仓库中,实现数据集中化管理,同时为数据挖掘和商业智能应用提供数据输入。

典型操作流程

分析业务需求:对业务及数据处理需求进行分析,明确数据处理的目标及要求;

配置元数据:根据数据处理的目标及要求,确定要配置哪些元数据,以及元数据之间的调用关系;

周期性执行流程:元数据配置完成并确认无误后,您可以设置任务调度时间,定时执行数据集成任务;

监控流程执行情况:使用控制台实时监控任务的执行情况,或对整个流程和任务执行终止、挂起等操作。

整体功能框架

BC-ETL内部分为四大模块,数据采集、数据处理、数据分类和系统管理;对接大数据管理中心和四大统一管理;外部服务包括数据流设计器、控制流设计器、监控视图和运维中心。

---

昊合数据整合平台HaoheDI 

BI软件_BI工具_ETL工具_数据仓库_报表工具_报表软件_数据整合_数据分析软件_数据分析工具(这里面可以在线体验产品操作,部署在云服务器上)

-- 合众数据集成系统 - 杭州合众数据技术有限公司 - 数据交换|数据处理|大数据|大数据应用|大数据分析 - 保障信息安全 促进信息共享


--

ETL介绍与ETL工具比较 - CSDN博客

在技术上,ETL主要涉及到关联、转换、增量、调度和监控等几个方面;数据仓库系统中数据不要求与联机事务处理系统中数据实时同步,所以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过程的最后步骤。装载数据的最佳方法取决于所执行操作的类型以及需要装入多少数据。当目的库是关系数据库时,一般来说有两种装载方式:

(1)直接SQL语句进行insert、update、delete操作。

(2)采用批量装载方法,如bcp、bulk、关系数据库特有的批量装载工具或api。

大多数情况下会使用第一种方法,因为它们进行了日志记录并且是可恢复的。但是,批量装载操作易于使用,并且在装入大量数据时效率较高。使用哪种数据装载方法取决于业务系统的需要。



ETL工具的典型代表有:Informatica、Datastage、ODI ,OWB、 微软DTS、 Beeload、 Kettle、久其ETL……

ETL工具

旗鼓相当:DatastagePowercenter

就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从功能上看可谓不分伯仲,只是后者的元数据更加开放,存放在关系数据库中,可以很容易被访问(Informatic把Metadata全部放在数据库中而Datastage是自己管理Metadata,不依赖任何数据库.)此外,这两个厂家又同时提供专门的元数据管理工具,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显然还将是它的核心产品。

ODI

ODI提出了知识模块的概念,把这些场景的详细的实现步骤作为一个一个的知识模块并使用Jython脚本语言结合数据库的SQL语句录制成一步一步的步骤忠实地记录下来,这样就形成了ODI里的100多个知识模块,基本上包含了所有普通应用所涉及到的所有场景。更方便的是,用户既可以直接使用ODI的知识模块完成数据的获取工作,也可以直接在知识模块上面做各种定制,比如某一个业务场景可能并不需要知识模块里的某一个特定的步骤,那就可以直接把该步骤删除掉从而提供更好的性能。当然用户也可以完全自己来开发这些知识模块。

ODI的知识模块主要分为几个大类(RKM,CKM,LKM,IKM,SKM),其中最重要的是LKM(load KM)和IKM(Integration KM)RKM。
RKM:完成从源系统和目标系统的数据结构的反向工程来形成数据模型的功能。
CKM:CKM完成数据质量检查。
LKM:LKM完成从源数据库数据加载到临时表。
IKM:IKM完成从临时表的数据加载到目标表。
SKM:SKM完成ODI和WEB服务接口的功能。

ODI的性能不是很好,Powercenter > Datastage > ODI

独树一帜:TeradataETL 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软件—udis睿智ETL

    再来看国产的, 采用SOA架构体系,具有更好的方便性和灵活性.缺点是配置复杂,缺少对元数据的管理。


总体比较列表:

ETL工具选型参照表

工具

优点

缺点




主流工具

Datastage

内嵌一种类BASIC语言,可通过批处理程序增加灵活性,可对每个job设定参数并在job内部引用

早期版本对流程支持缺乏考虑;图形化界面改动费事

Powercenter

元数据管理更为开放,存放在关系数据库中,可以很容易被访问

没有内嵌类BASIC语言,参数值需人为更新,且不能引用参数名;图形化界面改动费事

Automation

提供一套ETL框架,利用Teradata数据仓库本身的并行处理能力

对数据库依赖性强,选型时需要考虑综合成本(包括数据库等)

udis睿智ETL

适合国内需求,性价比高

配置复杂,缺少对元数据的管理

自主开发

相对于购买主流ETL工具,成本较低

各种语言混杂开发,无架构可言,后期维护难度大。


ETL工具的选择

在数据集成中该如何选择ETL工具呢?一般来说需要考虑以下几个方面:

(1)对平台的支持程度。

(2)对数据源的支持程度。

(3)抽取和装载的性能是不是较高,且对业务系统的性能影响大不大,倾入性高不高。

(4)数据转换和加工的功能强不强。

(5)是否具有管理和调度功能。

(6)是否具有良好的集成性和开放性


---

etl通俗易懂功能


(1)、修改列类型

我们都知道,数据源的数据格式有时候可能会比较糙。

比方说,时间格式,有可能是20170429这种。

为了便于分析和统一,我们希望把它规整到“2017/04/29”这种标准格式。

如果是几行或几百行的数据,那么用excel也是可以改的。

但是,当你一天有上万行甚至百万行的数据的时候,用excel处理,就算软件不崩溃,你自己也要等崩溃的。

这时候ETL就很强大了,不管你数据量有多大,点个执行,马上就好了:


(2)、列转行

还是一样,列转行在excel里也能实现。

倒是不难,就是麻烦。

但是用ETL就很简单了。


除此之外,ETL还可以做添加常量列、分组聚合、过滤、计算、合并等等等等~

很多公司的数据分析和报表都是用excel来完成的。

但是,DT时代,一方面数据增量非常可观,另一方面分析需求会越来越多,没有趁手的工具,你会发现自己会遭遇瓶颈。

所以学一下etl还是非常有必要的,况且这个etl还是免费的!还几乎不需要学习就能上手!

而且相比于excel,ETL还有以下五个优势:

1、 excel是直接在表格中操作,有时候容易造成不可挽回的更改;而ETL无论你怎么操作、怎么运行,都无损原数据;

2、 对于不同的数据处理需求,excel需要复制、粘贴、写函数、选公式等等等等;而ETL只需要“拖拽+配置”,简单迅捷;

3、 excel数据量越大,响应越慢,操作起来繁琐费时;ETL可处理tb-pb级数据,从2行与2亿行都是秒级响应,就是那么爽;

4、 excel处理数据是一次性的,而ETL处理数据是一劳永逸的:只要运行数据流,原始数据发生任何新增或变动,都会体现在数据流、以及基于该数据流创建的图表、图集中;

5、 excel从小白到高手,可能需要查询一百次百度知道;但ETL,第一次用就能让你体验数据高手的感觉。

---

交换平台除了传统ETL功能, 分布式动态可扩展是必须的,现在云化交换平台产品已经很多了,应该各有千秋吧,特别强调以下几点,:

必须具备多样化数据采集能力,支持对表、文件、消息等多种数据的实时增量数据采集(使用flume、消息队列、OGG等技术)和批量数据分布式采集等能力(SQOOP、FTP VOER HDFS),比基于传统ETL性能有量级上的提升。

必须支持对于业界主流数据库的相互对接能力,包括ORACLE/HIVE/GBASE/IMPALA/ASTER/HBASE等等,要实现这些功能,涉及到互信等众多问题,但对于业务的价值巨大。

必须具备多租户的管理,因为传统ETL可能跟应用无关,统一运维团队配置即可,但交换跟应用强相关,必须要能够授权自主配置,这个时候,多租户管理就变得非常重要。

必须具备能力开放能力,能够对外输出元数据,这个其实是未来对于任何企业级平台的刚性要求,做平台的企业别老想着封闭,包打天下, 比如浙江移动有个统一的数据管理平台,不能由于交换平台的封闭,让数据管理平台废了半条腿,这是企业未来引入技术组件必须考虑的因素。

必须具备可视化快速配置能力,能够提供图形化的开发和维护界面,支持图形化拖拽式开发,免代码编写,降低开发难度,每配置一个数据接口耗时越小越好,比如以前我们采用的老ETL平台一个接口平均配置3小时,这是无法忍受的。

必须具备统一调度管控能力,实现采集任务的统一调度,可支持Hadoop的多种技术组件(如 MapReduce、Spark 、HIVE)、关系型数据库存储过程、 shell脚本等,支持多种调度策略(时间/接口通知/手工)。

---

---


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部