一、 引言 信息是现代企业的宝贵资源,是企业运用科学管理、决策分析的基础。目前,大多数企业花费大量的资金和时间来构建联机事务处理(OLTP)的业务系统和办公自动化系统,从而记录事务处理的业务数据。遗憾的是,业务系统产生的数据增长很快,一般情况下,两到三年的时间,数据量就会成倍增长,这些丰富的、蕴含巨大商业价值的数据,所关注的通常只占在总数据量的2%到4%。从而企业将会失去有价值的客户、失去提高客服质量的指引、无法制定出最佳的营销手段和策略、等等。无论何种性质的企业,没有最大化的利用已存在的数据资源,都将浪费更多的时间和资金,也失去制定关键商业决策的最佳契机。商业智能(BI,Business Intelligence) 就是为企业把数据转换为信息、知识,相应蕴育而出的IT技术。企业级BI的基础就是一个完整的、准确的、统一视角的数据平台,即DW(Data warehousing),而本文则要详细论述构建DW关键过程ETL的简介及必要性。
二、 术语描述 ETL:Extract-Transform-Load的缩写,数据抽取(Extract)、转换(Transform)、装载(Load)的过程。 DW:Data Warehousing,根据Bill.Inmon的定义,“数据仓库是面向主题的、集成的、稳定的、随时间变化的,主要用于决策支持的数据库系统”。 Metadata:元数据。描述数据的数据,指在数据仓库建设过程中所产生的有关数据源定义,目标定义,转换规则等相关的关键数据。
三、 ETL是数据仓库建立的核心过程数据仓库系统先天不足,是在业务系统的基础上发展而来的,其内部存储的数据来自于事务处理的业务系统和外部数据源。而企业内各源数据缺少统一的标准,因企业的业务系统是在不同时期、不同背景、面对不同应用、不同开发商等各种客观前提下建立的,其数据结构、存储平台、系统平台均存在很大的异构性。因而其数据难以转化为有用的信息,原始数据的不一致性导致决策时其可信度的降低。 ETL是BI/DW的核心和灵魂,按照统一的规则集成并提高数据的价值,是负责完成数据从数据源向目标数据仓库转化的过程,是实施数据仓库的重要步骤。如果说数据仓库的模型设计是一座大厦的设计蓝图,数据是砖瓦的话,那么ETL就是建设大厦的过程。在整个项目中最难部分是用户需求分析和模型设计,而ETL规则设计和实施则是工作量最大的,其工作量要占整个项目的60%-80%,这是国内外从众多实践中得到的普遍共识。
四、 ETL过程的主要目的就是以最小代价(包括对日常操作的影响和对技能的要求) 将针对日常业务操作的数据转化为针对数据仓库而存储的决策支持型数据。
五、 ETL体系结构简介 上图摘自TWDI2003ETL权威报告,体现了主流ETL产品框架的主要组成部分。ETL是指(extract)从源系统中提取数据,(transform)转换数据为一个标准的格式,(load)加载数据到目标数据存储区,通常是数据仓库。 • Design manager: 提供一个图形化的映射环境,让开发者定义从源到目标的映射关系、转换、处理流程。设计过程的各对象的逻辑定义存储在一个元数据资料库中。 • Meta data management: 提供一个关于ETL设计和运行处理等相关定义、管理信息的元数据资料库。ETL引擎在运行时和其它应用都可参考此资料库中的元数据。 • Extract: 通过接口提取源数据,例如:ODBC、专用数据库接口和平面文件提取器。参照元数据来决定提取何处的数据和怎样提取。 • Transform: 开发者将提取的数据,按照业务需要转换为目标数据结构,并实现汇总。 • Load: 加载经转换和汇总的数据到目标数据仓库中,可实现SQL或批量加载。 • Transport services: 利用网络协议(TCP/IP等)或文件协议(FTP等),在源和目标系统之间移动数据,利用内存(Data Caches 等)在ETL处理各组件中移动数据。 • Administration and operation:可让管理员基于事件和时间进行调度、运行、监测ETL作业、管理错误信息、从失败中恢复和调节从源系统的输出。