数据仓库之路 – ETL应用浅析

 

数据仓库之路 – ETL应用浅析

引言

    信息是现代企业的宝贵资源,是企业运用科学管理、决策分析的基础。目前,大多数企业花费大量的资金和时间来构建联机事务处理(OLTP)的业务系统和办公自动化系统,从而记录事务处理的业务数据。遗憾的是,业务系统产生的数据增长很快,一般情况下,两到三年的时间,数据量就会成倍增长,这些丰富的、蕴含巨大商业价值的数据,所关注的通常只占在总数据量的2%到4%。从而企业将会失去有价值的客户、失去提高客服质量的指引、无法制定出最佳的营销手段和策略、等等。无论何种性质的企业,没有最大化的利用已存在的数据资源,都将浪费更多的时间和资金,也失去制定关键商业决策的最佳契机。

    商业智能(BI,BusinessIntelligence) 就是为企业把数据转换为信息、知识,相应蕴育而出的IT技术。企业级BI的基础就是一个完整的、准确的、统一视角的数据平台,即DW(Datawarehousing),而本文则要详细论述构建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作业、管理错误信息、从失败中恢复和调节从源系统的输出。

ETL工具的典型代表有:Informatica、Datastage、OWB、MS DTS...

ETL之数据质量

质量问题具体表现:

正确性(Accuracy):数据是否正确体现在现实或可证实的来源

完整性(Integrity):数据之间的参照完整性是否存在或一致

一致性(Consistency):数据是否被一致的定义或理解

完备性(Completeness):所有需要的数据是否都存在

有效性(Validity):数据是否在企业定义的可接受的范围之内

时效性(Timeliness):数据在需要的时间是否有效

可获取性(Accessibility):数据是否易于获取、易于理解和易于使用

质量问题的原因有很多,由系统集成和历史数据造成的原因主要有以下一些:

业务系统不同时期系统之间数据模型不一致

业务系统不同时期业务过程有变化

旧系统模块在运营、人事、财务、办公系统等相关信息的不一致

遗留系统和新业务、管理系统数据集成不完备带来的不一致性

其他原因:

源系统缺少输入验证过程,不能阻止非法格式的数据进入系统。

可以验证但不能改正数据,验证程序不能发现格式正确但内容不正确的错误。

源系统不受控制的更改,而这种更改不能及时的传播到受影响的系统。

数据有多个交叉的访问界面,难以统一管理数据质量问题。

缺少参照完整性检查。

低劣的源系统设计。

数据转换错误,比如ETL过程错误或数据迁移过程的错误。

 

ETL之数据集成

ETL过程转换过程的集中体现为:

Ø        空值处理,可捕获字段空值,进行加载或替换为其他含义数据,并可根据字段空值实现分流加载到不同目标库。

Ø        规范化数据格式,可实现字段格式约束定义,对于数据源中,时间、数值、字符等数据,可自定义加载格式。

Ø        拆分数据,依据业务需求对字段可进行分解,例:主叫号861084613409,可进行区域码和电话号码分解。

Ø        验证数据正确性,可利用Lookup及拆分功能进行数据验证,例:主叫号861084613409,进行区域码和电话号码分解后,可利用Lookup返回主叫网关或交换机记载的主叫地区,进行数据验证。

Ø        数据替换,对于因业务因素,可实现无效数据、缺失数据的替换。

Ø        Lookup 查获丢失数据,Lookup实现子查询,并返回用其他手段获取的缺失字段,保证字段完整性。

Ø        建立ETL过程的主外键约束,对无依赖性的非法数据,可替换或导出到错误数据文件中,保证了主键唯一记录的加载。

Ø        可实现数据规则过滤。

Ø        ...

为了能更好的实现ETL,现给出几点建议

Ø        如条件允许,可利用数据中转区对运营数据进行预处理。保证了集成与加载的高效性。

Ø        如ETL的过程是主动“拉取”,而不是从内部“推送”,其可控性将大为增强。

Ø        ETL之前,应制定流程化的配置管理和标准协议

Ø        关键数据标准至关重要。ETL面临的最大挑战是当接收数据时其各源数据的异构性和低质量,以电信为例:A系统按照统计代码管理数据,B系统按照帐目数字管理,而C系统按照语音ID管理。而ETL需要对这三个系统进行集成以获得对客户的全面视角。这一过程需要复杂的匹配规则、名称/地址正常化与标准化。而ETL在处理过程,会定义一个关键数据标准,在此基础上,制定相应的数据接口标准。

ETL过程很大程度上受企业对源数据的理解程度的影响,也就是说从业务的角度看数据集成非常重要。一个优秀的ETL设计应该做到:管理简单;采用元数据方法,集中进行管理;接口、数据格式、传输有严格的规范;尽量不在外部数据源安装软件;数据抽取系统流程自动化,并有自动调度功能;抽取的数据及时、准确、完整;可以提供同各种数据系统的接口,系统适应性强;提供软件框架系统,系统功能改变时,应用程序很少改变便可适应变化;可扩展性强;

ETL之数据模型

合理的业务模型设计对ETL至关重要。数据仓库是企业唯一、真实、可靠的综合数据平台。数据仓库的设计建模一般都依照三范式、星型模型、雪花模型,无论哪种设计思想,都应最大化的含盖关键业务数据,把运营环境中杂乱无序的数据结构统一成为合理的、关联的、分析型的新结构,而ETL则会依照模型的定义去提取数据源,进行转换、清洗,并最终加载到目标数据仓库中。

模型的重要之处在于对数据做标准化定义,实现统一的编码、统一的分类和组织,标准化定义的内容包括:

Ø        标准代码统一:根据国家和相关部门的标准,例如国标码等

Ø        业务术语统一:根据业务需求和业务流程,制定各个具体的业务系统之间统一的业务术语定义,保证有相同的语义描述;

Ø        关键业务主题标准定义:

1.       标准的数据格式定义

2.       标准的数据命名定义

3.       标准的数据类型定义

4.       标准的数据长度定义

5.       标准的字段顺序定义

6.       标准的数据依赖关系定义

7.       时间戳的定义

ETL依照模型进行以下数据集成:初始加载、增量加载、缓慢增长维、慢速变化维、事实表加载等,根据业务需求制定相应的加载策略、刷新策略、汇总策略、维护策略。每一个环节都是艰巨而复杂的。

ETL之元数据

对业务数据本身及其运行环境的描述与定义的数据,称之为“元数据 metadata”.元数据是描述数据的数据,从某种意义上说,业务数据主要用于支持业务系统应用的数据,而元数据则是企业信息门户(EIP)、客户关系管理、数据仓库、决策支持和商业智能等新型应用所不可或缺的内容。

元数据的典型表现为对象的描述,即对数据库,表,列,列属性(类型,格式,约束等)以及主键/外部键关联等等的描述。特别是现行应用的异构性与分布性越来越普遍的情况下,统一的元数据就愈发重要了。"信息孤岛"曾经是很多企业对其应用现状的一种抱怨和概括,而合理的元数据则会有效的描绘出信息的关联性。

而元数据对于ETL的集中表现为:

Ø        定义数据源的位置及数据源的属性

Ø        确定从源数据到目标数据的对应规则

Ø        确定相关的业务逻辑

Ø        在数据实际加载前的其他必要的准备工作,等等

元数据一般贯穿整个数据仓库项目,而ETL的所有过程必须最大化的参照元数据。

 总结

ETL过程是企业数据集成的必然而又艰苦的历程,也是揭示数据潜在价值的唯一途径。

 


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值