ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ROLAP关系型联机分析处理

ROLAP关系型联机分析处理

原创 Linux操作系统 作者:haydn 时间:2009-04-17 11:06:54 0 删除 编辑

关系型联机分析处理ROLAP关系OLAP关系联机分析处理)是联机分析处理OLAP)的一种形式,它对存储在关系数据库(而非多维数据库)中的数据作动态多维分析。

      数据处理可以发生在数据库系统内、中间层服务器,或客户端。在两层结构中,用户提交结构化查询语句(SQL)请求给数据库,然后收到请求的数据。在三层结构中,用户提交请求进行多维分析,然后ROLAP引擎将请求转化为SQL语句提交给数据库。然后的操作将反过来执行:在将结果传给用户前引擎先将结构从SQL转化为多维格式。一些请求会被创建,然后预先存好,关系型数据库常常是这么做的。如果请求的信息是可得的,则这个请求就会被使用,这么做将节约时间。微软Access的PivotTable就是三层结构的一个例子。

      因为ROLAP使用的是关系数据库,所以它需要更多的处理时间和/或磁盘空间来执行一些专为多维数据库设计的任务。尽管如此,ROLAP支持更大的用户群组和数据量,常常用于对这些容量要求很高的场合,例如某公司一个大而复杂的部门。

      关系OLAP(ROLAP)表示基于关系数据库的OLAP实现(Relational OLAP)。以关系数据库为核心,以关系型结构进行多维数据的表示和存储。ROLAP将多维数据库的多维结构划分为两表:一类是事实表,用来存储数据和维关键字;另一类是维表,即对每个维至少使用一个表来存放维的层次、成员类别等维的描述信息。维表和事实表通过主关键字和外关键字联系在一起,形成了"星型模式"。对于层次复杂的维,为避免冗余数据占用过大的存储空间,可以使用多个表来描述,这种星型模式的扩展称为"雪花模式"。

      rolap将分析用的多维数据存储在关系数据库中并根据应用的需要有选择的定义一批实视图作为表也存储在关系数据库中。不必要将每一个sql查询都作为实视图保存,只定义那些应用频率比较高、计算工作量比较大的查询作为实视图。对每个针对olap服务器的查询,优先利用已经计算好的实视图来生成查询结果以提高查询效率。同时用作rolap存储器的rdbms也针对olap作相应的优化,比如并行存储、并行查询、并行数据管理、基于成本的查询优化、位图索引、sql 的olap扩展(cube,rollup)等等。

ROLAP的特点


  在ROLAP中,可以根据应用的需要有选择地定义一批实视图,作为表存于关系数据库中。

  ROLAP监视数据仓库的数据访问情况,对实视图进行动态调整。DBA也可进行人工干预。

  实视图在ROLAP中对用户是透明的,用户可像查询关系数据库一样查询数据仓库。

从ROLAP到MOLAP

      记得2000年的时候,在QiDSS中使用的是ROLAP技术。到2003年,全国上下的BI系统几乎都采用MOLAP技术,这是一个很值得思考的现象。表面上看,由于工具厂商市场份额的变化,对产品推广力度不够。在QiDSS中,使用Metacube作为OLAP Server,但是就在那个时候,它已经宣称不再升级甚至不再提供支持了,当时业界提供纯ROLAP产品的厂商已经不多,现在Microstrategy公司依然存在,而且据说在国内有几个客户,很早了解他们就是因为它是ROLAP产品提供商,不过对它们现在的产品线已经不清楚了。


      更深一层看,为什么ROLAP产品生存空间不大,必定和用户的需求有关系。用户需要的不是产品,而是在线分析的功能,其中重要的一点就是分析响应速度。


      这一点还是MOLAP占了上风。从技术角度来说,ROLAP和MOLAP各有千秋。前者基于关系型数据库,它的OLAP引擎就是将用户的OLAP操作,如上钻下钻过滤等,转换成SQL语句提交到数据库中执行,并且提供聚集导航功能,根据用户操作的维度和度量将SQL查询定位到最粗粒度的事实表上去。相比较而言,MOLAP事先将汇总数据计算好,存放在自己特定的多维数据库中,用户的OLAP操作可以直接映射到多维数据库的访问,无需通过SQL访问。可以说ROLAP提供了更大的灵活度,但可能正是这种灵活度,造成对用户使用的不友好印象,确实相比Metacube和Cognos,前者的操作复杂多了,不过这应该不成问题,是可以改善的。


      性能的问题却不是非常容易解决的,关键还不在是聚集表快还是多维数据库快。从体系架构上说,采用MOLAP使得OLAP应用和数据仓库分离开,降低了耦合度,这种架构是比较理想的,可以让不同部件专门干自己的事,付出的代价主要是ETL的复杂度。而ROLAP技术直接依赖数据仓库,与之紧密结合,OLAP的性能很大程度上依赖数据仓库模式设计,这一点不是总是被保证的。


      不过对于ROLAP,我对之有些信心。别看现在大家都在用Cognos、Essbase什么的,那都是轧堆,十年河东,十年河西。如果在ROLAP上有成熟的方法论用以规范化数据仓库设计的话,以后必定又能大放异彩。


ROLAP MOLAP的机制比较


      MOLAP是事先生成多维立方体,供以后查询分析用,而ROLAP是通过动态的生成Sql,去做查询关系型数据库,如果没有做性能优化,数据量很大的时候,性能问题就会显得比较突出了。

ROLAP与MOLAP比较

ROLAP

MOLAP

沿用现有的关系数据库的技术
专为OLAP所设计
响应速度比MOLAP慢;
现有关系型数据库已经对OLAP做了很多优化,包括并行存储、并行查询、并行数据管理、基于成本的查询优化、位图索引、SQL的OLAP扩展(cube,rollup)等,性能有所提高
性能好、响应速度快
数据装载速度快
数据装载速度慢
存储空间耗费小,维数没有限制
需要进行预计算,可能导致数据爆炸,维数有限;无法支持维的动态变化
 
 
借用RDBMS存储数据,没有文件大小限制
操作系统平台中文件大小的限制,难以达到TB级(只能10~20G)
可以通过SQL实现详细数据与概要数据的存储
缺乏数据模型和数据访问的标准
–不支持有关预计算的读写操作
–SQL无法完成部分计算
?无法完成多行的计算
?无法完成维之间的计算
–支持高性能的决策支持计算
?复杂的跨维计算
?多用户的读写操作
?行级的计算
维护困难
管理简便

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/218005/viewspace-590741/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-04-17

  • 博文量
    9
  • 访问量
    32360