关于数据仓库与联机分析处理的概述一、数据仓库及数据库的概念及其特点1、数据仓库的概念及其特点“什么是数据仓库?”这恐怕是每一个刚刚开始接触数据仓库的技术人员都会提出的一个问题。
有人认为数据仓库就是一个大的数据库,也有人认为数据仓库是一项数据管理和分析的技术。
这些定义都从一定的侧面反映了数据仓库的概念,但并不全面。
目前,业界公认的数据仓库定义是由数据仓库之父W.H.Inmon在《Building the Data Warehouse》一书中给出:“数据仓库是面向主题的、集成的、随时间变化的、稳定的数据集合,用以支持管理中的决策制定过程。
”正如Inmon所描述的,数据仓库具有如下特点:(1)数据仓库的数据是面向主题的与传统数据库面向应用进行数据组织的特点相对应,数据仓库中的数据是面向主题进行组织的。
所谓主题,是指在较高层次上将企业信息系统中的数据综合、归类并进行分析利用的抽象。
在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象。
(2)数据仓库的数据是集成的建立数据仓库的主要目的就是为用户提供易于访问的商业信息。
为了减少用户查询的响应时间,应该把数据从数据源中提取出来,放到数据仓库中去。
在数据进入数据仓库之前,必须经过加工和集成,使原始数据结构做一个从面向应用到面向主题的大转变。
(3)数据仓库的数据是不可更新的数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一般情况下并不进行修改操作。
数据仓库的数据不可更新使得数据仓库管理系统DWMS相比数据库管理系统DBMS而言要简单得多,同时也使我们可以对数据仓库进行最大限度的性能优化。
(4)数据仓库的数据是随时间不断变化的数据仓库中的数据不可更新是针对应用来说的,也就是说,数据仓库的用户进行分析处理时是不进行更新操作的。
但并不是说,在从数据集成输入数据仓库开始到最终被删除的整个数据生存周期中,所有的数据仓库数据都是永远不变的。
数据仓库会随时间的变化不断增加新的数据内容和删去过时的数据内容。
当然,数据仓库通常还具有一些其它的特点,如数据仓库中的数据量很大、数据仓库对系统软硬件的要求较高等等。
2、数据仓库与数据库的关系及比较传统的数据库作为数据管理的手段,主要面向一个或一组记录的查询和修改,为企业的特定应用服务,人们关心的是响应时间、数据的安全性和完整性。
为此要求数据库提供完善的数据锁、事务日志和并发控制等机制,以便安全可靠地处理具体业务。
数据仓库是在数据库基础之上发展起来的,数据仓库的作用就是为复杂的数据分析和高层决策提供支持。
尽管现有的数据仓库大多还是采用传统的关系数据库或改进后的关系数据库来实现,但由于两者面向的应用截然不同,因此不管是在数据模型的设计上还是在数据的物理组织上都存在着相当大的差异,如表1所示。
表1 数据仓库与数据库的对比表二、基于数据仓库的决策支持系统自从Inmon 首次提出数据仓库概念以后,数据仓库及其相关技术日益成熟,客观上带动了高性能和并行技术以及数据库中的知识发现等多领域的巨大进步。
数据库技术的发展和激烈的市场竞争为解决DSS 问题提供了可能,人们开始提出了以数据仓库为基础、OLAP 和数据挖掘工具为手段的一整套可操作、可实施的解决方案。
以数据仓库为核心的决策支持系统的结构如图1所示。
图1 基于数据仓库的决策支持系统的结构数据库、数据仓库和共用数据接口是系统的数据管理部分,构成了整个系统的核心和基础,为上层应用提供数据。
方法库、模型库、知识库、数据挖掘工具、多维分析工具(OLAP 工具)和统计查询工具共同构成了前端分析工具层,相互配合协调,完成用户的决策处理任务。
管理工具主要完成系统的模型维护、数据仓库元数据管理、数据提取任务的管理等任务。
在这种新的DSS构架中,数据仓库、OLAP、数据挖掘和数据可视化技术具有内在的统一性,很好地解决了相互之间的衔接问题。
数据仓库为OLAP和数据挖掘提供充实可靠的数据,数据挖掘所发现的知识可以用于指导OLAP的多维分析,而OLAP分析得出的新知识也可以补充到系统的知识库中。
如下图:数据仓库与OLAP的关系。
这种新的DSS构架的重要意义在于重新揭示了信息的本质,表明了信息系统的设计观念从处理驱动到数据驱动的转变。
过去的信息系统以大量复杂的处理过程和算法为特征,数据在这些处理中产生。
而在未来的时代,信息的重点将转移到数据模式分析,信息处理技术将随数据分析处理的需求而不断进步。
三、联机分析处理(OLAP)概述联机分析处理,英文名称为On-Line Analysis Processing,简写为。
随着数据库技术的发展和应用,数据库存储的数据量从20世纪80年代的兆(M)字节及千兆(G)字节过渡到现在的兆兆(T)字节和千兆兆(P)字节,同时,用户的查询需求也越来越复杂,涉及的已不仅是查询或操纵一张关系表中的一条或几条记录,而且要对多张表中千万条记录的数据进行数据分析和信息综合,关系数据库系统已不能全部满足这一要求。
操作型应用和分析型应用,特别是在性能上难以两全,人们常常在关系数据库中放宽了对冗余的限制,引入了统计及综合数据,但这些统计综合数据的应用逻辑是分散而杂乱的、非系统化的,因此分析功能有限,不灵活,维护困难。
在国外,不少软件厂商采取了发展其前端产品来弥补关系数据库管理系统支持的不足,他们通过专门的数据综合引擎,辅之以更加直观的数据访问界面,力图统一分散的公共应用逻辑,在短时间内响应非数据处理专业人员的复杂查询要求。
1993年,E.F.Codd(关系数据库之父)将这类技术定义为“联机分析处理”。
联机分析处理是共享多维信息的、针对特定问题的联机数据访问和分析的快速软件技术。
它通过对信息的多种可能的观察形式进行快速、稳定一致和交互性的存取,允许管理决策人员对数据进行深入观察。
决策数据是多维数据,多维数据就是决策的主要内容。
OLAP专门设计用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持,可以根据分析人员的要求快速、灵活地进行大数据量的复杂查询处理,并且以一种直观而易懂的形式将查询结果提供给决策人员,以便他们准确掌握企业(公司)的经营状况,了解对象的需求,制定正确的方案。
联机分析处理具有灵活的分析功能、直观的数据操作和分析结果可视化表示等突出优点,从而使用户对基于大量复杂数据的分析变得轻松而高效,以利于迅速做出正确判断。
它可用于证实人们提出的复杂的假设,其结果是以图形或者表格的形式来表示的对信息的总结。
它并不将异常信息标记出来,是一种知识证实的方法。
它可以根据分析人员的要求,迅速灵活地对当量的数据进行复杂的查询处理,并以直观的容易理解的形式将查询结果提供给各种决策人员,使他们能够迅速准确地掌握企业的运营情况,了解市场的需求。
OLAP具有两个重要的特点:一是在线性,体现为对用户请求的快速响应和交互式操作;二是多维分析,也就是说,OLAP展现在用户面前的是一个多维视图,使用者可以对其进行各种多维分析操作。
下面我们具体介绍OLAP的多维分析特性。
在实际的决策制定过程中,决策者需要的不是某一指标单一的值,而是希望从多个角度或者从不同的考察范围来观察某一指标或多个指标,通过分析对比,从而找出这些指标间隐藏的内在关系,并预测这些指标的发展趋势,即决策所需的数据总是和一些分析角度和分析指标有关。
OLAP的主要工作就是将数据仓库中的数据转换到多维数据结构中,并且对上述多维数据结构执行有效且非常复杂的多维查询。
四、OLAP的多维分析以及特性1、基本概念(1)维维是人们观察数据的特定角度,它是一种高层次的类型划分。
例如,企业常常关心产品销售数据随时间推移而产生的变化情况,这时他是从时间的角度来观察产品的销售,所以时间就是一个维(时间维)。
(2)维的层次人们观察数据的某个特定角度(维)还可以存在细节程度不同的多个描述方面,我们称这多个描述方面为维的层次。
例如描述时间维时,可以从日、月、季度、年等不同的层次来描述,那么日、月、季度、年就是时间维的层次。
同一维的维层次结构可简可繁,这主要是因为不同分析应用对数据组织的详略程度的要求不同。
在某些维中可能存在着完全不同的几条层次路径,例如时间维通常存在日历层次路径和财政层次路径,如图2所示。
图2 时间维的层次路径图(3)维成员维成员是维的一个取值。
如果一个维是多层次的,那么该维的维成员是在不同维层次取值的组合。
例如,我们考虑时间维具有日、月、年三个层次,那么“2002年12月10日”就构成了时间维的一个维成员。
一个维成员并不一定在每个维层次上都要取值,例如,“2002年12月”、“2002年”都是时间维的维成员。
(4)度量度量是我们需要分析的目标数据,有时也被称为变量。
例如,用来反映一个企业经营效益好坏的销售量、销售额和库存量等。
(5)多维数据集多维数据集是OLAP 的核心,有时也称为立方体或超立方。
多维数据集是由一组维和度量组成的,可以用一个多维数组来表示:(维1,维2,……,维n ,度量)。
例如,按时间、地区、专利类型组织起来的专利申请量多维数据集可以表示为:(时间,地区,专利类型,专利申请量)。
对于三维数据集我们可采用图3的可视化方式表达得更清楚。
如果我们在上述三维数据集的基础上再添加申请人类型维,就得到一个四维结构,当然这种维数超过三维的多维数据结构很难用可视化的方式表达清楚。
时间维地区维北京上海广东河北图3 以时间、地区和专利类型三个维构成的多维数据集(6) 数据单元多维数据集的取值为数据单元。
当在多维数据集中的每个维上都选中一个维成员以后,这些维成员的组合就唯一确定了度量的值。
数据单元也就可以表示为:(维1成员,维2成员,……,维n 成员,度量值)。
例如,在图2中时间、地区和专利类型维上分别选取维成员“1999年”,“北京”,“发明”,则可以唯一确定观察度量“专利申请量”的一个取值2062,这样该数据单元可表示为(1999年,北京,发明,2062)。
2、OLAP 的多维分析操作多维分析操作是指对以多维形式组织起来的数据采取切片、切块、旋转等各种分析操作,以求剖析数据、使最终用户能从多个角度、多个侧面去观察数据库中的数据、从而深入地了解包含在数据中的信息、内涵。
多维分析的基本操作有:(1) 切片(Slice )切片操作是在给定的多维数据集的某一个维上选定一维成员,从而得到一个多维数据子集的动作。
如果有(维1,维2,……,维i ,……,维n ,度量)多维数据集,对维i 选定了某个维成员,那么(维1,维2,……,维i 成员,……,维n ,度量)就是多维数据集(维1,维2,……,维i ,……,维n ,度量)在维i 上的一个切片。
对于图2.4所示的三维数据集,我们选定专利类型维上的一个维成员(设为“发明”),就得到了在专利类型维上的一个切片,如图4所示。