OLAP概述
![https://chenxqblog-1258795182.cos.ap-guangzhou.myqcloud.com/typora/OLAP1.png https://chenxqblog-1258795182.cos.ap-guangzhou.myqcloud.com/typora/OLAP1.png](https://chenxqblog-1258795182.cos.ap-guangzhou.myqcloud.com/typora/OLAP1.png)
Contents
OLAP
OLAP vs OLTP 的差异
OLAP定义:联机分析处理,数据访问和分析,多维数据,交互性,深入观察,决策。
OLAP 的目标:查询和报表
相关概念:
- 维度
- 维的层次
- 维的成员
- 多维数组
- 度量
基本特征:
- 快速性:秒级
- 可分析性:统计
- 多维性
- 信息性
多维数据结构:
- 数据超立方体:三维或更多的维数,彼此垂直
分类:
按存储类型:
- MOLAP:多维
- ROLAP:关系型,星形模型和雪花模型
- HOLAP:混合
ROLAP的优势:
- 没有大小限制(不需要额外存储空间,键关联)
- 关系数据库的技术沿用
- SQL查询
- 优化多,提高查询性能
缺点:
- 响应速度差
- 不支持预计算
- SQL无法完成部分计算
- 内存需求大
molap的优势:
- 性能好,响应快,不需要关联,主外键连接
- 专为olap设计,可以考虑olap的一些问题
缺点:
- 增加系统复杂度,增加系统培训与维护成本
- 需要进行预计算,导致数据急剧膨胀
- 支持维的动态变化比较困难
ROLAP架构
MOLAP架构
HOLAP架构
OLAP引擎有哪些?是属于那种类型的OLAP?
ROLAP: hive, presto
MOLAP: kylin,
OLAP多维技术分析
多维数据模型
实现:
- 基于关系数据库
- 星型模型
- 雪花模型
- 事实群模型
- 基于多维数组
多维数组存储
- 关系存储:扩展性好,不存在稀疏问题,访问速度不够快
- 多维数组存储:访问速度快,有大量无效的值,存储效率下降
解决数据稀疏造成空间浪费的问题
- 采用数据压缩技术,如头文件压缩,lzw压缩方法(https://segmentfault.com/a/1190000011425787)等
解决不同维的访问效率差别大的问题
- 将一个n维数组分成多个小的n为数据块(chunk)的方法
多维分析操作
- 建立在关系聚合操作上的一些复合操作
- 基本的分析是求聚集函数
聚集Aggregation
- 分布型:sum,count,max,min
- 代数型:avg
- 整体型:median,rank
OLAP多维分析方法:
OLAP的四种基本分析手段:多维视图
- 切片和切块(Slice and Dice) :在确定某些维数据的确定情况下对其他维进行观察, 在多维数据结构中,按二维进行切片,按三维进行切块,可得到所需要的数据。如在“城 市、时间、漫游”三维立方体中进行切块和切片,可得到各城市、各漫游类型的费用情 况
- 钻取(Drill):在一个维内沿着从高到低或者从低到高的方向考察数据,钻取包含向下 钻取(Drill-down)和向上钻取(Drill-up) / 上卷(Roll-up)操作, 钻取的深度 与维所划分的层次相对应。
- 旋转(Rotate) / 转轴(Pivot):通过旋转可以得到不同视角的数据,按不同的顺序组织维, 对结果进行考察
- 穿透(Drill-through):是指从多维数据库向关系型数据库读取明细数据
目前主流的大数据OLAP引擎
Impala, kylin,druid,presto,clickhouse
OLAP引擎选型考量:
- SQL查询度和OLAP操作支持度
- 时效性
- 生态和工具完备性
- 查询性能和写入性能