前言:一直对大数据相关的东西比较感兴趣,但是又没有太多的时间系统学习,之前又一直在补JAVA的基础知识(谁叫大学耍hi了,都学得不咋样,所以欠下的都是要还的!!!)。这段时间负责的一个项目正好要用相关的技术,可以在公司明目张胆的给自己点技能树了。
联机实时分析(Olap,OnlineAnalytical Processing)是一种多维分析的解决方案。
多维分析是一种数据分析的过程,在此过程中把数据分为:维度(dimensions)和度量(measurements)。维度指描述空间中所有点的最少坐标(我的理解就是分类比如描述今天可以是2018年4月27日),度量就是这些坐标组合起来对用的具体点(比如2018年4月27日卖掉了4个苹果,这4个苹果就是这组数据对应的点)。
一.数据立方体(Olap cube)
在这个三维的立方体中可以通过一种方式 F(季度,产品分类,销售地)指向唯一的一个数据块。
二.维度模型
维度模型概念出自于数据仓库领域,是数据仓库一种数据建模方法。维度模型主要由事实表和维度表两个基本要素构成。
事实表是维度模型的基本表,主要存放大度量值,术语“事实”代表了一个度量值,比如上方的四个苹果 。但是这四个苹果是在2018年4月27日下产生的。这个条件下规定了这个事实的粒度。事实表的一行可以确定一个度量值。如图
维度表是事实表不可分割的一部分,包含维度的所有信息,一个维度表可能会有很多列,我们称之为维度属性。比如管理部二级机构 管理部办公点。
这样就可以根据维度表进入事实表,根据需要的分析的条件进行切割。二者的结合变出现了星型模型扩展可以得到雪花模型 如图
星型模型:
可以看出 雪花模式是在星型模式的基础上再对维度表进行冗余去除和规范化得到的模型图,减少了空间的占用。
关于星型和雪花的孰优孰劣要在具体的项目中定夺,星型相对于聚集和数据抽取来说简单,查询速度更快(空间换时间)。但是冗余了数据。 雪花模式正好相反。
三.基本分析操作
Olap可以从多个角度分析数据,主要有五种基本分析:上卷,下钻,切片,切块,旋转。
1.上卷
上卷沿着统一个维度向上聚合操作,比如 201701销售4件,201702销售5件,上卷后可以为2017 销售9件。 就是子维度向父维度聚合
2.下钻
上卷和下钻正好相反,是父维度向子维度。就是细分数据
3.切片
切片表示选择某一个维度的值比如维度中有管理部 银行 缴存人类型,只选择管理部这个维度进行切片。
4.切块
切块可以是在切片的基础上增加部分维度
5.旋转
旋转相当于是改变分析的基本维度,从另外一个角度进行分析。
这五个基本操作可以是相互交错的,比如先切块后再旋转切片。总之就是最后得到需要看到的分析数据。
至此为了学习mondrian的准备工作就做得差不多了,其实olap还有很多知识可以学习。
四.Olap分类
Olap按照存储方式的不同可以分为:Rolap,Molap,Holap
1.Rolap表示基于关系数据库的Olap的实现。以关系数据库为核心,以关系数据库的结构进行多维数据表示和存储,存储方式就是上述的事实表和维度表。优点:可以实时的从源数据得到最新的数据,缺陷在于运行效率较低,用户等待时间较长(可以优化)。我认为最大的好处就是厂商改动较小,和在原来的基础上直接升级,使用户乐意接受,基于优化后等待时间绝大多数用户是可以接受的。
2.Molap表示基于多维数据的Olap的实现。以多维组织方式为核心,Molap使用多维数组存储数据。通过优化这样的多维数组数据可以极快的得到结果但是相较于Rolap数据的同步和实时性难于保证因为是基于预处理的数据
3.Holap是前两者的结合。但是开发难度比较大
关键词:olap,维度,度量,维度表,事实表,星型模式,雪花模式,上卷,下钻,切片,切块,旋转