首页 百科知识 的体系结构和分类

的体系结构和分类

时间:2024-10-17 百科知识 版权反馈
【摘要】:在MOLAP的结构中,首先把各个部分的各自数据经过提取、净化和转换等处理后提交到多维数据库,这些经过处理过的数据是分析的基础。这些数据在被存入多维数据库时,将根据它们所属的维进行一系列的预处理操作,并把结果按一定的层次结构存入多维数据库中。在ROLAP结构中,数据的预处理程度一般较低。作为ROLAP中使用的关系数据库,一般不会出现稀疏矩阵的情况。

10.5.3 OLAP的体系结构和分类

OLAP的具体实现方案通常采用三层客户/服务器结构,如图10-18所示。第一层是数据仓库服务器,它实现与基层运营的数据库系统的连接,完成企业级数据一致和数据共享的工作;第二层是OLAP服务器,它接受用户的请求,分析这些请求,完成相应的动作,最后做出分析;第三层是前端的展现工具,以更加直观、更利于用户理解的方式将分析的结果呈现给用户,如多维报表、柱状图、三维图形等展现给最终用户。

多维数据模型是建立OLAP的基础,多维数据模型的存储可以有多种不同的形式,按照存储方式可以将联机分析处理分为多维联机分析处理(MOLAP)、关系型联机分析处理(ROLAP)。

img204

图10-18

一、多维联机分析处理

在MOLAP有一个多维数据库,利用它来存储OLAP分析所需要的数据。在多维数据库(MDDB)中二维数据很容易理解,当维数扩展到三维或更多维时,多维数据库将形成类似于超立方体一样的结构。实际上,多维数据库是由许多经压缩的类似于数组的对象构成,这种对象通常带有高度压缩的索引指针结构。每个对象由聚集成组的单元块组成,每个单元块都按类似于多维数组的结构存储,并通过直接偏移计算进行存取。由于索引只需一个较小的数来标识单元块,因此多维数据库的索引一般较小,只占数据空间的一小部分,正因为它们如此之小,以至于可以很容易地将整个索引装进内存,这将极大地提高性能。在实际分析过程中,可能需要把任一维与其他维进行组合,因而需要能够旋转数据立方体及切片的视图,即以多维方式显示数据。

在MOLAP的结构中,首先把各个部分的各自数据经过提取、净化和转换等处理后提交到多维数据库,这些经过处理过的数据是分析的基础。这些数据在被存入多维数据库时,将根据它们所属的维进行一系列的预处理操作,并把结果按一定的层次结构存入多维数据库中。这样用户就可以使用这些数据了,用户通过用户界面向OLAP服务器提交自己的请求,OLAP服务器分析这些请求,对多维数据库的数据进行检索,然后将得到的结果呈现给用户。

MOLAP结构的主要优点是能迅速地响应决策分析人员的分析请求并快速地将分析结果返回给用户。但是在MOLAP结构中,OLAP服务器主要是通过读预处理过的数据来完成分析操作,而这些预处理操作是预先定义的,这就限制了MOLAP结构的灵活性。

二、关系型联机分析处理

ROLAP与MOLAP最大的区别就是ROLAP的底层数据库是关系型数据库,而MOLAP是多维数据库,但是其实现的功能是相同的,所以对于最终用户来说感觉区别很小。关系OLAP数据存储在关系数据库中,没有数组的概念,因此多维数据必须被映像成平面型的关系表中的行。这必须通过一个能够平衡性能、具有存储效率和可维护性的方案来完成。具有代表性的是非标准化的星型模式的设计,它将基本信息存储在一个单独的事实表中,而有关维的支持信息则被存储在其他表中。这种结构不同于操作型系统中的使用方案。它可能也不适合其他查询和报表工具。因此,这些基本数据将被复制到一系列专门为多维存取应用而设计的表中。

预处理的结果一般被存放在大量的综合汇总表中,这些综合汇总表分别有不同的聚集及组合。它们每个都需要关键字来标识,并且通过索引来获得高效的访问。而这些关键字在某些时候可以使用人们可读的描述符号,但通常它们更多地使用严格的二进制整数键。后者对于存储和数据检索更有效。但当和描述符表联接时需要将这些二进制键和现实世界的描述符关联起来,这将给每个检索操作增加额外处理。

ROLAP用户通过客户端工具提交多维分析请求给OLAP服务器,后者将这些请求动态地转换成SQL语句执行,分析的结果经多维处理转化为多维视图返回给用户。

在ROLAP结构中,数据的预处理程度一般较低。ROLAP的主要特点是灵活性强,用户可以动态定义统计或计算方式;缺点是它对用户的分析请求处理时间比MOLAP要长。

下面我们把MOLAP与ROLAP从查询性能、数据加载性能、分析能力、数据集市的大小、维的管理和维护能力方面进行比较,以便用户在OLAP设计中,根据这两种模式的特点进行合适的选择。

(1)查询性能

因为在多维数据库中常常根据用户的需求,事先做好许多计算,所以以多维数据库为基础的MOLAP的查询一般较好。多维数据库的这些计算有的是立方体或超立方体中的所有值,有的是其中的一部分。由于计算的预先性,自然使MOLAP的查询能力可以预测,并且较为理想。而在ROLAP中进行查询分析,其结果往往很难预计。有的时候很快,有的时候则要很长时间才能获取答案。虽然在ROLAP的实际应用中,可以通过构造索引表和概要表来加快查询速度,但是对一些特殊的查询响应,ROLAP的速度远不如MOLAP。

(2)数据加载性能

在数据加载的操作中,MOLAP对数据处理的步骤比较多,除要完成数据的转换和装载外,还需要对所有立方体中的所有值进行计算。这样,MOLAP所需要的数据加载时间就比较长,因此在许多MOLAP中多维数据库的加载往往一个月才进行一次。而对于ROLAP来说,在数据加载过程中所要完成的操作仅仅是数据装载、索引和概要表的创建。由于在ROLAP中所进行的概要表创建量一般较少,因此ROLAP的加载时间要比MOLAP的短。

(3)分析能力

由于OLAP的本质就是对数据库中的数据进行分析,因此,OLAP的分析能力应该是衡量两者优劣的一个重要指标。MOLAP在分析过程中的精度较高,具有分析的优势;而由于ROLAP中的请求最终需要转换成SQL语言,受SQL语言的约束,ROLAP的分析效果往往不如MOLAP。

(4)数据集市的大小

MOLAP在实际应用中的数据存储量往往增长较快,尤其当所创建的多级模式中拥有多个维时。在多维空间中就会出现有些地方没有值或者出现的值没有实际意义,所以会形成一个极其浪费存储空间的稀疏矩阵。这种稀疏矩阵的出现,必然随着维数的增加,而呈现爆炸性的增长趋势。作为ROLAP中使用的关系数据库,一般不会出现稀疏矩阵的情况。而且在实际应用中,只要磁盘空间足够大,ROLAP数据库可以支持无限增长的数据存储要求。但是大多数的多维数据库的容量不能无限增长。

(5)维的管理

ROLAP数据库由于采用星型模式构建,星型模式的维表可能很宽,可以包含很多列。管理人员可对这样一个表中的所有列进行查询、钻取等操作。这样比较复杂的操作在MOLAP中就比较难以完成,因为在多维数据库中的操作是受到多维表中所包含的不同维的“层次”设置制约的。因为过多的维层次的设置将使维表需要的存储量成爆炸性的增长,这是系统无法承受的。

(6)维护能力

OLAP在构建成功以后,需要不断地对其维护。MOLAP能够较好地进行自我维护。在数据更新加载时,只需要用SQL语句对其输入数据就可以了。而ROLAP在维护和聚集时则比较困难,因为在数据加载和聚集时要填充多个结构,需要打开或关闭索引。加载完成后,还要考察其性能是否下降。如果性能下降,需要增加索引或概要表。

为了在实际应用中获得更好的性能,人们考虑把两者结合起来,综合MOLAP与ROLAP两者长处的OLAP,这就是混合OLAP(HOLAP)。HOLAP将多维数据集市的数据按照多维结构存储在分析服务器上,但是不保存源数据。因此,HOLAP的多维数据查询分析性能同MOLAP一样优越,若查询源数据则就不如将源数据存储在MOLAP中那样快速。但是对源数据的各种钻取操作,可像ROLAP一样灵活。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈