OLAP 模型

  OLAP分析的基础是多维数据集,按照其数据存储格式的不同可以分为关系型OLAP(Relational OLAP,ROLAP)和多维型OLAP(Multidimensional OLAP,MOLAP).

  (一):ROLAP采用关系数据库和相似的关系查询工具进行多维数据的存储和分析.在ROLAP中,数据预处理程序一般不高,所以查询响应较慢,但灵活性较好,用户可动态定义计算和统计方式,系统的可移植性较好.

  在多维分析的商业智能解决方案中,根据事实表和维度表的关系,ROLAP设计模型可分为星型模型和雪花型模型。在设计逻辑型数据的模型的时候,就应考虑数据是按照星型模型还是雪花型模型进行组织。

 1. 星型模型:由一个包含大量记录并且不含冗余的中心表(事实表)和若干个小的维表(每个维一个维表)组成。维表通过外键与事实表关联。如图1

  星型架构是一种非正规化的结构,多维数据集的每一个维度都直接与事实表相连接,不存在渐变维度,所以数据有一定的冗余,如在地域维度表中,存在国家 A 省 B 的城市 C 以及国家 A 省 B 的城市 D 两条记录,那么国家 A 和省 B 的信息分别存储了两次,即存在冗余。

              

                            图1

  2.雪花模型:当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的 " 层次 " 区域,这些被分解的表都连接到主维度表而不是事实表。如图 2,将地域维表又分解为国家,省份,城市等维表。它的优点是 : 通过最大限度地减少数据存储量以及联合较小的维表来改善查询性能。雪花型结构去除了数据冗余。

          

                                图2

  两种模型比较:星型模型因为数据的冗余所以很多统计查询不需要做外部的连接,因此一般情况下效率比雪花型模型要高。星型结构不用考虑很多正规化的因素,设计与实现都比较简单。雪花型模型由于去除了冗余,有些统计就需要通过表的联接才能产生,所以效率不一定有星型模型高。正规化也是一种比较复杂的过程,相应的数据库结构设计、数据的 ETL、以及后期的维护都要复杂一些。因此在冗余可以接受的前提下,实际运用中星型模型使用更多,也更有效率。

  如果事实表很大,优选选择星型模型。

  (二):MOLAP采用多维数据库(MDDB)来存储器和分析多维数据.多维数据库使用专门的技术把数据存储在类似矩阵的n维阵列中.多维数据库管理系统的终端用户把存储的数据看做是三维的立方体,称为数据立方体(Data Cube).数据立方体可以扩展到n维,成为超立方体.数据立方体的一个重要牲就是它们是静态的,也就是必须在使用之前建立,不能即席查询来建立.比如,销售立方体包括产品、地区和时间维度,那就只能查询这些维度。

  为了加快访问数据的速度,数据立方体通常被存储在内存中,称该内存为立方体缓存。MOLAP也采用客房/服务器体系结构,立方体缓存可以放置在服务器端或客户端,或者同时放置在两端。

  在内存里获取数据立方体可以提供更快的响应时间,但是它也使得多维数据库比关系数据库更耗费资源(内存、存储器、处理器)。由于数据立方体预定义了一系列维,要加入新的维就必须重新建立整个立方体,这个建立过程很耗费时间,因此,不应该频繁创建数据立方体。而且,为了避免访问数据时间过长,也必须限制数据立方体的大小。此外,多维数据库由于使用的数据存储技术,也需要使用专门的多维查询语言进行数据访问。

    总的来说,ROLAP的优点是灵活性强,集成性高,用户可以动态定义计算和统计方式;缺点是分析处理的响应时间较长。MOLAP的优点是分析处理的响应时间较快,缺点是灵活性较差,限制了集成的弹性,处理细节数据的能力较差。

做个小推广:程序员经常久坐,颈椎毛病比较多,特别推荐ventry颈椎保健枕

原文地址:https://www.cnblogs.com/longzhongren/p/4066427.html