1.1 ETL的定义
ETL分别是“Extract”、“ Transform” 、“Load”三个单词的首字母缩写也就是“抽取”、“转换”、“装载”,但我们日常往往简称其为数据抽取。ETL是BI/DW(商务智能/数据仓库)的核心和灵魂,按照统一的规则集成并提高数据的价值,是负责完成数据从数据源向目标数据仓库转化的过程,是实施数据仓库的重要步骤。ETL包含了三方面,首先是“抽取”:将数据从各种原始的业务系统中读取出来,这是所有工作的前提。其次“转换”:按照预先设计好的规则将抽取得数据进行转换,使本来异构的数据格式能统一起来。最后“装载”:将转换完的数据按计划增量或全部导入到数据仓库中。
1.2 ETL的作用
整个BI/DW系统由三大部分组成:数据集成、数据仓库和数据集市、多维数据分析。通常,商务智能运作所依靠的信息系统是一个由传统系统、不兼容数据源、数据库与应用所共同构成的复杂数据集合,各个部分之间不能彼此交流。从这个层面看:目前运行的应用系统是用户花费了很大精力和财力构建的、不可替代的系统,特别是系统的数据。而新建的商务智能系统目的就是要通过数据分析来辅助用户决策,恰恰这些数据的来源、格式不一样,导致了系统实施、数据整合的难度。此时,非常希望有一个全面的解决方案来解决用户的困境,解决数据一致性与集成化问题,使用户能够从已有传统环境与平台中采集数据,并利用一个单一解决方案对其进行高效的转换。这个解决方案就是ETL。
ETL是BI/DW的核心和灵魂,按照统一的规则集成并提高数据的价值,是负责完成数据从数据源向目标数据仓库转化的过程,是实施数据仓库的重要步骤。如果说数据仓库的模型设计是一座大厦的设计蓝图,数据是砖瓦的话,那么ETL就是建设大厦的过程。在整个项目中最难部分是用户需求分析和模型设计,而ETL 规则设计和实施则是工作量最大的,其工作量要占整个项目的60%-80%,这是国内外专家从众多实践中得到的普遍共识。
通常,用户的数据源分布在各个子系统和节点中,利用ETL将各个子系统上的数据,通过自动化FTP或手动控制传到UNIX或NT服务器上,进行抽取、清洗和转化处理,然后加载到数据仓库。因为现有业务数据源多,保证数据的一致性,真正理解数据的业务含义,跨越多平台、多系统整合数据,最大可能提高数据的质量,迎合业务需求不断变化的特性,是ETL技术处理的关键。
1.3 ETL工具的功能
ETL工具的功能可以概括为以下几方面:对平台的支持、对数据源的支持、数据转换功能、管理和调度功能、集成和开放性、对元数据的管理。下面对ETL工具的功能分别展开介绍。
对平台的支持
随着各种应用系统数据量的飞速增长和对业务可靠性的要求不断提高,数据抽取工具面对的要求往往是将几十上百个GB的数据在有限的几个小时内完成抽取转换和装载,这种挑战势必要求抽取工具对高性能的硬件和主机提供支持。因此,我们可以从数据抽取工具支持的平台的来判断其能否胜任你的环境,目前主流的平台包括SUN Solaris、 HP-UX、 IBM AIX、AS/400、 OS/390、Sco Unix、 Linux、 Windows等。
对数据源的支持
对数据源支持的重要性不言而喻,因此这个指标必须仔细的考虑。首先你需要对项目中可能会遇到的各种数据源有清晰的认识,其次对各种工具提供的数据源接口类型也要有深入了解,比如,针对同一种数据库,使用通用的接口(如ODBC/JDBC)还是原厂商自己的专用接口,数据抽取效率会有很大差别,这直接关系到能不能在有限的时间内完成ETL任务。这里列出一些常见的数据源以供参考:DB2、 Informix、Oracle, Sybase、SQLServer、SAS,、Text、Excel、 SAP、Peoplesoft等。
数据转换功能
数据转换是ETL中最令人头疼的问题。由于业务系统的开发一般有一个较长的时间跨度,这就造成统一种数据在业务系统中可能会有多种完全不同的存储格式,甚至还有许多数据仓库分析中所要求的数据在业务系统中并不直接存在,而是需要根据某些公式对各部分数据进行计算才能得到。因此,这就要求ETL工具必须对抽取到的数据能进行灵活的计算、合并、拆分等转换操作。通常会遇到的转换要求有:字段映射;映射的自动匹配;字段的拆分;多字段的混合运算;跨异构数据库的关联;自定义函数;多数据类型支持;复杂条件过滤;支持脏读;数据的批量装载;时间类型的转换;对各种码表的支持;环境变量是否可以动态修改;去重复记录;抽取断点;记录间合并或计算;记录拆分;抽取的字段
是否可以动态修改;行、列变换;排序;统计;度量衡等常用的转换函数;代理主键的生成;调试功能;抽取远程数据;增量抽取的处理方式;制造样品数据;在转换过程中是否支持数据比较的功能;数据预览;性能监控;数据清洗及标准化;按行,按列的分组聚合等。
管理和调度功能
由于对数据抽取的要求越来越高以及专业ETL工具的不断涌现,ETL过程早已不再是一个简单的小程序就能完成,目前主流的工具都采用像采用多线程、分布式、负载均衡、集中管理等高性能高可靠性与易管理和扩展的多层体系架构,因此这就要求ETL的管理和调度上都具备相应的功能。一般这方面的一些基本功能包括:抽取过程的备份与恢复;升级;版本管理;开发和发布;支持统一以及自定义的管理平台;支持时间触发方式;支持事件触发方式;支持命令行执行方式;支持用户对计算机资源的管理和分配;负载均衡;文档的自动生成;调度过程中能否执行其他任务等。
集成和开放性
随着数据仓库技术在国内应用的不断深入,许多开发商希望不向用户提供ETL工具的原来操作界面而是将其一些主要功能模块嵌入到自己的系统或其他厂商的系统中,因为在大多数情况下一般项目只会用到ETL工具的少数几个功能,同时也没有必要给用户提供那么复杂的操作环境这反倒使用户容易产生操作错误。这就要求 ETL工具能提供很好的集成性和开放性。可以从以下几方面考虑:与OLAP集成;与前端工具集成;与建模工具集成;开放的API可将产品集成到统一界面;是否能调用各种外部应用,包括存储过程、各种流行语言开发的应用程序等;是否支持客户化定制的转换过程;是否支持与统计分析工具的集成等。
对元数据的管理
元数据是关于数据的数据,其对于ETL来说尤其重要。ETL中大量的数据源定义、映射规则、转换规则、装载策略等都属于元数据范畴,如何妥善的存储这些信息不仅关系到ETL过程能否顺利完成而且影响到后期的使用和维护。任何业务逻辑的微小改变最终都落实为相应元数据的调整,初期没有一个完善的元数据管理功能后期作类似调整几乎是“不可完成的任务”。基于元数据的重要性,国际组织提出一些统一的元数据存储标准比较知名的如CWM等,这为不同厂商工具之间互操作提供了可能性,相信也是以后的发展趋势。针对ETL的元数据管理应包括:元数据存储的开放性;元数据存储的可移植性;提供多种方式访问元数据;元数据的版本控制;支持开放的元数据标准;支持XML进行元数据交换;支持分布式的元数据访问和管理;生成元数据报表;对于ETL过程的冲突分析;基于元数据的查询功能;元数据的广播和重用;对于ETL过程的流程分析等。
来源:
http://hi.baidu.com/yfxuevip/blog/item/3bcc5adfc98d9a17495403c0.html
阅读(2860) | 评论(0) | 转发(0) |