初识OLAP

什么是OLAP

OLAP(on-Line Analysis Processing)是使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。这个定义太官方了,简单来说,通过对过往历史数据(数据量通常会大)的分析,获取数据的价值,支撑业务发展的决策,通过olap分析出来的数据通常是给老板看的

OLAP中的概念和操作

一些概念

在数据分析的过程中,数据分析的目标是维度,也就是面向某个"维",进行数据的分析。
如下图的数据有三个维度:时间,地域,商品品类。
在这里插入图片描述

维(Dimension):人们观察事物的视角,如时间、地理位置、年龄和性别等,是单一角度概念。
维的层次(Lever of Dimension):表示维度概念基础上进一步的细分,如时间可以细分为年、季度、月三个层次。
维成员(Member of Dimension):表示维不可再细分的原子取值,如时间维的成员可以是2019年1月10日。
度量(Measure):表示在这个维成员上的取值。

一些操作

在数据分析中,通常都是对原始数据,在某个维度或多个维度上的聚合操作,常用的操作有如下几种:

钻取

钻取又可以分为 “下钻” 和 “上钻”。
下钻:维度是有层次的,下探表示进入维度的下一层,将汇总数据拆分到下一层所在细节数据信息,如下图从第二季度下探到看4、5、6月的明细数据。
在这里插入图片描述

上钻:下探的反向操作,回到更高汇聚层的汇总数据。

在这里插入图片描述

切片

切片可以理解成把立体按某一个维度进行切分,就可以看两维数据,如图中按电子产品切分,看到的是时间和地理位置关系的二维数据。
在这里插入图片描述

切块

相对于切片是按一个点切分,切块就是按一个范围(区间)来做切分。
在这里插入图片描述

旋转

维的行列位置交换,换一个视角分析数据。
在这里插入图片描述

OLAP分类

按照数据的存储形式不同,OLAP可以分为两种: ROLAP和MOLAP

ROLAP

ROLAP将多维数据库的多维结构划分为两类表:一类是事实表,用来存储数据和维关键字;另一类是维表,即对每个维至少使用一个表来存放维的层次、成员类别等维的描述信息。

维表和事实表通过主关键字和外关键字联系在一起,形成了"星型模式"。对于层次复杂的维,为避免冗余数据占用过大的存储空间,可以使用多个表来描述,这种星型模式的扩展称为"雪花模式"。

基于关系模型存放数据,一般要求事实表(fact table)和维度表(dimensition table)按一定关系设计,它不需要预计算,使用标准SQL就可以根据需要即时查询不同维度数据。

优点

扩展性强,适用于维度数量多的模型,MOLAP对于维度多的模型预计算慢,空间占用大。

缺点

缺点也很明显,因为是即时计算,查询响应时间一般比预计算的MOLAP长

以ROLAP为代表的有传统关系型数据库、MPP分布式数据库以及基于Hadoop的Spark/Impala,特点是能同时连接明细数据和汇总数据,实时根据用户提出的需求对数据进行计算后返回给用户,所以用户使用相对比较灵活,可以随意选择维度组合来进行实时计算。

正因为采用的实时计算技术,所以ROLAP的缺点也比较明显——当计算的数据量达到一定级别或并发数达到一定级别的时候,一定会出现性能问题(就好比如果领导一次性给你安排非常多的工作,你一个人是无法马上将所有事情做完答复领导的)。

MOLAOP

以多维数组(Multi-dimensional Array)存储模型的OLAP,是OLAP发源最初的形态,某些方面也等同于OLAP。它的特点是数据需要预计算(pre-computaion),然后把预计算之后的结果(cube)存在多维数组里。

优点:

cube包含所有维度的聚合结果,所以查询速度非常快。
计算结果数据占用的磁盘空间相对关系型数据库更小

缺点:

空间和时间开销大。update cube的时间跟计算维度(degree)相关,随着维度增加计算时间大幅增加,此外预计算还会造成数据库占用急剧膨胀。

查询灵活度比较低。需要提前设计维度模型,查询分析的内容仅限于这些指定维度,增加维度需要重新计算。

以MOLAP分析为代表的有Cognos,SSAS,Kylin等,设计理念是预先将客户的需求计算好以结果的形式存下来(比如一张表分为10个维度,5个度量,那客户提出的需求会有2的10次方种可能,然后将这么多种可能提前计算好存储下来),当客户提出需求后,找到对应结果返回即可(好比你提前一天将领导明天会布置的任务先做好,明天领导布置对应任务后你直接告知他已做好),特点是当命中需求后返回非常快(所以MOLAP非常适合常见固定的分析场景),同等资源下支持的数据体量更大,支持的并发更多,不足则是当表的维度越多,越复杂,其所需的磁盘存储空间则越大,构建cube也需要一定的时间。

总结

除了ROLAP和MOLAP两种数据组织形式外,为了适应复杂业务的发展。目前业界对OLAP又提出了第三种数据组织形式HOLAP。

HOLAP充分利用了ROLAP与MOLAP的各自优势,从纵向角度,既允许用户将部分数据(比如聚合类数据)使用MOLAP进行存储,从而获得更快的查询性能;又允许部分数据(比如原始数据)使用ROLAP进行存储,使用户能够查看细粒度数据。从横向角度,使用MOLAP存储最近较热的数据,从而提升查询性能;而使用ROLAP存储历史较冷的数据。目前,商业类的OLAP产品更偏向于HOLAP,因为大厂既不想丢弃一直使用的关系型数据库,又想在数据分析能力上获得进一步提升,所以HOLAP类产品近几年也是百花齐放。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OLAP(联机分析处理)。 什么是联机分析处理(OLAP) 联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的,他同时提出了关于OLAP的12条准则。 OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 (OLTP) 明显区分开来。 当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP (On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。 OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。 下表列出了OLTP与OLAP之间的比较。 OLTPOLAP用户操作人员,低层管理人员决策人员,高级管理人员功能日常操作处理分析决策DB 设计面向应用面向主题数据当前的, 最新的细节的, 二维的分立的历史的, 聚集的, 多维的集成的, 统一的存取读/写数十条记录读上百万条记录工作单位简单的事务复杂的查询用户数上千个上百个DB 大小100MB-GB100GB-TB OLAP是使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。 OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它的技术核心是"维"这个概念。 “维”是人们观察客观世界的角度,是一种高层次的类型划分。“维”一般包含着层次关系,这种层次关系有时会当复杂。通过把一个实体的多 项重要的属性定义为多个维(dimension),使用户能对不同维上的数据进行比较。因此OLAP也可以说是多维数据分析工具的集合。 OLAP的基本多维分析操作有钻取(roll up和drill down)、切片(slice)和切块(dice)、以及旋转(pivot)、drill across、drill through等。 ·钻取是改变维的层次,变换分析的粒度。它包括向上钻取(roll up)和向下钻取(drill down)。roll up是在某一维上将低层次的细节数据 概括到高层次的汇总数据,或者减少维数;而drill down则反,它从汇总数据深入到细节数据进行观察或增加新维。 ·切片和切块是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个,则是切块。 ·旋转是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。 OLAP有多种实现方法,根据存储数据的方式不同可以分为ROLAP、MOLAP、HOLAP

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值