基于数据仓库的etl过程优化.pdf

收藏

编号:20181111053706390322    类型:共享资源    大小:315.12KB    格式:PDF    上传时间:2019-02-16
  
3
金币
关 键 词:
ETL 数据仓库 的过程 pdf 数据仓库的 的ETL 数据仓库ETL ETL过程 数据仓库ETL流程 的优化 ETL优化 PDF ETL过程优化 基于数据仓库的 的ETL过程
资源描述:
总第247期 2010年第5期 计算机与数字工程 Computer&Digital Engineering V01.38 No.5 166 基于数据仓库的ETL过程优化+ 彭璐 (武汉科技大学城市学院信息工程学部武汉430083) 摘要提出一种优化ETL整体过程的方法,包括:其一,针对现有ETL过程的局限性提出一个优化其整体流程的框 架EICLF(Extraeting/Integrating/Cleaning/Loading/Feedback)流程;其二,对现有相似重复记录的识别算法进行改进;其 三,根据清理后得到的干净数据对源数据进行反馈处理。 关键词数据仓库;ETL;数据清理;数据集成;EICLF 中图分类号TP311.132 Optimizing ETL Processes Based on the Data Warehouse Peng Lu (Department of Information Engineering,Wuhan University of Science and Technology City College,Wuhan 430083) Abstract A method of optimizing the overall ETL process has been proposed,including..Firstly,as to the limitation of the existing ETL process.it has proposed a framework for optimizing the overall process--EICLF(Extracting/Integra— ting/Cleaning/Loading/Feedback)processes;secondly,improved the recognition algorithm of the existing approximately du— plicate records;thirdly,feedhack on the source data according tO cleaned-up data. Key Words data warehouse,ErL,data cleaning,data integrating,EICLF Class Number TP311.132 1 引言 数据和信息是两个不同的概念,数据是在日常 操作中得到的一种行为记录,而信息则是根据这些 大量的数据从某个角度出发,经过汇总分析得到的 一种有用的某类行为特性的描述,数据是得到信息 的原料,而信息才是人们最终所关心的,能够指导 人们进行某种活动,从而做出相应的决策。海量的 数据如不经整合分析就得不到有价值的信息,数据 仓库的出现解决了“数据爆炸而信息贫乏”的矛盾。 数据具有高质量时,会得到正确的信息,成为一 种资产,错误的数据会导致错误的信息以至最终作 出错误的决策L3]。在构建数据仓库过程中,ETL过 程处于极其重要的地位,直接决定了数据仓库中的 数据质量,而数据质量对于决策人员是至关重要的, 它又直接决定了信息的价值,高质量的信息会得到 正确的决策,而低质量的信息则将导致决策的失败。 2数据质量 2.1数据质量衡量标准 数据质量制约着决策用户能否制定正确的决 策[3~4],考查数据质量有如下几个标准[6]: 1)数据的准确性;2)数据符合类型要求和取 值要求;3)数据具有完整性和不冗余;4)数据是 集成的和一致的;5)数据是及时的,遵循业务规 则,满足业务要求。 2.2数据质量分类 数据质量问题可归纳为两大类Ez.4](如图1), 即单源问题和多源问题,同时每类又细分为结构级 问题和实例级问题两类,其中结构级问题一般通过 数据集成就可以解决,而实例级问题则需要进一步 的数据清理。因此数据清理也相应地包括两类:单 源数据清理和多源数据清理。 1)单源数据清理:单源数据清理问题主要处 ·收稿日期:2009年12月17日,修回日期:2010年1月10日 作者简介:彭璐,女,硕士,助教,研究方向:网络数据库。 万方数据 2010年第5期 计算机与数字工程 167 理单个属性上取值范围、几个属性间的满足关系、 是否有相似重复记录以及对其它关系的参照错误 等,显然数据清理只涉及单个关系是最理想的‘2|。 数据质帚 问题分类 单数据源 问题 多数据源 问题 模式层 实例层 模式层 实例层 唯·性约束 引用约束 拼写错误 冗余相似重 图1数据质量分类 2)多源数据清理:多源数据清理问题是将多个 数据库中的多个关系集成而产生的,涉及的问题较 复杂,与数据源的数据管理系统、数据模型、模式设 计以及实际数据等都有关系,需要在各自的数据库 系统中进行转换清理工作,信息传递的滞后往往会 造成转换清理不一致或存在重复数据,这些问题都 会滞留到装载过程中,即繁琐的数据清理T作会贯 穿于整个ETL过程,为了解决这个问题,需要构造 一个更好的ETL流程,将多个关系合并为一个关 系,从而在单个关系上进行单一的数据清理工作。 3数据仓库中传统的ETL过程 源系统巨大的差异性导致了数据抽取和转换功 能的复杂眭,数据仓库的源数据来自各种不同平台 的联机数据库,接入和操纵源数据并把它们装进数 据仓库通常需经过提取、转换与装载的过程[4’6]。首 先,“提取”功能从一个确定的源数据库中读取数据, 并从该数据中提取出一个想要的子集;然后“转换” 功能利用规则或查阅表把获得的数据转换成理想的 状态,或者先将获得的数据与其他数据结合起来,再 把它们转换成理想的状态;最后“装载”功能被用于 把所产生的数据写进目标数据库中,如图2所示。 l抽取部分的数据J垂颤 磊祠塑垦旦同奖 数据类型转换、时期/时间格式 转换、字段解码、有效值检查、 重新格式化、删除重复数据、 聚集概括 图2传统的ETL过程 4数据清理与传统ETL过程的区别 数据清理是为了检测和消除数据的错误和不 一致,以提高数据质量;而传统ETL过程则根据数 据仓库中所要求的目标数据进行抽取合适的数据 并进行转换,它们的共同点是消除不需要的数据。 传统ETL过程是基于假设数据源的数据本身是没 有错误的,在这种假设条件下,传统的ETL过程是 不需要修改的,除非数据源的数据结构发生了变 化;而对于数据清理过程来说,数据源的数据中是 存在错误的,必须进行清理并修正,根据数据源数 据质量的不同,清理规则也需作相应修改。现将传 统ETI,过程推向一般化,去除数据源的数据中不 存在错误这一理想的假设,将数据清理引入到传统 ETL过程中,并对传统ETI。过程进行优化。 5 优化的ETL过程一EICLF过程 数据库系统、决策支持系统和数据挖掘系统都 离不开高质量的数据,由于所使用的数据往往来自 多个数据源,在数据集成过程中,会出现许多影响 数据质量的问题,例如重复记录,即那些描述同一 个实体的多条记录,就是影响数据质量的主要问题 之一。经过转换处理的数据,总体上可以达到规范 化数据的目的,但不能发现数据集中潜在的指向同 一实体的重复记录。为了得到高质量的数据,支持 正确、全面的企业战略决策,就必须探测出这些重 复记录。传统的ETL过程适应了最初的数据仓库 的需求,从1993年E F.Codd提出数据仓库概念距 今已有17年,这期间由于经济全球化的进一步发 展,企业中产生了大量业务数据,数据仓库中存在的 多条记录表示同一实体的现象也很普遍,迫切要求 对进人数据仓库中的数据进行专门的相似重复数据 的清理。从而提出了一个改进的流程一EICLF(Ex- tracting/Integrating/Cleaning/Loading/Feedback),将 传统的转换处理分解为两个步骤一集成和清理,集 成阶段主要处理结构模式的转换,清理阶段主要解 决相似重复记录问题,其基本框架如图3所示。 数据源sl 数二备式粼纛麓 I复的i己录 据反馈F 图3优化的ETL过程 据仓 娶 万方数据 168 彭璐:基于数据仓库的ETL过程优化 第38卷 5.1数据抽取阶段一Extracting 数据抽取阶段除了要考虑抽取的内容和时机 外,还要解决单源问题中的模式级问题,而实例级 问题会在后面的清理阶段进行全面统一的清理,即 抽取阶段在单源问题中主要完成: 1)唯一性约束:即主键约束。 2)引用约束: (1)过滤字段:可以通过指定一些字段,然后选 择是保留还是删除这些字段以外的其他字段; (2)字段无效值:对于一个字段的值,如果不是 有效值,就可以给它一个缺省值; (3)空值的处理[h6]:对于空值的处理可以根据 不同情况采用不同的方法: ·如果数据性质很差,可以忽略该记录; ·从整体上看,如果该属性不是很重要或大部 分都不准确,则可以考虑去掉该属性; ·依据背景资料手工填写空缺值; ·使用默认值; ·使用属性平均值; ·使用同类样本平均值; ·预测最可能值。 5.2数据集成阶段一Integrating 根据数据仓库中的目标模式进行模式结构的 转换处理[5],将属于同一主题的从不同数据源得到 的数据集成到一张大关系表中,其重点是字段的拆 分与合并,字段的增加与删除,聚集等[7|。将从多 个操作系统中的数据源按不同主题分类抽取后集 成到一个指定的数据预备区L8],并按抽取的分类将 其集成到相应的主题数据表中,包括: 1)命名冲突问题:(1)字段名的统一;(2)单位 的统一;(3)格式的统一;(4)字符的统一。 2)结构冲突问题:(1)字段的拆分与合并;(2) 字段的增加与删除。 从整个数据仓库的ETL过程出发,集成阶段 所要完成的任务还包括将转换为同一模式结构的 数据复制到同一张关系表中以及根据主键删除重 复记录。 经过了集成阶段的数据集中在一张大表中,即 多源问题转为单源问题L2],可以不用面对多源问题 中实例层出现的复杂的不一致的汇总和不一致的 时间选择等问题,只需考虑转换后的单源问题中的 实例问题,从而将复杂问题简单化。 5.3数据清理阶段一Cleaning 数据清理一词在其他领域很早就出现了,而在 数据仓库中的应用近年才开始,但从数据转换中可 以找到它的原型。随着业务的增多,数据量的加 大,简单的数据转换已不能保证高质量的数据,但 数据仓库对数据质量的要求越来越高,需要有一个 专门的数据清理阶段来处理数据质量问题。 数据清理指检测和消除数据的错误和不一致, 将脏数据转化为满足数据质量要求的数据,以提高 数据质量[4.9]。数据清理中需要解决的问题很多, 而如何找出重复数据是其中的一个重要研究内容, 在不同数据源上,相同内容有多种表现形式。数据 仓库的建立是为了方便高层人员根据数据仓库中 所提供的数据进行查询决策的,数据仓库中除了存 放历史的细节的数据外,也需要根据情况预先计算 出适当的聚集值,以便决策人员快速查询;对于单 数据源中出现的其他问题将转移到数据抽取阶段 进行处理,数据清理的任务主要可归纳为: 1)清理相似重复错误:相似重复记录是指客 观上表示现实世界中的同一实体,但由于表述方式 不同或拼写问题而使数据库管理系统不能识别其 为重复记录。重复记录可能导致OI。AP查询效率 低下[8]、建立错误的数据挖掘模型等,给后期数据 的决策分析产生很大影响。造成相似重复记录的 原因一般可分为两类L6j: (1)拼写错误:拼写错误主要涉及到单源实例 级问题的处理,它是针对具体记录中的值出现的错 误,如交换、替换、插入、删除等问题(如表1所示): 表1拼写错误类型 (2)缩写所引起的等价错误,如US与United States表示同一意思。 要对数据表中的相似记录进行检测,通常是把 表中的所有记录进行两两比对[4],通过匹配算法, 判断两个记录是否相似。适当的高效的记录比较 法可以节省时间和资源,例如对于文本记录,基本 的匹配算法是比较它们之间的编辑距离d,当dG£ (£为给定阈值)时,则标记这两条记录是相似的。 排序一比较一合并是检测消除大型数据库中相似 重复记录的重要方法L8],记录的比较范围影响到检 测性能及计算时间,当面对数据仓库中数据表的记 录数量较多、每条记录长度较大时,两两匹配的计 万方数据 2010年第5期 计算机与数字工程 169 算量有时会让整个系统陷于瘫痪。为了缩小这种 比较的范围,需要在记录比较前进行相应的排序, 当比较到某个阈值时就可判断其不相似,不用再与 后面的记录进行比较,实际的应用中也都是源于这 种思想,如表2所示。 表2相似重复数据的检测步骤 排序为了缩小比较范围,首先选择一个或几个字段作为 关键字进行排序 比较记录间的比较 合并从相似记录集中获得记录的完整信息,并作为该记录 的表示,即把一种作为正确的,删除其它蚕复的记录; 或者综合所有的重复记录,从而形成更完整的信息 2)计算聚集值:聚集值是在高质量的数据上 产生的。使用聚集值来产生输出数据,其中包含输 入数据中的聚集值,可以同时提供多个聚集表达式 和多个新字段名,如MIN(field)、AVG(field)等。 5.4数据装载阶段一Loading 将清理后的干净数据装载到数据仓库中,与传 统的数据加载阶段相同,主要任务为将清理后的干 净数据采用适当的方式如全量装载、增量装载、完 全刷新装载到数据仓库中。 5.5数据反馈阶段一Feedback ETL过程中数据清理的对象是装载前的数据记 录,主要用于找出指向同一实体的相似重复记录并 进行处理,以保证输入到数据仓库的数据的正确性 和一致性,同时也在一定程度上减少了数据冗余,但 是无法对数据源中相应的错误数据进行修正[3]。这 种根据数据清理中的指向同一实体的相似错误数据 修改数据源中相应的错误数据的过程,被称为逆向 数据清理L2J(Backforword of cleaned data)。 数据反馈阶段的引入完善了ETL过程,数据 清理使加载到数据仓库中的数据有质量保证,而数 据反馈则更正了数据源中的不一致数据。 5.6 EICI。F过程的特征 从上面的分析介绍可以总结出EICLF过程的 一些特征: 1)有利于对传统ETL过程的规范管理:传统 的ETL过程中存在“两头轻中间重”的特点,即抽 取阶段和加载阶段任务较轻,转换阶段任务较重, 各阶段中存在交叉重复工作的问题,改进后的 EICI。F过程对各阶段进行了任务规范。 2)各阶段任务均衡化、简单化:传统的ETL过 程重心集中在转换阶段,数据质量的优劣在很大程 度上依赖于此,EICIJ过程则将转换阶段的任务分 解为两个阶段,达到各阶段任务的均衡化、简单化。 3)整个过程的完善化:EICLF过程考虑到了 对数据源的清理,加入了数据反馈阶段处理。 4)有利于进度控制:EICLF过程每个阶段都 有其特定的任务,质量的优劣不再只由转换阶段决 定,进度的控制也可均衡到其他阶段。 6 ETL工具 目前已有相应的专门的ETI。工具‘1|,包括:1) Ardent Data Stage;2)Information Powermart; 3)SAS Institute;4)Oracle Warehouse Builder; 5)MSSQI。Server2000 DTS。 这些工具各有特点,也各有其适用的场合,不 存在一种工具的功能完全包含另一种工具的关系。 7 结语 面对传统ETL过程不能适应现代数据仓库中 对数据质量的高要求,提出了一个改进的划分流程 一EICLF过程,将传统的数据转换阶段分解为集 成和清理两个步骤,使各阶段需要处理的任务更明 确;将清理得到的高质量的数据反馈到源数据库系 统中,使数据始终保持一致。 参考文献 [1]Paul喇Pormiah.Data Warehousing FoundamentalsFM]]. 段云峰,李剑威,等译.北京:电子工业出版社,2004 [2]张旭峰.ETL若干关键技术研究[D].上海:复旦大学 计算机与信息技术系博士学位论文,2006. [33周奕辛.数据清洗算法的研究与应用[D].青岛:青岛大 学计算机软件与理论硕士学位论文,2005 [43杨宏娜.基于数据仓库的数据清洗技术研究[D].河北: 河北工业大学模式识别与智能系统硕士学位论文,2006 [53 Scott Henry,Sherlynn Hoon,Meeky Huang,et a1. Engineering Trade Study:Extract、Transform、Load Tools for Data Migration[C]]//Proceedings of the 2005 Systems and Information Engineering Design Symposi— um,2005:l~8 [63吕岩.基于ETL的异构数据源集成和转换系统的设计 与实现[Dj.广州:暨南大学计算机应用技术硕士学位 论文,2007 [73连仁包,曾光清.数据集成中数据清洗模型的研究[J]. 福建电脑,2007(2):3~4 [83邱越峰,田增平,周傲英,等.一种高效的检测相似重复 记录的方法[J].计算机学报,2001,24(1):69~77 [93 Alkis Simitsis,Panos Vassiliadis,Timos Sellis.Opti— mizing EWL Processs in Data Warehouse[C]]//IEEE (Proceedings of the 21th International Corderence 011 Data Engineering,ICDE),2005 万方数据
展开阅读全文
  皮皮文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:基于数据仓库的etl过程优化.pdf
链接地址:http://www.ppdoc.com/p-10930811.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2008-2018 皮皮文库网站版权所有
经营许可证编号:京ICP备12026657号-3 

收起
展开