`
zhangym195
  • 浏览: 124027 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江
社区版块
存档分类
最新评论

大数据计算前数据抽取(ETL)概述

阅读更多

     ETL,Extraction-Transformation-Loading的缩写,即数据抽取(Extract)、转换(Transform)、装载(Load)的过程,它是构建数据仓库的重要环节。

ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。ETL是BI项目重要的一个环节。通常情况下,在BI项目中ETL会花掉整个项目的1/3的时间,ETL设计的好坏直接关接到BI项目的成败。

  在数据仓库的构建中,ETL贯穿于项目始终,它是整个数据仓库的生命线,包括了数据清洗、整合、转换、加载等各个过程。如果说数据仓库是一座大厦,那么ETL就是大厦的根基。ETL抽取整合数据的好坏直接影响到最终的结果展现。所以ETL在整个数据仓库项目中起着十分关键的作用,必须摆到十分重要的位置。

   ETL架构

创建ETL系统的时候,头脑里应并存的两条主线:规划&设计主线和数据流主线

规划&设计主线:需求和实现===〉架构===〉系统实施===〉测试和发布

数据流主线:抽取===〉清洗====〉规格化====〉提交


(图片借用,如果有侵权,请即时通知我处理)
 

  通过ETL,我们可以基于源系统中的数据来生成数据仓库。ETL为我们搭建了OLTP系统和OLAP系统之间的桥梁,是数据从源系统流入数据仓库的通道。在数据仓库的项目实施中,它关系到整个项目的数据质量,所以马虎不得,必须将其摆到重要位置,将数据仓库这一大厦的根基筑牢!

  ETL主要是利用转换服务器的处理能力,从源表抽取数据后,在转换服务器中进行数据清洗、转换,完成后加载到目标库中。它的转换过程都是在转换服务器中进行的,所以它的性能瓶颈在中间的转换服务器中。

  ETL的设计分三部分:数据抽取、数据的清洗转换、数据的加载。在设计ETL的时候我们也是从这三部分出发。数据的抽取是从各个不同的数据源抽取到ODS(OperationalDataStore,操作型数据存储) 中——这个过程也可以做一些数据的清洗和转换),在抽取的过程中需要挑选不同的抽取方法,尽可能的提高ETL的运行效率。ETL三个部分中,花费时间最长的是“T”(Transform,清洗、转换)的部分,一般情况下这部分工作量是整个ETL的2/3。数据的加载一般在数据清洗完了之后直接写入DW (DataWarehousing,数据仓库)中去。

  ETL的实现有多种方法,常用的有三种。一种是借助ETL工具(如Oracle的 OWB、SQLServer2000的DTS、SQLServer2005的SSIS服务、Informatic等)实现,一种是SQL方式实现,另外一种是ETL工具和SQL相结合。前两种方法各有各的优缺点,借助工具可以快速的建立起ETL工程,屏蔽了复杂的编码任务,提高了速度,降低了难度,但是缺少灵活性。SQL的方法优点是灵活,提高ETL运行效率,但是编码复杂,对技术要求比较高。第三种是综合了前面二种的优点,会极大地提高ETL的开发速度和效率。

  一、数据的抽取

  这一部分需要在调研阶段做大量的工作,首先要搞清楚数据是从几个业务系统中来,各个业务系统的数据库服务器运行什么DBMS,是否存在手工数据,手工数据量有多大,是否存在非结构化的数据等等,当收集完这些信息之后才可以进行数据抽取的设计。

  1、对于与存放DW的数据库系统相同的数据源处理方法

  这一类数据源在设计上比较容易。一般情况下,DBMS(SQLServer、Oracle)都会提供数据库链接功能,在DW数据库服务器和原业务系统之间建立直接的链接关系就可以写Select语句直接访问。

  2、对于与DW数据库系统不同的数据源的处理方法

  对于这一类数据源,一般情况下也可以通过ODBC的方式建立数据库链接——如 SQLServer和Oracle之间。如果不能建立数据库链接,可以有两种方式完成,一种是通过工具将源数据导出成.txt或者是.xls文件,然后再将这些源系统文件导入到ODS中。另外一种方法是通过程序接口来完成。

  3、对于文件类型数据源(.txt,.xls),可以培训业务人员利用数据库工具将这些数据导入到指定的数据库,然后从指定的数据库中抽取。或者还可以借助工具实现,如SQLServer2005的SSIS服务的平面数据源和平面目标等组件导入ODS中去。

  4、增量更新的问题

  对于数据量大的系统,必须考虑增量抽取。一般情况下,业务系统会记录业务发生的时间,我们可以用来做增量的标志,每次抽取之前首先判断ODS中记录最大的时间,然后根据这个时间去业务系统取大于这个时间所有的记录。利用业务系统的时间戳,一般情况下,业务系统没有或者部分有时间戳。

  二、数据的清洗转换

  一般情况下,数据仓库分为ODS、DW两部分。通常的做法是从业务系统到ODS做清洗,将脏数据和不完整数据过滤掉,在从ODS到DW的过程中转换,进行一些业务规则的计算和聚合。

  1、数据清洗

  数据清洗的任务是过滤那些不符合要求的数据,将过滤的结果交给业务主管部门,确认是否过滤掉还是由业务单位修正之后再进行抽取。不符合要求的数据主要是有不完整的数据、错误的数据、重复的数据三大类。

  (1)不完整的数据:这一类数据主要是一些应该有的信息缺失,如供应商的名称、分公司的名称、客户的区域信息缺失、业务系统中主表与明细表不能匹配等。对于这一类数据过滤出来,按缺失的内容分别写入不同Excel文件向客户提交,要求在规定的时间内补全。补全后才写入数据仓库。

  (2)错误的数据:这一类错误产生的原因是业务系统不够健全,在接收输入后没有进行判断直接写入后台数据库造成的,比如数值数据输成全角数字字符、字符串数据后面有一个回车操作、日期格式不正确、日期越界等。这一类数据也要分类,对于类似于全角字符、数据前后有不可见字符的问题,只能通过写SQL语句的方式找出来,然后要求客户在业务系统修正之后抽取。日期格式不正确的或者是日期越界的这一类错误会导致ETL运行失败,这一类错误需要去业务系统数据库用SQL的方式挑出来,交给业务主管部门要求限期修正,修正之后再抽取。

  (3)重复的数据:对于这一类数据——特别是维表中会出现这种情况——将重复数据记录的所有字段导出来,让客户确认并整理。

  数据清洗是一个反复的过程,不可能在几天内完成,只有不断的发现问题,解决问题。对于是否过滤,是否修正一般要求客户确认,对于过滤掉的数据,写入Excel文件或者将过滤数据写入数据表,在ETL开发的初期可以每天向业务单位发送过滤数据的邮件,促使他们尽快地修正错误,同时也可以做为将来验证数据的依据。数据清洗需要注意的是不要将有用的数据过滤掉,对于每个过滤规则认真进行验证,并要用户确认。

  2、数据转换

  数据转换的任务主要进行不一致的数据转换、数据粒度的转换,以及一些商务规则的计算。

  (1)不一致数据转换:这个过程是一个整合的过程,将不同业务系统的相同类型的数据统一,比如同一个供应商在结算系统的编码是XX0001,而在CRM中编码是YY0001,这样在抽取过来之后统一转换成一个编码。

  (2)数据粒度的转换:业务系统一般存储非常明细的数据,而数据仓库中数据是用来分析的,不需要非常明细的数据。一般情况下,会将业务系统数据按照数据仓库粒度进行聚合。

  (3)商务规则的计算:不同的企业有不同的业务规则、不同的数据指标,这些指标有的时候不是简单的加加减减就能完成,这个时候需要在ETL中将这些数据指标计算好了之后存储在数据仓库中,以供分析使用。

三、ETL日志、警告发送

  1、ETL日志

  ETL日志分为三类。一类是执行过程日志,这一部分日志是在ETL执行过程中每执行一步的记录,记录每次运行每一步骤的起始时间,影响了多少行数据,流水账形式。一类是错误日志,当某个模块出错的时候写错误日志,记录每次出错的时间、出错的模块以及出错的信息等。第三类日志是总体日志,只记录ETL开始时间、结束时间是否成功信息。如果使用ETL工具,ETL工具会自动产生一些日志,这一类日志也可以作为ETL日志的一部分。记录日志的目的是随时可以知道ETL运行情况,如果出错了,可以知道哪里出错。

  2、警告发送

  如果ETL出错了,不仅要形成ETL出错日志,而且要向系统管理员发送警告。发送警告的方式多种,一般常用的就是给系统管理员发送邮件,并附上出错的信息,方便管理员排查错误。

  ETL是BI项目的关键部分,也是一个长期的过程,只有不断的发现问题并解决问题,才能使ETL运行效率更高,为BI项目后期开发提供准确的数据。

  四、补充对ETL的理解:

  1、数据收集:

  a)收集位置多样:不同服务器上,不同位置上;

  b)收集数据形式多样:不同存储文件,不同存储格式;

  2、分析转换统一数据形式:

  a)分析解析不同文件和不同数据格式;

  b)将不同格式数据转换为统一格式;

  c)合并收集的数据;

  3、将统一格式数据导入数据仓库。

  如果说数据仓库的模型设计是一座大厦的设计蓝图,数据是砖瓦的话,那么ETL就是建设大厦的过程。在整个项目中最难部分是用户需求分析和模型设计,而ETL规则设计和实施则是工作量最大的,约占整个项目的60%~80%,这是国内外从众多实践中得到的普遍共识。

  目前,ETL工具的典型代表有:微软SSIS(取代了原来的DTS)、Informatica、Datastage、ORACLE的OWB和ODI、另外,Sun也有一套完整的ETL工具。开源的工具有eclips的etl插件。

  ETL的质量问题具体表现为正确性、完整性、一致性、完备性、有效性、时效性和可获取性等几个特性。

  为了能更好地实现ETL,建议用户在实施ETL过程中应注意以下几点:

  第一,保证集成与加载的高效性,可以分布式分析然后汇总;

  第二,增强可控性,主动收集数据不要被动推送数据;

  第三,应制定流程化的配置管理和标准协议;

  第四,制定关键数据标准和非关键数据标准。

  四种数据ETL模式:

  1)完全刷新:数据仓库数据表中只包括最新的数据,每次加载均删除原有数据,然后完全加载最新的源数据。这种模式下,数据抽取程序抽取源数据中的所有记录,在加载前,将目标数据表清空,然后加载所有记录。为提高删除数据的速度,一般是采用Truncate清空数据表。如本系统中的入库当前信息表采用此种模式。

  2)镜像增量:源数据中的记录定期更新,但记录中包括记录时间字段,源数据中保存了数据历史的记录,ETL可以通过记录时间将增量数据从源数据抽取出来以附加的方式加载到数据仓库中,数据的历史记录也会被保留在数据仓库中

  3)事件增量:每一个记录是一个新的事件,相互之间没有必然的联系,新记录不是对原有记录数值的变更,记录包括时间字段,可以通过时间字段将新增数据抽取出来加载到数据库中。

  4)镜像比较:数据仓库数据具有生效日期字段以保存数据的历史信息,而源数据不保留历史并且每天都可能被更新。因此,只能将新的镜像数据与上次加载的数据的镜像进行比较,找出变更部分,更新历史数据被更新记录的生效终止日期,并添加变更后的数据。大多数源数据中需保存历史信息的维表。

 

  • 大小: 134 KB
分享到:
评论

相关推荐

    ETL中的数据增量抽取机制研究

    #### 二、ETL概述 ETL是数据仓库构建中的关键环节,主要包括以下三个步骤: 1. **数据抽取**:从源系统中抽取需要的数据,这些数据可能来自多种类型的源系统,例如关系数据库、文本文件等。 2. **数据转换**:将...

    ETL数据抽取使用

    ### ETL数据抽取使用——以Kettle为例 #### 一、引言 随着大数据时代的到来,数据处理成为了企业和组织日常运营的重要组成部分。ETL(Extract, Transform, Load)作为数据集成的关键步骤,对于确保数据质量及提升...

    云数据采集中心及大数据计算平台建设方案.docx

    【云数据采集中心及大数据计算平台建设方案】 1. 引言 云数据采集中心及大数据计算平台的建设是现代教育信息化发展的重要组成部分。随着教育信息化的深入,大量的教学、管理、研究数据不断积累,对这些数据的有效...

    ETL数据整合与处理(Kettle)教案.rar

    一、ETL概述 ETL是数据仓库构建过程中的三个主要步骤:提取(Extract)、转换(Transform)和加载(Load)。首先,从各种源系统中抽取数据,然后对数据进行清洗、转换以满足特定需求,最后将处理后的数据加载到目标...

    ETL概述及部分工具比较

    ### ETL概述 #### 1. ETL的基本概念 ETL是Extract(抽取)、Transform(转换)和Load(加载)三个英文单词首字母的缩写,它是一种将来自不同源的数据提取出来,经过清洗、转换、集成后统一加载到目标数据库的过程。...

    清华大学精品大数据之数据清洗课程PPT课件(34页)含习题 第7章 采集Web数据实例 网页结构 网络爬虫 行为日志采集.pptx

    课程涵盖数据清洗、数据抽取以及数据ETL(提取、转换、加载)等相关主题。 【第七章:采集Web数据实例】 在这一章中,重点讨论如何采集Web数据,包括以下几个关键知识点: 1. **网页结构**: - **DOM简介**:...

    数据仓库ETL建设宝典

    数据仓库ETL(Extract, Transform, Load)是构建和维护数据仓库的核心过程,涉及从不同源头抽取数据、清洗转换数据以及加载到目标系统的过程。在本"数据仓库ETL建设宝典"中,我们将深入探讨这个领域的重要概念、工具...

    大数据之数据清洗课程全套PPT课件 共8个章节.rar

    第1章 大数据概论数据清洗概述、数据标准化、数据仓库.ppt 第2章 数据格式与编码.pptx 第3章 数据清洗ETL基本技术方法.pptx 第4章 常用数据清洗工具及基本操作.pptx 第5章 文本、web、数据库、增量数据抽取.pptx 第6...

    ETL概述及部分工具比较.rar

    在本资料"ETL概述及部分工具比较"中,我们将会深入探讨ETL的概念、重要性以及常用的ETL工具,并对OLAP专业工具和报表工具进行简要介绍。 ETL过程首先从数据提取(Extract)开始,这一阶段的目标是从各种来源,如...

    大数据基础技术概述.pptx

    大数据的基本处理流程包括数据抽取与集成、数据分析以及数据解释。这一流程确保了从各种来源收集的大量非结构化和结构化数据能够被有效地管理和利用。 **数据抽取与集成**是大数据处理的第一步,它涉及从各种异构...

    大数据基础技术概述42.pptx

    数据整合通过ETL工具将数据物理地集成到一起,数据联邦则建立一个统一的逻辑视图,隐藏底层数据分布的细节,数据传播涉及不同应用间的数据交互,而混合方式结合了数据整合和数据联邦的优点。 数据分析是大数据处理...

    ETL数据挖掘

    #### ETL概述 **ETL**(Extract-Transform-Load)是一种广泛应用于数据仓库建设中的关键技术,用于将数据从一个或多个源头抽取出来,经过必要的清洗与转换后,加载到目标系统中,通常是数据仓库或者数据分析平台。...

    ETL详解.docx

    例如,可能需要将非标准日期格式转换为标准日期格式,或者根据业务规则进行数据计算。 3.3 加载(Load) 加载阶段是将转换后的数据放入目标系统,如数据仓库、数据湖或大数据平台。加载过程中要考虑如何优化数据...

    零售业数据仓库中ETL技术的研究

    ETL是数据仓库建设的核心技术之一,主要包括三个步骤:数据抽取(Extract)、数据转换(Transform)和数据加载(Load)。 1. **数据抽取(Extract)** - **定义**:从各种来源系统中提取数据,这些来源可能是关系...

    企业大数据应用平台ETL系统运维实施技术方案.docx

    ETL(Extract, Transform, Load)系统是大数据处理的核心部分,负责从各种来源抽取数据(Extract),进行清洗、转换(Transform),并加载到目标数据仓库或数据湖(Load)。本方案主要涵盖了以下几个关键知识点: 1...

Global site tag (gtag.js) - Google Analytics