武俊琢
[摘要]详细阐述不同的OLAP多维数据结构和多维数据分析的动作,针对OLAP的多维数据分析与数据仓库的多维数据组织形成相互结合、相互补充的关系进行较为深入的探讨。
[关键词]数据仓库联机分析处理多维数据分析
中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)1110077-01
一、引言
联机分析处理(Online Analytical Processing,OLAP)的概念最早是由关系数据库之父E.F.Codd于1993年提出的,OLAP是针对特定问题的联机数据访问和分析。通过对信息(维数据)的多种可能的观察形式进行快速、稳定一致和交互性的存取,允许管理决策人员对数据进行深入地观察。OLAP的目标是满足决策支持或多维环境特定的查询和报表需求,它的技术核心是“维”这个概念,因此OLAP也可以说是多维数据分析工具的集合。
二、OLAP的多维数据结构
数据在多维空间中的分布总是稀疏的、不均匀的。在事件发生的位置,数据聚合在一起,其密度很大。因此,OLAP系统的开发者要设法解决多维数据空间的数据稀疏和数据聚合问题。事实上,有许多方法可以构造多维数据。
(一)超立方结构。超立方结构指用三维或更多的维数来描述一个对象,每个维彼此垂直。数据的测量值发生在维的交叉点上,数据空间的各个部分都有相同的维属性。
这种结构可应用在多维数据库和面向关系数据库的OLAP系统中,其主要特点是简化终端用户的操作。超立方结构有一种变形,即收缩超立方结构。这种结构的数据密度更大,数据的维数更少,并可加入额外的分析维。
(二)多立方结构。在多立方结构中,将大的数据结构分成多个多维结构。这些多维结构是大数据维数的子集,面向某一特定应用对维进行分割,即将超立方结构变为子立方结构。它具有很强的灵活性,提高了数据的分析效率。
一般来说,多立方结构灵活性较大,但超立方结构更易于理解。超立方结构可以提供高水平的报告和多维视图。多立方结构具有良好的视图翻转性和灵活性。多立方结构是存储稀疏矩阵的一个更有效方法,并能减少计算量。因此,复杂的系统及预先建立的通用应用倾向于使用多立方结构,以使数据结构能更好地得到调整,满足常用的应用需求。
许多产品结合了上述两种结构,它们的数据物理结构是多立方结构,但却利用超立方结构来进行计算,结合了超立方结构的简化性和多立方结构的旋转存储特性。
三、OLAP的多维数据分析
多维数据分析是指对以多维形式组织起来的数据采取切片、切块、旋转和钻取等各种分析动作,以求剖析数据,使最终用户能从多个角度、多侧面地观察数据仓库中的数据,从而深入地了解包含在数据中的信息、内涵。多维分析方式迎合了人们的思维模式,因:
(一)切片。定义1:在多维数组的某一维上选定一维成员的动作成为切片,即在多维数组(维1、维2、....维n,变量)中选一维:维i,并取其一维成员(设为“维成员vi”),所得的多维数组的子集(维1,...维成员vi,...,维n,变量)称为在维i上的一个切片。
按照定义1,一次切片一定是原来的维数减1。所以,所得的切片并不一定是二维的“平面”,其维数取决于原来的多维数据的维数,这样的切片定义不通俗易懂。下面给出另一个比较直观的定义。
定义2:选定多维数组的一个二维子集的动作叫做切片,既选定多维数组(维1、维2、....维n,变量)中的两个维:维i和维j,在这两个维上取某一区间或者任意维成员,而将其余的维都取定一个维成员,则得到的就是多维数组在维i和维j上的一个二维子集,称这个二维子集为多维数组在维i和维j上的一个切片,表示为(维i和维j,变量)。
按照定义2,不管原来的维数有多少,数据切片的结果一定是一个二维的“平面”。从另一个角度来讲,切片就是在某个或某些维上选定一个维成员,而在某两个维上取一定区间的维成员或全部维成员。从定义2可知:
1.一个多维数组的切片最终是由该数组中除切片所在平面的两个维之外的其它维的成员值确定的。
2.维是观察数据的角度,那么切片的作用或结果就是舍弃一些观察角度,使人们能在两个维上来集中观察数据,因为人的空间想象力有限,所以,对于维数较多的多维数据空间,进行数据切片是十分有意义的。比照定义1,我们可以将切片的这两个定义联系起来,对于一个n维数组,按定义1进行的n-2切片的结果,就必定对应于按定义2进行的某一次切片的结果。
(二)切块。定义1:在多维数组的某一维上选定某一区间的维成员的动作称为切块,即限制多维数组在某一维的取值区间。显然,当这一区间只取一个维成员时,即得到一个切片。
定义2:选定多维数组的一个三维子集的动作称为切块,即选定多维数组(维1、维2、....维n,变量)中的三个维:维i、维j、维r,在这三个维上取某一区间或任意的维成员,而将其余的维都取定一个维成员,则得到的就是多维数组在维i、维j、维r上的三维子集,我们称这个三维子集为多维数组在维i、维j、维r上的一个切块,表示为(维i、维j、维r,变量)。切块与切片的作用与目的是相似的。
(三)旋转。旋转既是改变一个报告或者页面的维方向。例如:旋转可能包含了交换行与列;或是把某一个行维移到列维,或是把页面显示中的一个维和页面外的维进行交换(令其成为新的行或者列的一个)。
(四)钻取。
钻取处理是使用户在数据仓库的多层数据中,能够通过导航信息而获得更多的细节性数据,钻取一般是指向下钻取。大多数的OLAP工具可以让用户钻取至一个数据集中有更好细节描述的数据层,而更完整的工具可让用户随处钻取,即除一般往下钻取外,随处钻取还包括向上钻取和交叉钻取。
(五)多视图模式。人们发现,获取相同的信息,图形显示所带来的直观性有时是简单的数据表所无法提供的。一个OLAP系统,应当采取多种不同的格式显示数据,使用户能够获得最佳的观察数据的视角。
四、结语
随着数据仓库的发展,OLAP也得到了迅猛的发展。数据仓库侧重于存储和管理面向决策主题的数据,而OLAP则侧重于数据仓库中的数据分析,并将其转换成辅助决策信息。OLAP的一个重要特点是多维数据分析,这与数据仓库的多维数据组织正好形成相互结合、相互补充的关系。将有助于我们解决数据处理中的复杂问题。
参考文献:
[1]彭木根,数据仓库技术与实现,电子工业出版社,2002.9.
[2]张维明,数据仓库原理与应用,电子工业出版社,2000.2.
[3]萨师煊、王珊,数据库系统概论,高等教育出版社,2005.