OLAP分类的基本概念和基本操作

电子常识

2647人已加入

描述

  OLAP分类的基本概念

  OLAP有多种实现方法,根据存储数据的方式不同可以分为ROLAP、MOLAP、HOLAP。

  ROLAP:表示基于关系数据库的OLAP实现(Relational OLAP)。以关系数据库为核心,以关系型结构进行多维数据的表示和存储。ROLAP将多维数据库的多维结构划分为两类表:一类是事实表,用来存储数据和维关键字;另一类是维表,即对每个维至少使用一个表来存放维的层次、成员类别等维的描述信息。维表和事实表通过主关键字和外关键字联系在一起,形成了“星型模式”。对于层次复杂的维,为避免冗余数据占用过大的存储空间,可以使用多个表来描述,这种星型模式的扩展称为“雪花模式”。ROLAP的最大好处是可以实时地从源数据中获得最新数据更新,以保持数据实时性,缺陷在于运算效率比较低,用户等待响应时间比较长。

  MOLAP:表示基于多维数据组织的OLAP实现(Multidimensional OLAP)。以多维数据组织方式为核心,也就是说,MOLAP使用多维数组存储数据。多维数据在存储中将形成“数据立方体(Cube)”的结构,此结构在得到高度优化后,可以最大程度地提高查询性能。随着源数据的更改,MOLAP 存储中的对象必须定期处理以合并这些更改。两次处理之间的时间将构成滞后时间,在此期间,OLAP对象中的数据可能无法与当前源数据相匹配。维护人员可以对 MOLAP 存储中的对象进行不中断的增量更新。MOLAP的优势在于由于经过了数据多维预处理,分析中数据运算效率高,主要的缺陷在于数据更新有一定延滞。

  HOLAP:表示基于混合数据组织的OLAP实现(Hybrid OLAP),用户可以根据自己的业务需求,选择哪些模型采用ROLAP,哪些采用MOLAP。一般来说,会将非常用或需要灵活定义的分析使用ROLAP方式,而常用、常规模型采用MOLAP实现。

  Cubes:是数据立方体。何为数据立方体?这主要是和维度的概念一起理解,我们现实是分三维,x,y,z三个坐标决定的空间。而数据库,可能会包含很多维度,只是在我们的认知中无法想像超越三维的事物,这只是个概念。可见,Cube是依赖于维度的。所以在我们建立Cube的时候,需要理解下面的Dimension是什么。

  Dimensions:Cube的维度,每个Cube依赖哪些维度来做统计,就需要在这里建。虽然在创建立方的时候会自动帮我们创建维度,但是有时候他创建的维度并不能达到我们的目的。所以,我们先建Dimension,再建Cube。

  Mining structures:数据挖掘用的东西,咱这里就不说了,因为我还没用过,只是看了下Webcast的视频,里面介绍了集成了大量的现有挖掘算法,很方便的可以做出相应的分析趋势。 还是看似厉啊。

  OLAP的基本操作

  我们已经知道OLAP的操作是以查询——也就是数据库的SELECT操作为主,但是查询可以很复杂,比如基于关系数据库的查询可以多表关联,可以使用COUNT、SUM、AVG等聚合函数。OLAP正是基于多维模型定义了一些常见的面向分析的操作类型是这些操作显得更加直观。

  OLAP的多维分析操作包括:钻取(Drill-down)、上卷(Roll-up)、切片(Slice)、切块(Dice)以及旋转(Pivot),下面还是以上面的数据立方体为例来逐一解释下:

  

  钻取(Drill-down):在维的不同层次间的变化,从上层降到下一层,或者说是将汇总数据拆分到更细节的数据,比如通过对2010年第二季度的总销售数据进行钻取来查看2010年第二季度4、5、6每个月的消费数据,如上图;当然也可以钻取浙江省来查看杭州市、宁波市、温州市……这些城市的销售数据。

  基本分析操作

  OLAP允许用户从多种角度分析多维数据,主要包括以下五种基本操作:上卷(consolidation/roll-up)、下钻(drill-down)、切片(slice)、切块(dice)和旋转(pivot)。

  上卷(consolidation/Roll-up)

  上卷表示沿着某一维度按照一定的规则(rule)对数据进行聚合(aggregation)操作,沿着某一维度,即按照层级关系从子类维度向父类维度作聚合。

  下钻(Drill-down)

  下钻和上卷正好相反,允许用户从已聚合的数据集中提取出所关注的细节。下图表示了从“Outdoor-Schutzausrüstung”这个父类维度中抽取出三个子类维度的下钻过程。

  OLAP

  切片(Slice)

  切片表示通过选择某个维度的单一值(value),从OLAP cube中抽取出一个分片的过程。下图表示了从原始OLAP cube中抽取出time = 2004分片的过程。

  OLAP

  切块(Dice)

  切块表示通过选择多个维度的某些值(或者区间),从OLAP cube中抽取出子cube的过程。下图表示了从原始OLAP cube中抽取某个维度中多值对应的子cube的过程。

  OLAP

  旋转(pivot)

  旋转操作允许用户通过旋转(rotate)OLAP cube,重新选择目标分析维度,通常表现为交换坐标轴操作。在下图中,原始的OLAP cube的X轴是产品名称,Y轴是地区名称,Z轴是年份;经过旋转操作后cube表示了每个产品在不同年份、不同地区的统计情况。

  OLAP

  OLAP技术路线分类

  常见的OLAP系统可以分为以下三类:关系型联机实时分析系统(Relational-OLAP,ROLAP),多维联机实时分析系统(Multidimensional-OLAP,MOLAP),混合型联机实时分析系统(Hybrid-OLAP,HOLAP)。

  1.5.1 关系型联机实时分析(ROLAP)

  ROLAP的核心依赖于关系型数据库,允许用户使用维度模型进行数据分析,将维度值存储在维度表中,将度量值存储在事实表中,通过关系型数据库访问数据,使用SQL进行查询分析。ROLAP的一般使用模式概括如下:根据用户的需求,对不同维度进行分析后,将分析数据导入到另一张数据库表中。

  ROLAP的优势:

  (1)处理高基数列具有更好的扩展性;

  (2)擅长处理非聚合类的原始数据,生态圈内用于原始数据入库的ETL工具众多,同时比MOLAP入库速率更高;

  (3)由于数据存储在关系型数据库中,所以支持标准SQL接口,查询便捷;

  ROLAP的劣势:

  (1)根据OLAP survey(http://www.olapreport.com/survey.htm)在2001-2006年连续6年的调研显示,工业界普遍认为ROLAP的性能要低于MOLAP。但也有人提出质疑,争议包含两方面:ROLAP的用户数是MOLAP的7倍多,那么抱怨产品性能差的比例自然更高;其他因素的影响,上述调研报告并没有将ROLAP产品和MOLAP产品放在同一个维度模型上进行比较,所以该报告结论并不具有权威性;

  (2)处理已聚合的数据,需要使用定制的ETL工具,开发量大且不具有通用性;如果采用原始数据入库,将非常影响查询性能,如果想要提升查询性能,需要将已入库的原始数据重新聚合后再导入到新的表中进行查询分析;

  (3)ROLAP的性能很大程度上依赖于使用的关系型数据库的查询与缓存性能;同时对于所有分析操作,都依赖于SQL语句,对于重计算类的分析模型,转换后的SQL就会变得复杂,对分析者的SQL语句的调优要求较高,而在某些无法使用SQL的场景下,ROLAP类产品则变得无能为力。

  1.5.2 多维联机实时分析(MOLAP)

  MOLAP是OLAP的经典使用模式,所以经常用MOLAP来指代OLAP。MOLAP和ROLAP具有一定的相似性,二者都可以使用维度模型进行数据分析,但是MOLAP并不将数据存储在维度表或者事实表中,而是对原始数据进行预计算(比如聚合操作),将计算结果存储在OLAP cube中。

  MOLAP的优势:

  (1)由于MOLAP不采用关系型数据库进行数据存储,所以必须采用特殊的存储手段,例如:压缩存储、索引(例如位图索引)以及缓存技术等,查询速率更快;

  MOLAP的劣势:

  (1)数据导入较慢,需要使用定制的ETL入库工具;

  (2)由于没有维度表和事实表,所以对于更新操作以及明细查询,效率要比ROLAP低很多。

  1.5.3 混合型联机实时分析(HOLAP)

  HOLAP充分利用了ROLAP与MOLAP的各自优势,从纵向角度,既允许用户将部分数据(比如聚合类数据)使用MOLAP进行存储,从而获得更快的查询性能;又允许部分数据(比如原始数据)使用ROLAP进行存储,使用户能够查看细粒度数据。从横向角度,使用MOLAP存储最近较热的数据,从而提升查询性能;而使用ROLAP存储历史较冷的数据。

  目前,商业类的OLAP产品更偏向于HOLAP,因为大厂既不想丢弃一直使用的关系型数据库,又想在数据分析能力上获得进一步提升,所以HOLAP类产品近几年也是百花齐放。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分