教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 人文社科> 哲学/历史> _数据仓库中ETL技术的探讨与实践

_数据仓库中ETL技术的探讨与实践

上传者:李少兵
|
上传时间:2017-06-04
|
次下载

_数据仓库中ETL技术的探讨与实践

  第22卷第11期??????2005年11月????计算机应用与软件

  ComputerApplicationsandSoftwareVol??22,No.11

  Nov.2005

  数据仓库中ETL技术的探讨与实践

  王克龙??王??玲??王平立??宋??斌

  (南京理工大学计算机科学与技术系??江苏南京210094)

  摘??要????支持数据抽取、转换、清洗和装载的工具集对任何数据仓库工程都是一个必不可少的关键部件。本文重点探讨了ETL

  技术以及ETL工具的选择原则,并结合具体实例详细介绍了ETL过程的设计和实现方法。关键词????数据仓库??ETL??数据抽取??数据转换??数据清洗??数据装载

  RESEARCHONTECHNOLOGYOFETLINDATAWAREHOUSEANDITSPRACTICE

  WangKelong??WangLing??WangPingli??SongBin

  (DepartmentofComputerScienceandTechnology,NUST,NanjingJiangsu210094,China)

  Abstract????Thesetoftoolsthatsupportsdataextract,transform,cleansing,andloadingisakeycomponentofthedatawarehousearchitec-ture.ThispaperdiscussesETLtechnologyandtheprincipleofselectingtheETLtoolsandintroducesthedesignandimplementationmethodofETLprocessindetai.l

  Keywords????Datawarehouse??ETL??Dataextract??Datatransform??Datacleansing??Dataloading

  1??引??言

  近年来,由于计算机技术的不断普及和科技进步为大量数据的应用提供了基础,数据库技术的应用和发展为人们积累了

  大量的日常业务数据,这些数据对于企业来说无异于一个巨大的宝库,蕴藏着大量的对企业管理决策有用的信息。但如何使这些数据转换成有用的信息,为人们生活和社会发展的各方面提供正确的决策,传统的数据库系统已无法满足需求。于是人们尝试对数据库中的数据进行再加工,形成一个综合的、面向分析的环境,以更好地支持决策分析。正是在这种需求下,一种新的信息处理技术??????数据仓库(DataWarehouse,DW)技术应运而生。

  数据仓库作为一个集成的信息库,把数据从各个信息源中提取出来后,按照数据仓库所用的公共数据模型进行相应变换,并与仓库中现有数据集成在一起。在仓库中,由于数据模型和语法等方面的差异已经消除,数据可以被直接访问,因此查询和分析处理都很快。最重要的是,访问仓库中的数据不需要占用信息源的系统资源,访问仓库中的数据不会像直接访问信息源那样增加开销。

  对于创建数据仓库及其后续工作,如联机分析、数据挖掘等,都需要数据的正确性、一致性、完整性和可靠性,而目前的现存操作型系统中的数据尚存在很多的问题,容易造成脏数据。

  因此,在数据仓库构建过程中,工作量最繁重、问题最多的就是从业务数据库向数据仓库抽取、转换、集成数据的过程。数据采集(ETL)工具是用来从不同种类和形式的操作型系统中抽取、转换、集成数据,将其存储到数据仓库,并对数据的质量进行2??ETL技术介绍

  2??1??ETL相关概念

  ETL,即数据抽取、转换、清洗、装载的过程,是构建数据仓库最重要的步骤之一。用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。如图1所示。

  图1??ETL处理示意图

  2??2??ETL步骤详细介绍

  创建数据仓库最重要的一个步骤是将数据从各种操作型数据库系统中抽取出来,排除数据中的数据缺陷,完成一系列转换,最后将数据加载到数据仓库。这个过程非常繁杂,是整个数据仓库建设过程中工作量最大的一部分。下面将详细介绍它们的设计细节。

  (1)数据抽取??并不是源数据库的所有细节数据对于数据仓库的主题域都是有用的,必须根据已确定主题的需要,从原有操作型数据库中抽取相关数据到数据仓库。一般在设计数据抽取时要考虑以下几个方面:

  ??源数据库和目标数据库各自的数据库格式是否一致?

  收稿日期:2004-03-03。王克龙,硕士生,主研领域:数据库技术,

  _数据仓库中ETL技术的探讨与实践1

  企业信息化。

  ??

  第11期??????

  王克龙等:数据仓库中ETL技术的探讨与实践??31

  ??从源数据库中要访问哪些文件和表?

  ??从源数据库中可以提取哪些字段,抽取记录的条件是什么?

  ??目标数据库中的表结构是什么?

  (2)数据转换??数据仓库中的数据往往来自一个或多个异构的数据库系统,这些数据源之间往往存在着不一致的问题,如不一致的字段长度、不一致的赋值等。数据不一致会严重影响数据仓库的数据质量。数据转换就是处理这些不一致性的过程。

  数据转换一般包括两个方面的内容。一方面是数据名称及格式的统一,如统一的命名、统一的数据格式、统一的计量单位等等。另一方面,数据仓库中存在着源数据库中可能不存在的数据,因此需要创建新的数据逻辑视图并进行以下的转换:

  ??把一个字段的各个部分隔成两个或多个字段。

  ??把一个记录的两个或多个字段组合成一个字段。??把来自多个记录的字段结合成一个记录。

  (3)数据清洗??数据质量是决定信息价值的关键因素。高质量的信息导致高质量的决策,而低质量的信息将导致低劣的决策。数据仓库是分析决策的基础,所以数据仓库中数据的准确性是非常重要的。

  传统数据库中的数据大都存在错误,这是活生生的事实。尽管数据仓库项目能把注意中心放在数据质量问题和引导未来的进一步改进上,但数据仓库开发者却并不能改变数据仓库的基础??????历史数据的质量。因此,有必要对进入数据仓库的数据进行全面检查并使他们尽可能无差错。这一过程就称作数据清洗。

  数据清洗应该处理许多可能存在的错误类型。这些类型包括数据源中丢失数据和有错误数据,还包括两个或多个数据源里的不一致数据和冲突数据,所有这些都必须处理。有时如果系统不能自动处理,还必须借助于手工操作来完成。

  (4)数据装载??这一步所进行的工作是运行以上的处理步骤,将数据装入到数据仓库。主要的工作包括确定数据装入的次序、载入初始数据等。

  订单出发,各部门围绕客户的订单严格按企业规定进行运作。目前该企业已经建立起了MIS系统,并积累了大量的业务数

  据。管理层希望通过对这些业务数据的分析,更好地了解企业的生产运作情况,帮助管理层进行决策。

  根据以上需求建立企业数据仓库,在经过总体需求分析后,建立了数据仓库的逻辑模型和物理模型,基本确定了数据仓库中事实表和维表的结构。下面的工作就是将原MIS系统中的相关业务数据转移到数据仓库的事实表和维表中。主要包括:确定数据源、指定数据目的地以及操纵和转换从数据源到数据目的地的数据。

  在各大厂商提出的数据仓库解决方案中都提供了ETL工具,在众多产品中,普遍认为DTS是系统最易使用、扩展性最好、编程效率最高的数据抽取工具。

  ??DTS可以自动或交互地从多个异构数据源向数据仓库装入数据。

  ??DTS支持快速的非记录的块拷贝程序向SQLServer数据库插入数据。这是目前为止将大量的数据移动到SQLServer表中最快的方法。

  ??

  DTS基于OLEDB接口能够在关系数据源、非关系数据

  源以及ODBC数据源之间进行转移数据。

  ??DTS支持使用VBScript或JavaScript等脚本语言创建自定义的转换脚本。也允许使用编程语言(如VisualBasic或VisualC++)编写自定义的组件,能够在转换中对数据进行各种操作。

  ??DTS同SQLServer2000结合紧密,可以自动调度导入或操作任务,也可以使用SQL代理服务来进行调度。

  因此在本系统中选用Microsoft的DTS作为ETL工具。DTS主要的功能有导入和导出数据、变换数据和传送数据库对象。DTS允许在一个过程中完成导入、导出和变换数据。这个过程的定义可以保存在包当中。DTS包含三种类型对象:连接对象、任务对象和步骤对象。连接对象定义数据源的连接,即与转换的源和目标的连接;任务对象定义了包中的动作,例如执行SQL语句、拷贝一个表的内容或执行一段脚本;步骤对象定义任务对象的执行的顺序。

  定义包有三种方式:使用DTS设计器(DTSDesigner)、DTS导入和导出向导、DTS编程接口。本系统采用DTS设计器定义包。包可以三种方式保存:基于COM的文件,MSSQLServer的msdb数据库,作为外部VisualBasic文件。在本系统中我们用SQL语言和VBScript脚本语言对加载过程进行编程控制,以正确完成加载任务。对所定义的包保存在msdb数据库中。

  DTS组件在定义数据源和目的连接以后,可以在两者之间进行数据转换。这是数据转移的主要阶段。DTS既可以复制整个表和视图,又可以复制特定SQL语句返回的数据,还可以针对源和目的都是SQL数据库时,复制所有数据库对象和数据。

  对事实表的转换任务如下:由于事实表的主键来自三个维表和原合同表,度量来自原操作型数据的合同表和合同细则表,所以用SQL查询语句,把事实表所需字段合并起来:

  selectLPMart.dbo.timedim.时间序号,????????LPMart.dbo.customerdim.客户序号,????????LPMart.dbo.product

  dim.产品序号,

  ????????[order].htnoas??合同编号??,

  2??3??ETL工具选择原则

  目前已有众多商用数据仓库产品走向市场。IBM、Oracle、Sybase、CA、NCR、SAS、Microsoft等公司已相继推出了各自的数

  据仓库解决方案,它们的ETL工具也各有其优势和不足。在选择ETL工具时必须遵守以下原则:

  ??支持多种数据源,如DBMS、电子表格、平面文件。??支持多种平台,支持多种数据库。

  ??具有规范的数据访问接口。

  ??具有灵活的可编程性和调用外部程序的功能。??工具生成的代码必须是在开发环境中可维护的。

  ??能只抽取满足指定条件的数据和源数据的指定部分。??能在抽取过程中进行数据类型转换和字符集转换并能计算生成衍生的字段。

  ??具有直观的视图、灵活的配置,能自动调用以定期实现管理工作。

  3??应用实例

  某外贸公司是一个比较典型的订货型生产企业,生产并出,(页)

  ??

  ??78??????

  计算机应用与软件2005年

  [4]W3C.ExtensiblestylesheetLanguage(XSL)[EB/OL].http:??www.w3.

  org/TR/2001/REC-xs-l20011015/xslspecRX.pd,fMay2002.

  [5]SubrahmanyamAllamaraju.ProfessionalJavaServerProgrammingJ2EE

  Edition,闻道工作室,机械工业出版社,2001,9??

  [6]DeanHelman,Mode-lView-Controller.http:??http://www.wendangwang.com/mvc-pattern.

  htm,lMay1998.

  [7]SteveBurbeck-ApplicationprogramminginSmalltalk-80(TM),Howto

  useMode-lView-Controller(MVC).http:??st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.htm,l1992.

  小类??12??。所以在此要通过ActiveX脚本对数据进行一些编程的转换才能实现。对产品小类字段的编程转换如下:

  ****************************从产品编号源列提取出产品小类目的列(VisualBasic转换脚本)****************************FunctionMain()??Dimsr,,ij

  ??Sr=DTSSource(??产品编号??)????

  i=InStr(DTSSource(??产品编号??),??-??)j=i+1i=i+1

  (上接第31页)

  ????????[order].dhslas??订货数量??,????????[order].jeas??金额??,

  ??????round(([order].up-LPMart.dbo.product

  [order].dhs,l2)as??利润??

  fromcontractinnerjoin[order]oncontract.htno=[order].htnoinnerjoinLPMart.dbo.timedimoncontract.hdate=LPMart.dbo.timeinnerjoinLPMart.dbo.customerdim

  oncontract.gno=LPMart.dbo.customerdim.客户编号innerjoinLPMart.dbo.productdimon[order].comno=LPMart.dbo.product

  dim.产品编号dim.合同日期

  dim.总成本)*

  ??do????

  ??loopuntilIsNumeric(Mid(sr,,i1))

  ??DTSDestination(??产品小类??)=Mid(sr,,ji-j+2)

  ??DTSDestination(??产品小类??)=Mid(DTSSource(??产品编号??),??????????InStr(DTSSource(??产品编号??),??-??)+1,2)??Main=DTSTransformStatOKEndFunction

  由于事实表的时间序号、产品序号、客户序号数据依据相关

  的维表,根据关系规则,数据导入要先导入维表,然后再导入事实表,整个工作流的执行步骤如图4所示。

  查询语句编写完成并分析有效以后,需要对目标数据库的表进行选择,在目的选项卡中选择salesfact事实表即可。最后是对应字段的映射处理,在转换选项卡中只要进行字段一对一的复制即可,如图2

  _数据仓库中ETL技术的探讨与实践2

  。

  图4??转换工作流程

  执行这个定义好的DTS转换任务,数据将按照设定的步骤和规则导入数据仓库的维表和事实表中,从而完成了数据仓库的数据转载任务。同时还可以设置DTS包,将原操作型数据库中新增和更改过的数据定期自动地更新到数据仓库中。

  4??结束语

  图2??事实表??转换??选项

  各维表的转换过程与此类似,只是在进行产品维表的转换时,由于产品维表中的产品编号、产品大类、产品小类字段都来自于原操作型数据库产品表的产品编号字段,如图3

  _数据仓库中ETL技术的探讨与实践3

  。

  数据抽取、转换、清洗和装载是创建数据仓库最重要的阶

  段,它涉及数据仓库数据质量是否满足要求以及能否有效进行决策分析。数据仓库以传统操作型数据库为主要数据源,通过ETL工具采集数据并装入数据仓库。一个为企业决策者提供快捷、准确、全面、有价值信息的数据仓库系统必须以高效的ETL作为基础。

  参考文献

  [1]W.H.Inmon,Buildingthedatabridge,thetencriticalsuccessfactorsof

  buildingadatawarehouse.DataBaseProgrammingDesign.1992(11):70~73.

  [2]W.H.Inmon等著,王志海等译,数据仓库??第二版,北京:机械工业

  出版社,2000??

  [3]张宁、贾自艳、史忠植,??数据仓库中ETL技术的研究??,《计算机工

  程与应用》,2002(24):213~216.

  图3??产品维表??转换??选项卡

  [4]朱焱,??浅谈数据抽取净化和转换工具??,《计算机应用》,2000(4)??[5]飞思科技产品研发中心编著,SQLServer2000OLAP服务设计与应

  用,北京:,2002??

  产品大类、产品小类都是从产品编号的数据值中拆分出来

  _数据仓库中ETL技术的探讨与实践4

  ??分为:类??AL??,产品

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

下载文档

热门试卷

2016年四川省内江市中考化学试卷
广西钦州市高新区2017届高三11月月考政治试卷
浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
广西钦州市钦州港区2017届高三11月月考政治试卷
广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
广西钦州市高新区2016-2017学年高二11月月考政治试卷
广西钦州市高新区2016-2017学年高一11月月考政治试卷
山东省滨州市三校2017届第一学期阶段测试初三英语试题
四川省成都七中2017届高三一诊模拟考试文科综合试卷
2017届普通高等学校招生全国统一考试模拟试题(附答案)
重庆市永川中学高2017级上期12月月考语文试题
江西宜春三中2017届高三第一学期第二次月考文科综合试题
内蒙古赤峰二中2017届高三上学期第三次月考英语试题
2017年六年级(上)数学期末考试卷
2017人教版小学英语三年级上期末笔试题
江苏省常州西藏民族中学2016-2017学年九年级思想品德第一学期第二次阶段测试试卷
重庆市九龙坡区七校2016-2017学年上期八年级素质测查(二)语文学科试题卷
江苏省无锡市钱桥中学2016年12月八年级语文阶段性测试卷
江苏省无锡市钱桥中学2016-2017学年七年级英语12月阶段检测试卷
山东省邹城市第八中学2016-2017学年八年级12月物理第4章试题(无答案)
【人教版】河北省2015-2016学年度九年级上期末语文试题卷(附答案)
四川省简阳市阳安中学2016年12月高二月考英语试卷
四川省成都龙泉中学高三上学期2016年12月月考试题文科综合能力测试
安徽省滁州中学2016—2017学年度第一学期12月月考​高三英语试卷
山东省武城县第二中学2016.12高一年级上学期第二次月考历史试题(必修一第四、五单元)
福建省四地六校联考2016-2017学年上学期第三次月考高三化学试卷
甘肃省武威第二十三中学2016—2017学年度八年级第一学期12月月考生物试卷

网友关注

全国中小学教师资格考试 语文学科知识与教学能力模拟题(初级中学)
中小学教师资格考试《语文学科知识与教学能力(高级中学)》模拟题
教师资格国考《幼儿综合素质》模拟题练习题(二)
教资国考《幼儿保教知识与能力》模拟题材料分析练习题(二)
中小学教师资格考试《语文学科知识与教学能力(初级中学)》模拟题
教师资格考试中学《综合素质》“教育观”章节跟踪模拟题
教资国考《幼儿保教知识与能力》模拟题活动设计练习题(二)
教资国考《幼儿保教知识与能力》模拟题单选练习题(三)
2014年教师资格考试《幼儿综合素质》模拟题试卷三
教资国考《幼儿保教知识与能力》模拟题论述练习题(一)
2014教师资格证《中学教育知识与能力》模拟题密卷及答案(1)
教师资格初级中学模拟题(语文)
教资国考《幼儿保教知识与能力》模拟题简答练习题(一)
教师资格国考《幼儿综合素质》模拟题练习题(八)
教师资格笔试经典考点模拟题及答案解析
教师资格《体育与健康学科知识与教学能力(高级中学)》模拟题及答案
小学教师资格考试综合素质模拟题
语文学科知识与教学能力模拟题(初级中学)
中学《教育知识与能力》模拟题
初中语文教师资格证模拟题
教资国考《幼儿保教知识与能力》模拟题论述练习题(二)
教师资格国考《幼儿综合素质》模拟题练习题(六)
高中生物模拟题《从此再也不怕遗传“病”(二)》
高中语文教师资格证学科知识模拟题
语文学科知识与教学能力模拟题(高中)
教资高级中学模拟题
教资国考《幼儿保教知识与能力》模拟题简答练习题(四)
教资初级中学模拟题
教资国考《幼儿保教知识与能力》模拟题单选练习题(二)
教资国考《幼儿保教知识与能力》模拟题单选练习题(四)

网友关注视频

冀教版小学数学二年级下册第二单元《有余数除法的简单应用》
第五单元 民族艺术的瑰宝_16. 形形色色的民族乐器_第一课时(岭南版六年级上册)_T1406126
沪教版牛津小学英语(深圳用) 四年级下册 Unit 7
第19课 我喜欢的鸟_第一课时(二等奖)(人美杨永善版二年级下册)_T644386
沪教版牛津小学英语(深圳用) 四年级下册 Unit 3
化学九年级下册全册同步 人教版 第25集 生活中常见的盐(二)
六年级英语下册上海牛津版教材讲解 U1单词
【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,辽宁省
30.3 由不共线三点的坐标确定二次函数_第一课时(市一等奖)(冀教版九年级下册)_T144342
冀教版英语五年级下册第二课课程解读
第五单元 民族艺术的瑰宝_16. 形形色色的民族乐器_第一课时(岭南版六年级上册)_T3751175
苏教版二年级下册数学《认识东、南、西、北》
沪教版牛津小学英语(深圳用) 四年级下册 Unit 4
二年级下册数学第三课 搭一搭⚖⚖
苏科版数学七年级下册7.2《探索平行线的性质》
沪教版牛津小学英语(深圳用) 五年级下册 Unit 7
外研版英语七年级下册module3 unit1第二课时
外研版英语三起6年级下册(14版)Module3 Unit2
冀教版英语四年级下册第二课
苏科版数学八年级下册9.2《中心对称和中心对称图形》
沪教版牛津小学英语(深圳用) 五年级下册 Unit 10
外研版英语七年级下册module1unit3名词性物主代词讲解
第4章 幂函数、指数函数和对数函数(下)_六 指数方程和对数方程_4.7 简单的指数方程_第一课时(沪教版高一下册)_T1566237
青岛版教材五年级下册第四单元(走进军营——方向与位置)用数对确定位置(一等奖)
19 爱护鸟类_第一课时(二等奖)(桂美版二年级下册)_T502436
沪教版八年级下册数学练习册一次函数复习题B组(P11)
19 爱护鸟类_第一课时(二等奖)(桂美版二年级下册)_T3763925
冀教版小学数学二年级下册1
冀教版小学英语五年级下册lesson2教学视频(2)
沪教版牛津小学英语(深圳用) 六年级下册 Unit 7