ETL中的数据清洗设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ETL中的数据清洗设计 董金新 张虹 杨山鹏 聊城大学 中国矿业大学 摘要 为提高数据仓库数据质量,需要在ETL过程进行数据清洗。本文首先提出了ETL过程进行数据清洗应解决的问题,然后通过分析现有的ETL处理方式说明应采用数据库中的ETL处理,介绍了数据质量和数据清洗的原理并提出了数据清洗在ETL中的应用模型,最后通过实例说明数据清洗的具体实现。 关键词 数据仓库 ETL 数据清洗 1 前言 ETL即数据抽取(Extract)、转换(Transform)、装载(Load)的过程。它是构建数据仓库的重要环节。数据仓库是面向主题的、集成的、稳定的且随时间不断变化的数据集合,用以支持经营管理中的决策制定过程[1]。数据仓库主要用于决策分析,为领导者提供决策支持信息。数据仓库系统中有可能存在着大量的脏数据,引起的主要原因有:滥用缩写词、惯用语、数据输入错误、重复记录、丢失值、拼写变化、不同的计量单位和过时的编码等。即便是一个设计和规划良好的数据仓库系统,如果其中存在着大量的脏数据,那么这个系统也是没有任何意义的,因为“垃圾进,垃圾出”(garbage in, garbage out),系统根本就不可能为决策分析系统提供任何支持。为了清除脏数据,必须在数据仓库系统中进行数据清洗。 数据清洗(data cleansing/data cleaning/data scrubing)是一个减少错误和不一致性、解决对象识别的过程[2]。目前有很多数据清洗研究[2][3][4][6]和ETL研究[8][9][10],但是如何在ETL过程中进行有效的数据清洗,此方面研究不多。笔者认为这包括三方面的内容:(1)ETL处理方式的选择(2)数据清洗的原理及在ETL中的应用模型(3)数据清洗的具体实现过程。 2 ETL处理方式 数据抽取负责完成从数据源找到并取出当前主题所需的那部分数据,由于数据仓库中各个主题中的数据是按照前端应用的需求存放的,因此需要对抽取出的数据进行转换以适应前端应用的需要。转换后的数据就可以装入数据仓库了,数据加载过程定时进行,并且不同主题的数据加载任务有各自不同的执行时间表。 常见的ETL处理方式可分为以下三种: 数据库外部的ETL处理 数据库外部的ETL处理方式指的是大多数转换工作都在数据库之外、在独立的ETL过程中进行。这些独立的ETL过程与多种数据源协同工作,并将这些数据源集成。数据库外部ETL处理的优点是执行速度比较快。但缺点是大多数ETL步骤中的可扩展性必须由数据库的外部机制提供,如果外部机制不具备扩展性,那么此ETL处理就不能扩展。 数据库段区域中的ETL处理 数据库段区域中的ETL处理方式不使用外部引擎而是使用数据库作为唯一的控制点。多种数据源的所有原始数据大部分未作修改就被载入中立的段结构中。如果源系统是关系数据库,段表将是典型的关系型表。如果源系统是非关系型的,数据将被分段置于包含列VARCHAR2(4000)的表中,以便于在数据库内作进一步转换。成功地将外部未修改数据载入数据库后,再在数据库内部进行转换。这就是系列方法载入然后转换。数据库段区域中的ETL处理方式执行的步骤是提取、装载、转换,即通常所说的ELT。在实际数据仓库系统中经常使用这种方式。这种方式的优点是为抽取出的数据首先提供一个缓冲以便于进行复杂的转换,减轻了ETL进程的复杂度。但是这种ETL处理的缺点有:(a)在段表中存贮中间结果和来自数据库中源系统的原始数据时,转换过程将被中断。(b)大多数转换可以使用类SQL的数据库功能来解决,但它们可能不是处理所有的ETL问题的最优语言。 (3)数据库中的ETL处理 数据库中的ETL处理方式使用数据库作为完整的数据转换引擎,在转换过程中也不使用段。数据库中的ETL处理具有数据库段区域中的ETL处理的优点,同时又充分利用了数据库的数据转换引擎功能,但是这要求数据库必须完全具有这种转换引擎功能。目前的主流数据库产品Oracle 9i[5]等可以提供这种功能。 综上分析三种ETL处理方式,数据库外部的ETL处理可扩展性差,不适合复杂的数据清洗处理,数据库段区域中的ETL处理可以进行复杂的数据清洗,而数据库中的ETL处理具有数据库段区域ETL处理的优点,又利用了数据库的转换引擎功能。所以为了进行有效的数据清洗,应该使用数据库中的ETL处理。 3 数据清洗的原理及在ETL中的应用模型 数据清洗的目的是保证数据仓库数据质量。 3.1 数据质量 对于什么是数据质量,文献[3]将其定义为数据的一致性(consistency)、正确性(correctness)、完整性(completeness)和最小性(minimality)这4个指标在信息系统中得到满足的程度。根据处理的是单数据源还是多数

文档评论(0)

803322fw + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档