数据仓库和联机分析处理_第1页
数据仓库和联机分析处理_第2页
数据仓库和联机分析处理_第3页
数据仓库和联机分析处理_第4页
数据仓库和联机分析处理_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章 数据仓库和联机分析处理(OLAP)概述1.1 数据仓库的概念及其特点“什么是数据仓库?”这恐怕是每一个刚刚开始接触数据仓库的技术人员都会提出的一个问题。有人认为数据仓库就是一个大的数据库,也有人认为数据仓库是一项数据管理和分析的技术。这些定义都从一定的侧面反映了数据仓库的概念,但并不全面。目前,业界公认的数据仓库定义是由数据仓库之父W.H.Inmon在Building the Data Warehouse7一书中给出:“数据仓库是面向主题的、集成的、随时间变化的、稳定的数据集合,用以支持管理中的决策制定过程。”正如Inmon所描述的,数据仓库具有如下特点6,7:(1) 数据仓库的数据是

2、面向主题的与传统数据库面向应用进行数据组织的特点相对应,数据仓库中的数据是面向主题进行组织的。所谓主题,是指在较高层次上将企业信息系统中的数据综合、归类并进行分析利用的抽象。在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象。(2) 数据仓库的数据是集成的建立数据仓库的主要目的就是为用户提供易于访问的商业信息。为了减少用户查询的响应时间,应该把数据从数据源中提取出来,放到数据仓库中去。在数据进入数据仓库之前,必须经过加工和集成,使原始数据结构做一个从面向应用到面向主题的大转变。(3) 数据仓库的数据是不可更新的数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一般

3、情况下并不进行修改操作。数据仓库的数据不可更新使得数据仓库管理系统DWMS相比数据库管理系统DBMS而言要简单得多,同时也使我们可以对数据仓库进行最大限度的性能优化。(4) 数据仓库的数据是随时间不断变化的数据仓库中的数据不可更新是针对应用来说的,也就是说,数据仓库的用户进行分析处理时是不进行更新操作的。但并不是说,在从数据集成输入数据仓库开始到最终被删除的整个数据生存周期中,所有的数据仓库数据都是永远不变的。数据仓库会随时间的变化不断增加新的数据内容和删去过时的数据内容。当然,数据仓库通常还具有一些其它的特点,如数据仓库中的数据量很大、数据仓库对系统软硬件的要求较高等等。1.2 数据集市数据

4、仓库面向整个企业,不管是规模还是成本常常是巨大的。这时候,一种小型的、面向部门或工作组的数据仓库数据集市就应运而生。不少人认为数据仓库就是数据集市的集合,这种观点是错误的,正如数据仓库之父Inmon在1998年所说:“你可以在大海中捕到很多的小鱼并堆积起来,但它们仍然不是鲸。”数据集市是指具有特定应用的小型数据仓库,它专注于特定的主题域、特定的部门或特定的业务需求,而数据仓库中存储的则是整个企业内非常详细的数据5,6。数据集市的结构通常比较简单,数据量也少,所以管理起来也比较容易。在一个企业中,可能存在多个数据集市,它们分别按照所属的部门业务分类来组织数据,这些数据集市可以位于同一物理平台上,

5、也可以分布于不同的物理平台。而一个企业通常只有一个面向全局的数据仓库。数据集市有两种独立的数据集市和从属的数据集市。独立的数据集市根据各自特定的业务范围直接到各数据源中提取相关数据,而从属的数据集市则需要一个中央的数据仓库来支持,这个中央数据仓库为所有的数据集市提供数据。1.3 数据仓库与数据库的关系及比较传统的数据库作为数据管理的手段,主要面向一个或一组记录的查询和修改,为企业的特定应用服务,人们关心的是响应时间、数据的安全性和完整性。为此要求数据库提供完善的数据锁、事务日志和并发控制等机制,以便安全可靠地处理具体业务。数据仓库是在数据库基础之上发展起来的,数据仓库的作用就是为复杂的数据分析

6、和高层决策提供支持。尽管现有的数据仓库大多还是采用传统的关系数据库或改进后的关系数据库来实现,但由于两者面向的应用截然不同,因此不管是在数据模型的设计上还是在数据的物理组织上都存在着相当大的差异,如表2.1所示5,6,8。表2.1 数据仓库与数据库的对比表对 比 内 容数 据 仓 库数 据 库数据目标分析应用面向业务操作程序、重复处理数据内容历史的、综合的、提炼的数据当前细节数据数据特征相对稳定动态更新数据组织面向主题面向应用数据有效性代表历史的数据存取时准确访问特点分析驱动(访问路径灵活多变)事务驱动(访问路径相对固定)数据访问量一次操作数据量大一次操作数据量小使用频率中到低高响应时间要求数

7、秒或数分钟以上秒级1.4 决策支持系统与数据仓库在讨论联机分析处理(OLAP)之前,我们先回顾一下更广泛的决策支持系统(DSS)的产生和发展过程,这是因为OLAP作为DSS中一个得到广泛应用的部分,其产生和发展与DSS的发展有着密不可分的关系。1.4.1 传统的决策支持系统决策支持系统是在管理信息系统和运筹学的基础上发展起来的,以支持用户的决策为目的的集成系统5。最初,人们认为决策支持系统可以作为一个人工智能系统,综合利用各种数据、信息、知识、特别是模型技术,以辅助各级决策者解决半结构化决策问题的人机交互系统。因此早在上个世纪八十年代,人们就提出了基于数据库、模型库和方法库的决策支持系统框架,

8、如图2.1所示9。图2.1 决策支持系统“三库”结构由于数据资源和分析工具的缺乏等原因,分析模型和算法的设计没有坚实的数据基础,而且对于系统的模型提炼和建立方法库的难度都超出了人们的设计能力。这时的决策支持系统,理论研究多于系统建设,概念方法的探讨多于实际工具的研制,未能达到人们预期的效果,只有少数系统取得了成功。进入上个世纪九十年代后,由于企业对数据库的广泛应用,企业的数据库积累了大量数据,而如何从这些数据中提炼出有效信息来指导企业的经营决策成了大企业的迫切要求。决策支持系统重新浮出水面。通过总结以前的经验和教训,人们认识到人在决策支持系统中的作用是无法替代的,计算机在现阶段的主要任务是利用

9、其高速的运算能力,对系统中的海量数据进行及时、准确、快速地计算和分类,从而向决策者提供信息,而且能从提炼的这些信息中概括出规律性的规则,协助决策者及时作出合理的决策。1.4.2 基于数据仓库的决策支持系统自从Inmon首次提出数据仓库概念以后,数据仓库及其相关技术日益成熟,客观上带动了高性能和并行技术以及数据库中的知识发现等多领域的巨大进步。数据库技术的发展和激烈的市场竞争为解决DSS问题提供了可能,人们开始提出了以数据仓库为基础、OLAP和数据挖掘工具为手段的一整套可操作、可实施的解决方案。以数据仓库为核心的决策支持系统的结构如图2.2所示10。图2.2 基于数据仓库的决策支持系统的结构数据

10、库、数据仓库和共用数据接口是系统的数据管理部分,构成了整个系统的核心和基础,为上层应用提供数据。方法库、模型库、知识库、数据挖掘工具、多维分析工具(OLAP工具)和统计查询工具共同构成了前端分析工具层,相互配合协调,完成用户的决策处理任务。管理工具主要完成系统的模型维护、数据仓库元数据管理、数据提取任务的管理等任务。在这种新的DSS构架中,数据仓库、OLAP、数据挖掘和数据可视化技术具有内在的统一性,很好地解决了相互之间的衔接问题。数据仓库为OLAP和数据挖掘提供充实可靠的数据,数据挖掘所发现的知识可以用于指导OLAP的多维分析,而OLAP分析得出的新知识也可以补充到系统的知识库中。这种新的D

11、SS构架的重要意义在于重新揭示了信息的本质,表明了信息系统的设计观念从处理驱动到数据驱动的转变。过去的信息系统以大量复杂的处理过程和算法为特征,数据在这些处理中产生。而在未来的时代,信息的重点将转移到数据模式分析,信息处理技术将随数据分析处理的需求而不断进步。1.5 联机分析处理(OLAP)数据仓库是进行分析决策的基础,但它只提供数据的存储管理和基本的数据检索能力,强大的分析功能还要靠前端强有力的分析工具来执行。目前,数据仓库的分析工具主要可分为以下两类:(1) 查询工具:这类工具对数据仓库的查询不只是简单地查询记录级数据,还包括了许多对查询结果进行分析处理的功能。查询工具中最典型的要属多维分

12、析工具(OLAP工具),它可以对数据的多种可能的观察形式进行快速、一致和交互性的存取,以便于用户对数据进行深入的分析和观察。(2) 数据挖掘工具:主要用于从大量数据中发现数据模式,预测趋势和行为。本节将对专利审查联机分析处理系统中使用的OLAP技术进行详细介绍。1.5.1 OLAP的出现联机分析处理(On-Line Analytical Processing,OLAP)是E.F.Codd在1993年正式提出的。当时,Codd认为联机事务处理(OLTP)不能满足终端用户对数据库查询分析的需求,SQL对数据库进行的简单查询及报告不能满足用户分析的需求,越来越多的用户需要更为复杂、动态的历史数据,要

13、求从不同的数据源中综合数据,从不同的角度观察数据。动态数据分析所涉及的不仅是历史数据的简单综合比较,而是多变的主题及多维数据的访问,维内及维之间存在大量复杂的综合路径及关联。但这并不意味着否定关系数据库。Codd认为,关系数据库从一开始就未打算提供强大的数据合成及多维分析能力,这些功能是由前端工具来完成的,它们与关系数据库相辅相成,因此关系数据库仍然是当今最适合企业数据管理的技术。Codd所指的这些前端工具即为OLAP类产品。根据OLAP Council的定义,OLAP是使分析人员、管理人员或执行人员能够从 多个角度对原始数据中转化出来的、能够真正为用户所理解并真实反映企业特性的信 息进行快速

14、、一致和交互性的存取,从而获得对数据本质内容的更深入了解的一类软件技术11。1.5.2 OLAP的多维分析特性OLAP具有两个重要的特点:一是在线性,体现为对用户请求的快速响应和交互式操作;二是多维分析,也就是说,OLAP展现在用户面前的是一个多维视图,使用者可以对其进行各种多维分析操作。下面我们具体介绍OLAP的多维分析特性。在实际的决策制定过程中,决策者需要的不是某一指标单一的值,而是希望从多个角度或者从不同的考察范围来观察某一指标或多个指标,通过分析对比,从而找出这些指标间隐藏的内在关系,并预测这些指标的发展趋势,即决策所需的数据总是和一些分析角度和分析指标有关。OLAP的主要工作就是将

15、数据仓库中的数据转换到多维数据结构中,并且对上述多维数据结构执行有效且非常复杂的多维查询。² OLAP的基本概念6,8(1) 维维是人们观察数据的特定角度,它是一种高层次的类型划分。例如,企业常常关心产品销售数据随时间推移而产生的变化情况,这时他是从时间的角度来观察产品的销售,所以时间就是一个维(时间维)。(2) 维的层次人们观察数据的某个特定角度(维)还可以存在细节程度不同的多个描述方面,我们称这多个描述方面为维的层次。例如描述时间维时,可以从日、月、季度、年等不同的层次来描述,那么日、月、季度、年就是时间维的层次。同一维的维层次结构可简可繁,这主要是因为不同分析应用对数据组织的详

16、略程度的要求不同。在某些维中可能存在着完全不同的几条层次路径,例如时间维通常存在日历层次路径和财政层次路径,如图2.3所示。图2.3 时间维的层次路径图(3) 维成员维成员是维的一个取值。如果一个维是多层次的,那么该维的维成员是在不同维层次取值的组合。例如,我们考虑时间维具有日、月、年三个层次,那么“2002年12月10日”就构成了时间维的一个维成员。一个维成员并不一定在每个维层次上都要取值,例如,“2002年12月”、“2002年”都是时间维的维成员。(4) 度量度量是我们需要分析的目标数据,有时也被称为变量。例如,用来反映一个企业经营效益好坏的销售量、销售额和库存量等。(5) 多维数据集多

17、维数据集是OLAP的核心,有时也称为立方体或超立方。多维数据集是由一组维和度量组成的,可以用一个多维数组来表示:(维1,维2,维n,度量)。例如,按时间、地区、专利类型组织起来的专利申请量多维数据集可以表示为:(时间,地区,专利类型,专利申请量)。对于三维数据集我们可采用图2.4的可视化方式表达得更清楚。如果我们在上述三维数据集的基础上再添加申请人类型维,就得到一个四维结构,当然这种维数超过三维的多维数据结构很难用可视化的方式表达清楚。图2.4 以时间、地区和专利类型三个维构成的多维数据集(6) 数据单元多维数据集的取值为数据单元。当在多维数据集中的每个维上都选中一个维成员以后,这些维成员的组

18、合就唯一确定了度量的值。数据单元也就可以表示为:(维1成员,维2成员,维n成员,度量值)。例如,在图2.4中时间、地区和专利类型维上分别选取维成员“1999年”,“北京”,“发明”,则可以唯一确定观察度量“专利申请量”的一个取值2062,这样该数据单元可表示为(1999年,北京,发明,2062)。² OLAP的多维分析操作多维分析操作是指对以多维形式组织起来的数据采取切片、切块、旋转等各种分析操作,以求剖析数据、使最终用户能从多个角度、多个侧面去观察数据库中的数据、从而深入地了解包含在数据中的信息、内涵。多维分析的基本操作有5,6,8:(1) 切片(Slice)切片操作是在给定的多维

19、数据集的某一个维上选定一维成员,从而得到一个多维数据子集的动作。如果有(维1,维2,维i,维n,度量)多维数据集,对维i选定了某个维成员,那么(维1,维2,维i成员,维n,度量)就是多维数据集(维1,维2,维i,维n,度量)在维i上的一个切片。对于图2.4所示的三维数据集,我们选定专利类型维上的一个维成员(设为“发明”),就得到了在专利类型维上的一个切片,如图2.5所示。图2.5 切片很明显,一次切片使原来的维数减一,所以得到的切片并不一定是二维的“平面”,其维数取决于原来的多维数据集的维数。(2) 切块(Dice)在多维数据集的某一维上选定某一区间的维成员的操作称为切块,即限制多维数据集的某

20、一维的取值区间。(3) 旋转(Rotate)旋转是一种目视操作,它转动多维数据集的视角,提供数据的替代表示。旋转操作可以将多维数据集的不同维进行交换显示,从而使用户更加直观地观察数据集中不同维之间的关系。图2.6的例子是把一个横向为地区,纵向为时间和专利类型的报表旋转成为横向为时间和地区,纵向为专利类型的报表。图2.6 旋转(4) 钻取(Drill)钻取分为向下钻取(drill-down)和向上钻取(drill-up)。下钻操作是由不太详细的高层次汇总数据分解为更详细的低层次数据。上钻是下钻的逆操作,它是通过一个维的概念分层向上攀升,或者通过维归约,在多维数据集上进行聚集。在图2.7中,(a)

21、的例子是对时间维中的维成员“2000年”下钻以获取2000年各月的申请量数据。(b)的例子是对按月汇总数据的报表上钻以获取按年汇总数据的报表。图2.7 钻取(5) 其它OLAP操作12在OLAP分析操作中,还有“钻过”(drill-across)和“钻透”(drill-through)等。“钻过”涉及多个事实表的查询;“钻透”操作使用关系SQL机制,钻到多维数据集的底层,到后端关系表。其它的OLAP操作还包括计算统计表中的最高或最低N项、平均值、移动平均值、增长率、各类百分比等。1.5.3 OLAP产品的衡量标准1993年,E.F.Codd在Providing OLAP(On-Line Ana

22、lytic Processing) to User Analysts一书中提出了有关OLAP产品评价的十二条规则(Rule),其目的是加深对OLAP的理解。其后,又在1995年提出了六条补充规则,并将规则的提法更改为特性(Feature)。Codd把这十八条特性又分为四组:基本特性、特殊特性、报表特性、维控制特性5,6,13。(1) 基本特性特性1 多维概念视图从用户分析员的角度来看,整个企业的视图在本质上是多维的,因此OLAP的概念模型也应是多维的。企业决策分析的目的不同,决定了分析和衡量企业的数据总是从不同的角度来进行的,所以企业数据空间本身就是多维的。特性2 直观的数据操纵这一特性要求数

23、据操纵直观易懂。综合路径重定位、向上综合、向下挖掘和其它操作都可以通过直观、方便的点拉操作完成。特性3 可访问性可访问性是指OLAP中的数据能够以合适的方式存储,便于用户的访问和查询。特性4 批量提取与可解释性这条特性要求OLAP产品为数据提供分级数据库和对外部数据的灵活访问,即大型数据库的多维数据分级和部分预计算,并提供对细节数据的透明访问。特性5 OLAP分析模型Codd描述了四种模型:绝对模型、解释模型、思考模型、公式模型。我们可以简单地描述为参数化的静态报表,切片、切块和钻取,“What if”分析和目标搜索模型。特性6 客户/服务器体系结构OLAP是建立在客户/服务器体系结构上的。这

24、要求它的多维数据库服务器能够被不同的应用和工具访问到。特性7 透明性透明性包含两层含义:首先,OLAP在体系结构中的位置对用户透明;其次,OLAP的数据源对用户也是透明的。特性8 多用户支持多个用户分析员可以同时工作于同一分析模型上或是可以在同一企业数据上建立不同的分析模型。(2) 特殊特性特性9 非规范化数据的处理指OLAP引擎与非规范化数据的集成。Codd认为在OLAP环境中的数据修改不应该改变存储在提供源数据的信息系统中的非规范化数据。特性10 保持OLAP结果与源数据在存储上的分离允许读写的OLAP应用不应该直接作用于实时业务数据之上,OLAP操作的数据变化应该和业务数据分开。特性11

25、 对缺失值(Missing Value)的提取所有的缺失值都将映射在由关系模式(Relational Model Version 2)定义的统一表示形式上,缺失值将与空值区分开来。特性12 对缺失值的处理在处理缺失值时,OLAP引擎将忽略所有的缺失值和它们的来源。(3) 报表特性特性13 灵活的报表生成报表必须能从各种可能的方面显示出数据模型中综合出的数据和信息,用户可以按照任何想要的方式来操作、分析、综合和查看数据,充分反映数据的多维特性。特性14 稳定的报表性能当数据维数和数据的综合层次增加时,提供给最终分析员的报表能力和响应速度不应该有明显的降低和减慢。特性15 物理层的自动调节OLAP

26、工具应能自动调节物理模型以适应不同的分析模型,提供“最优”的稀疏矩阵处理。(4) 维控制特性特性16 维的等同性每一数据维在数据结构和操作能力上都是等同的。系统可以将附加的操作能力授给所选维,但必须保证该操作能力同样可以授给任意的其它维。特性17 不受限维与聚集层次OLAP工具的维数应不小于15个。用户分析员可以在任意给定的综合路径上建立任意多个聚集层次。特性18 非受限的跨维操作多维数据之间存在固有的层次关系,这就要求OLAP工具能自己推导出而不是最终用户明确定义出相关的计算。对于无法从固有关系中得出的计算,要求系统提供计算完备的语言来定义各类计算公式。Codd提出的这些特性在业界引起了比较

27、大的争议,因为这些特性是基于对客户的研究提出的,并且当时Codd是Arbor软件公司的顾问,不少软件供应商觉得Codd的特性偏向Arbor公司的OLAP产品Essbase。尽管人们对这些特性褒贬不一,但其主要方面,如多维数据分析、客户/服务器体系结构、多用户支持及报表特性等方面还是得到了大多数人的认可。近年来,随着人们对OLAP理解的不断深入,有些学者提出了更为简要的定义,如FASMI(Fast Analysis of Shared Multidimensional Information)。(1) 快速性(Fast):系统应该以尽量快的速度响应用户的分析请求。(2) 可分析性(Analysi

28、s):OLAP系统应能处理与应用有关的任何逻辑分析和统计分析。尽管系统需要一些事先的编程,但并不意味着系统事先已对所有的应用都定义好了。(3) 共享性(Shared):在多个用户存取数据时,系统应该保证安全性。(4) 多维性(Multidimensional):多维性是OLAP的关键属性。系统必须提供数据的多维概念视图,包括对层次维和多重层次维的完全支持。(5) 信息性(Information):不论数据量有多大,也不管数据存储在何处,OLAP系统应能及时获得信息,并且管理大容量的信息。1.5.4 MOLAP、ROLAP和HOLAP要达到OLAP的在线性,主要是通过改变存储数据的组织模式而实现

29、的。目前,OLAP产品根据其数据组织的不同大体上可以分为两种:基于多维数据库(MDDB)的OLAP(MOLAP)和基于关系数据库的OLAP(ROLAP)6,8。MOLAP以MDDB为核心,以多维方式来存储数据。MDDB由许多经压缩的、类似于数组的对象构成,每个对象又是由聚集成组的单元块组成,单元块通过直接偏移计算进行存取,表现为超立方结构。MOLAP结构如图2.8所示。图2.8 MOLAP结构图MOLAP将DB服务器层与应用逻辑层合二为一,DB或DW层负责数据存储及检索;应用逻辑层负责所有的OLAP需求的执行。来自不同事务处理系统的数据通过一系列批处理过程载入MDDB中,数据在填入MDDB的数

30、组结构之后,MDDB将自动建立索引并进行预综合来提高查询性能。如果在OLAP的实现中采用关系数据库管理系统来管理所需要的数据,这种OLAP就是基于关系数据库的OLAP,即ROLAP。为了更好地在关系数据库中表示和存储多维数据,ROLAP将多维数据结构划分为两类表:一类是事实表,用来存储事实的度量和各维的码值;另一类是维表,即对每个维至少使用一个表来存放维的描述信息,包括维的层次及成员类别等。事实表通过每一个维的码值和维表联系在一起,形成“星型图模型”。如果维表记录数非常多,但在高层次上对应的分组数比较少,可以考虑将高层次对应的描述信息使用单独的表来存放,这时候“星型图模型”演变为“雪花图模型”

31、。ROLAP结构如图2.9所示。图2.9 ROLAP结构图数据仓库的数据模型在定义完毕后,来自不同数据源的数据将被装入到数据仓库中,接着系统将根据数据模型的需要对数据进行综合,并创建索引以优化存取效率。最终用户的多维分析请求将通过ROLAP引擎动态翻译为SQL请求,然后由关系数据库来处理SQL请求,最后的查询结果经多维处理后返回给用户。MOLAP和ROLAP是目前使用最多的两种OLAP技术,由于它们完全不同的数据表示和存储方案,从而导致了两者在不同方面各有优缺点。下面我们从三个方面来对它们进行比较:(1) 查询性能MOLAP的查询响应一般较快,这主要是因为多维数据库在装载数据时,预先做了大量的

32、计算。而在ROLAP中进行查询分析,通常要在事实表和维表之间建立复杂的表连接,响应时间往往难以预计。虽然ROLAP可以通过构造索引和聚集表来提高响应的速度,但查询性能仍然难以预测。(2) 分析能力由于MOLAP能够清晰地表达OLAP中的多维数据概念,具有分析的优势。但多维数据库作为一种新兴技术,还缺乏统一的标准,每个多维数据库都有自己的专用客户端接口。ROLAP由于受到SQL语言的约束,分析效果往往不如MOLAP。用户的分析请求首先由ROLAP服务器转化为SQL语句,再交由RDBMS处理,RDBMS返回的结果通常还需要附加的应用程序进行多维处理后才返回给用户。(3) 数据存储和管理MOLAP以

33、多维数据库为核心,数据管理主要以维及维成员为主,大多数多维数据库产品提供了单元级控制,数据封锁可以达到单元级。这些管理控制均由多维数据库中的数据管理层来实现,一般不易绕过。ROLAP以传统的关系数据库系统为基础,安全性及存取控制基于表,封锁基于表、页面或行。由于这些同应用中的多维概念不直接相关,ROLAP工具必须提供额外的安全及存取控制管理,并且用户可能绕过ROLAP的安全机制直接访问数据库中的数据。MOLAP由于数据预处理程度高,随着维数的增加会使多维数据库的规模急剧增长,不能很好地适应维数的动态变化。而ROLAP由于充分利用了现有关系数据库的成熟技术,预综合程度也具有很大的灵活性,处理大数

34、据量和多维数的能力明显强于MOLAP。同样,由于MOLAP预综合程度高,当数据或计算变化频繁时,有时还需要重新构建多维数据库,因此MOLAP所需要的数据加载时间也比较长。相比之下,ROLAP的数据预处理程度比较低,数据加载时间也较短,能保持较快的数据刷新周期。从上面的分析中我们可以看出MOLAP和ROLAP各有优缺点,但它们提供给用户的分析功能基本上是一致的。在设计OLAP时,是采用MOLAP还是采用ROLAP需要根据具体情况而定,但应用的规模是一个主要的因素。如果需要建立一个大型的、功能复杂的企业级OLAP应用,最好选择ROLAP。如果需要建立一个目标单一、维数较少的数据集市,MOLAP可能

35、就是一个较佳的选择。由于MOLAP和ROLAP在实际应用中各有千秋,人们自然希望能把两者的优点结合起来。近年来出现的HOLAP(Hybrid OLAP)就是对ROLAP和MOLAP优点的综合,既有处理大规模数据的能力,又可以提供很快的响应速度。HOLAP实现的基本策略就是将聚集数据存放在多维数据库中,提高访问的速度,而将最底层的细节数据以关系数据库的形式存放,解决多维数据库存储效率不高的缺点。1.6 数据仓库技术的未来发展展望数据仓库作为一个新兴的研究领域,得到了人们深入而广泛的研究。考虑到数据仓库具有广阔的市场前景,许多大的企业也加入到数据仓库技术的研究和推广之中,数据仓库的应用领域正得到不

36、断拓展,从而进一步推动了数据仓库技术的发展8,14。(1) 基于Web的数据仓库15随着网络技术的发展,几乎所有的信息技术领域都普遍受到Web的影响,数据仓库技术的发展也不例外。Web技术的应用将大大提高了数据仓库的可视性,并将其范围拓宽到公司之外的客户和商业伙伴。由于Internet的使用增加了对数据仓库的访问次数,从而对信息访问工具市场产生了很大的影响。新型访问工具(如基于服务器的信息访问工具和基于引擎的信息访问工具)具有更强大的市场竞争力。Ø 基于服务器的信息访问工具基于服务器的信息访问工具能够使Web浏览器用户交互查询一个数据库,并将其查询结果作为HTML页显示出来。该访问工

37、具基于四层结构:Web浏览器、Web服务器、应用服务器和数据库。终端用户的分析请求由Web浏览器以HTML格式提交给Web服务器;Web服务器将这些请求分类传输给应用服务器;应用服务器将用户请求翻译为对数据库的访问请求;数据库的查询结果将由应用服务器打包并转换为HTML页返回到Web服务器;最后Web服务器将其结果传给终端用户。基于服务器的访问工具可以使终端用户通过普通的Web浏览器访问数据仓库,便于系统的维护和升级,但在系统的灵活性和功能上存在一定的局限性。Ø 基于引擎的信息访问工具使用基于引擎的信息访问方法,供应商必须用Java或ActiveX引擎建立全部或部分客户端信息访问工具

38、。这些引擎可以在Web站点上进行访问并能够下载到客户端,并通过兼容Java或ActiveX的浏览器执行它们。与基于服务器的信息访问工具不同,基于引擎的信息访问工具本身被分为在客户端和服务器端运行的一个或多个Java或ActiveX引擎。使用Java或ActiveX引擎可以使客户端界面交互性更强,具有比基于服务器的访问工具更好的灵活性。(2) 基于关系对象数据库的数据仓库关系对象数据库的出现使数据仓库设计人员有能力将对象引入数据仓库环境,也将使数据仓库的平台性能得到很大的改善。数据仓库开发人员能够很容易地将多媒体数据和其它各种复杂的数据类型引入数据仓库,满足用户的更多需求。对象技术引入数据仓库以

39、后,一方面产生对数据仓库的更多数据、更多用户和更多可扩展性的要求,同时对象技术也可用来提高数据仓库的性能以缓解扩展性要求的压力。关系对象数据库作为数据仓库平台,不仅为复杂的数据类型提供可扩展功能,而且还为数据仓库平台提供对数据处理的功能扩展。当用户的需求增长时,用户可用客户端的特定功能扩展数据仓库平台的性能。数据仓库平台的可扩展性对数据仓库的应用是十分关键的,因为数据仓库的应用存在不断扩展的趋势,而具有可扩展性的关系对象数据库可以满足用户在这些方面的要求。(3) 操作型数据仓库数据仓库的一个重要特性就是数据的不可更新性,它通常只在数据加载阶段更新数据,但对前端应用而言数据是不可更新的。但随着数

40、据仓库应用领域的不断扩展,特别是在一些数据仓库的全局应用中,用户不但要对数据仓库进行分析处理,还可能由于某些现实的变化,需要对数据仓库进行一定的操作型处理。“操作型数据仓库”能以一种可以接受的标准对数据仓库进行操作,这些标准包括可预测性、可利用性和可访问性。随着外部数据源的增加,管理决策分析对及时数据需求的紧迫性,对数据的修改要求也越来越强烈。但是,这种需求至少在目前还很难实现。(4) 不同的数据仓库技术和产品层出不穷目前,许多厂商都积极投入到数据仓库解决方案的竞争之中,逐渐形成了诸侯纷争的局面。著名的厂商如IBM、Oracle、NCR、Sybase等都提出了具有各自特色的数据仓库解决方案。但

41、是到目前为止,还没有形成某一家厂商的产品垄断市场的局面。Oracle公司通过直接采用业界领先的数据库平台Oracle 8i/9i来构建企业数据仓库,并通过Express多维数据库服务器构建面向最终分析用户的高性能数据集市。Oracle Warehouse Builder则是目前市场上为数不多的数据抽取、转换和加载工具。Oracle公司还推出了一系列的前端分析工具Express Analyzer、Express Excel Add-in、Express Web Publisher、Oracle Sales Analyzer、Discoverer等。CA则在数据仓库的建模(ERwin),数据抽取、

42、映射和转换工具(DecisionBase Transformer),元数据管理(Repository)和前端展示工具(DecisionBase OLAP Server、Eureka:Reporter)等方面下了不少工夫,并通过采用开放的数据存储策略,即用户可以任意选择关系数据库作为数据仓库的数据载体来弥补自己在数据库技术上的不足。Sybase数据仓库方案中最具有特色的是其专为数据仓库/数据集市设计的关系数据库Sybase IQ。Sybase IQ通过采用特殊存储方式-垂直存储、申请了专利的Bit-Wise索引等技术来获得很快的数据加载和查询速度,特别适合于交互式数据仓库环境。IBM本身就有一套

43、比较完整的数据仓库解决DB2、Visual Warehouse、Essbase等产品,并通过收购Informix公司,使其数据仓库家族中加入了新的成员Informix Extended Parallel Server、Red Brick、MetaCube等。NCR的Teradata是高端数据仓库市场最有力的竞争者,主要运行在基于NCR WorldMark SMP硬件的Unix操作系统平台上,提供交互分析、标准报告和多维分析。当然还有许多其它的厂商(如SAS,Microsoft,Cognos等)提供数据仓库产品,但限于篇幅不一一介绍。诸多厂商的竞争不但促进了数据仓库技术、OLAP技术和数据挖掘技

44、术的发展,也给用户带来了实实在在的好处。由于每个企业都有自己的特点,并且数据仓库的建设本身也是一个复杂的过程。因此,在建立数据仓库时,必须紧密结合本行业的特点和本企业的业务发展需要,综合考虑各提供商的技术特点和成功案例,认真比较后再作出恰当的选择。1.7 小结本章详细地介绍了数据仓库技术和基于数据仓库的OLAP技术,内容涉及数据仓库的概念和特点、数据集市、数据仓库在决策支持系统中的应用、OLAP的多维分析特性和OLAP产品的衡量标准等方面。由于数据仓库并不是一个现成的产品,而是一种解决问题的方案,所以论文的下一章将就数据仓库系统的设计方法进行探讨。第二章 数据仓库系统的设计2.1 OLTP与O

45、LAP分离的数据库体系化环境由于OLTP和OLAP面向的应用完全不同,如果它们共存于一个数据库系统中时,必然会产生明显的冲突。这时候,把这两种类型的应用分离出来就成为了必然,企业原有的操作型环境发展成为一种新的数据库体系化环境。这种新的数据库体系化环境由面向应用的OLTP数据库和面向主题的数据仓库组成,我们可以在这个数据环境上建立和进行一个企业或部门的联机事务处理到企业管理决策的所有应用6。对一个企业建立一个大而全的数据仓库,并不一定能取得满意的效果。虽然数据仓库的数据组织是面向主题的,并为分析的需要保存了许多综合数据,但分析的需求是千变万化的,我们不可能要求一个单一层次的数据仓库能完全符合各

46、种各样的分析需要。另外,随着数据仓库不断装载新的数据,规模将越来越庞大,分析工作若完全基于单一层次的数据仓库,性能将十分低下。因而需要建立分层的数据仓库,如图3.1所示。图3.1 OLTP与OLAP分离的数据库体系化环境示意图在这个体系化环境中,操作型环境存放的是一些细节的操作型数据,服务于高性能的事务处理。全局级数据仓库中除了存放细节数据外,还包含大量导出数据。部门级数据仓库中一般仅包含导出数据,而个人级数据仓库中数据都是暂时的,用于启发式分析。2.2 多重粒度的数据仓库数据组织结构数据仓库中的数据来源于不同的数据源,随着时间的推移规模将变得越来越庞大。并且用户对不同时间段的数据访问的频率也

47、是完全不一样的,为此数据仓库的数据组织结构形式不同于传统的数据库:从各数据源中获得的基础数据和综合数据被分成为一些不同的粒度级别进行存放,如图3.2所示。粒度是衡量数据仓库中的数据综合程度高低的一个度量:粒度越大,表示数据的细节程度越低,综合程度越高;粒度越小,表示数据的细节程度越高,综合程度越低。图3.2 数据仓库的数据组织结构当前细节级数据是最近时期的业务数据,是数据仓库中用户最感兴趣的部分,数据量也最大。随着时间的推移,当前细节级数据将老化为早期细节级,一般被存放在访问性能较差的介质中,如磁带等。为了提高数据仓库的访问效率,需要对当前细节级的数据进行综合从而形成更高粒度的轻度综合级乃至高

48、度综合级。在数据仓库中,用户的绝大部分分析操作都可以基于轻度综合级或高度综合级数据来进行,只有少量的分析需要访问当前细节级数据。这样一来,对于绝大部分分析操作,性能将大大提高。2.3 数据仓库的体系结构数据仓库体系结构的设计是数据仓库系统设计过程中一个至关重要的环节,设计人员需要根据设计目标和具体实际情况来设计本企业的数据仓库。数据仓库是对企业所掌握的各种数据进行再构造的策略,在体系结构上有多种实施方案,我们可以根据需要对它们进行综合应用6,8,16。2.3.1 自顶向下及自底向上的数据仓库体系结构从图3.1中的数据抽取关系来看,应该先建立全局的数据仓库,然后再在这一全局数据仓库的基础上建立面

49、向部门应用的数据集市,这就形成了所谓的自顶向下的数据仓库体系结构,如图3.3所示。在这种体系结构中,数据仓库通常采用关系数据库,使用规范化的E-R模型进行设计,而数据集市则可以采用多维数据库或关系数据库。当数据存放在关系数据库中时,逆规范化的星型图模型是数据集市设计的标准方法。只要严格遵循数据集市是数据仓库的子集这一规则来建立数据集市,那么数据仓库和数据集市的集成则很容易自动实现。图3.3 自顶向下数据仓库体系结构这种自顶向下数据仓库体系结构的优点主要体现在以下几个方面:(1) 避免了多个数据集市对数据源的重复数据抽取。由于数据仓库中包含的是已经经过净化和综合后的数据,数据集市的数据抽取过程更

50、加简单。(2) 各数据集市的数据统一由全局数据仓库提供,确保了数据的一致性和规范性。(3) 数据仓库提供了比逆规范化结构更灵活的存储结构。(4) 数据集市是专为支持最终用户查询而设计的高性能查询结构。由于自顶向下地建设数据仓库存在实施周期长,费用高的缺点,这些往往是许多企业不愿意或不能承担的。基于上述原因,自底向上的体系结构就自然而然地形成了并逐步发展,如图3.4所示。自底向上的数据仓库体系结构是在独立发展的数据集市基础上建立数据仓库,其核心思想就是先从企业最关心的业务开始,先以最少的投资,满足当前的需求,然后不断扩充,不断完善。需要注意的是,在建立数据集市时,应有全局的观点,使得数据集市便于

51、今后集成为全局的数据仓库。图3.4 自底向上数据仓库体系结构2.3.2 单纯数据仓库体系结构单纯数据仓库体系结构比较简单,从数据源提取的数据经过转换后加载进集中的数据仓库,各种数据仓库应用直接在数据仓库中进行,如图3.5所示。这种结构经常发生在多部门、少用户使用数据仓库的情况下。在单纯数据仓库体系结构中,数据仓库一般采用关系数据库,使用星型图模型进行设计。为了达到更好的分析效果,数据仓库需要采用多重粒度的数据组织结构。图3.5 单纯数据仓库体系结构2.3.3 单纯数据集市体系结构在单纯数据集市体系结构中,并不实现企业范围内的全局数据仓库,如图3.6所示。这种体系结构通常发生在某些部门对数据仓库

52、感兴趣,而其它部门却对数据仓库应用十分冷漠之时,由热心的部门单独开发时所采用。这种体系结构往往在一些企业数据仓库项目建设的初期出现,随着一些部门数据集市的成功应用,越来越多的部门加入到建设数据集市的行列之中。最后,企业通常会转而建立一个全局的数据仓库,而这些数据集市正好可以成为全局数据仓库很好的数据源。图3.6 单纯数据集市体系结构2.3.4 虚拟数据仓库体系结构在虚拟数据仓库中,根本不存放经过集成的数据,而只是包含存取数据和集成数据的规则和手段,它为数据仓库的用户提供虚拟的数据仓库视图,真正的数据集成发生在用户发出查询请求时。很明显,这种情况下事务处理系统必须足够的健壮,并且直接在上面所进行

53、的分析处理不会对现有的事务处理产生大的影响。虚拟数据仓库又称为中介系统(Mediate System),关键部件是中介(Mediator),其体系结构如图3.7所示17。图3.7 虚拟数据仓库体系结构包裹器依赖于具体的数据源,负责存取特定的数据源,使各种异构的数据源对于数据仓库的中介层来说具有相同的特性。中介可以使用任意多个包裹器,具有数据集成的作用,多个中介可以组成层次结构,即虚拟数据仓库的数据集成经过多个级别完成,但前端应用程序只能使用中介层中具有最高级别的中介。元数据为中介提供集成时所需的模式信息。实际上,虚拟数据仓库的设计思想已使用多年。它的特点是冗余少,适合数据源变化快,数据源与数据

54、仓库之间通道顺畅,用户数量少,对时间要求不高的场合。这种方案在一些投资有限的情况下不失为一种好的解决方案,同时它可以成为将来建立独立数据仓库的实验品。2.4 数据仓库系统的CLDS设计方法数据仓库是一个面向数据分析型处理的数据环境,不管是数据的组织结构还是数据的处理特点都与传统的事务处理数据库存在较大的区别,这就决定了传统的数据库系统开发方法并不适合数据仓库系统的开发,我们需要一个更加适合数据仓库系统的设计方法。在操作型环境中,业务过程和规则比较规范和固定。系统设计人员可以清晰地了解应用的需求和数据处理流程。系统的设计一般采用系统生命周期法(System Development Life Cy

55、cle,SDLC)。而在分析型环境中,DSS分析员一般是企业的中高层管理人员,他们对决策分析的需求不能预先做出规范的说明,只能给设计人员一个抽象、模糊的描述。这就要求设计人员在与用户的不断交流中,将系统需求逐步明确与完善。人们为了描述这样一种需求不确定的开发过程,将数据仓库的设计方法描述成CLDS方法(与SDLC相反)6。图3.8给出了SDLC与CLDS开发方法的不同。图3.8 SDLC与CLDS方法的比较数据库系统设计的SDLC方法有独立的收集需求和分析需求的阶段,这是因为联机事务处理的需求比较固定,在一个系统生命周期内,系统的需求在设计的前期阶段即收集需求和分析需求阶段结束后就应该确定下来

56、,一旦进入构建数据库阶段,系统的需求就基本不变了。而CLDS方法则要求在整个系统的设计过程中始终贯穿着对系统需求(数据的分析处理需求)的收集、分析和理解。创建数据仓库的工作是在原有的数据库基础之上进行的,即从已经存在于操作型环境中的数据出发来进行数据仓库的建设,把主题作为设计的基本单位,通过不断迭代来丰富和完善整个数据仓库,我们把这种数据仓库设计方法称为数据和主题双重驱动的系统设计方法。下面我们具体看看这种数据和主题双重驱动的设计方法的开发特点:(1) 数据仓库系统的设计不再面向应用,从应用出发,因为这些工作已经在数据库系统的设计时完成了。数据仓库的设计是从这些已有的数据库系统出发,充分利用现

57、有的数据资源,按照分析领域对数据及数据之间的联系重新考察,组织数据仓库中的主题。(2) 用户的分析处理需求无法早期冻结,因而系统对数据的需求也无法早期冻结。所以在数据仓库的开发过程中更应该强调决策者的作用,通过与决策者商议决策的主题,然后从数据库中找到数据与主题的共同性。数据仓库是面向主题来组织数据的,所以应该以主题为单位进行系统的开发,最初可以选取一个或几个典型的主题进行开发,以后通过不断迭代来丰富和完善数据仓库。数据仓库系统的设计是一个动态的反馈和循环的过程。一方面数据仓库的数据内容、结构、粒度以及其它物理设计需要根据用户返回的信息不断地调整和完善,以提高系统的效率和性能;另一方面,通过不

58、断地理解用户的分析处理需求,向用户提供更确切、更有用的决策信息。2.5 数据仓库的多维数据模型数据仓库采用何种数据模型与用户的分析请求是密不可分的。由于我们所要设计的数据仓库面向分析处理,尤其是多维分析,因此我们采用了与传统数据库所使用的数据模型完全不一样的多维数据模型来设计数据仓库。多维数据模型是数据仓库中用于分析的分析模型,可以建立自然的多维逻辑视图,从而便于处理数据的多维分析请求。数据仓库的多维数据建模同传统的数据库设计一样经历了概念模型设计、逻辑模型设计和物理模型设计三个阶段,只不过这三级模型分别对应数据仓库中的信息包图设计,星型图模型设计和物理数据模型设计12,18,19,20,21,如图3.9

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论