Contents

OLAP概述

Contents

OLAP

OLAP vs OLTP 的差异

OLAP定义:联机分析处理,数据访问和分析,多维数据,交互性,深入观察,决策。

OLAP 的目标:查询和报表

相关概念:

  1. 维度
  2. 维的层次
  3. 维的成员
  4. 多维数组
  5. 度量

基本特征:

  1. 快速性:秒级
  2. 可分析性:统计
  3. 多维性
  4. 信息性

多维数据结构:

  1. 数据超立方体:三维或更多的维数,彼此垂直

分类:

按存储类型:

  1. MOLAP:多维
  2. ROLAP:关系型,星形模型和雪花模型
  3. HOLAP:混合

ROLAP的优势:

  1. 没有大小限制(不需要额外存储空间,键关联)
  2. 关系数据库的技术沿用
  3. SQL查询
  4. 优化多,提高查询性能

缺点:

  1. 响应速度差
  2. 不支持预计算
  3. SQL无法完成部分计算
  4. 内存需求大

molap的优势:

  1. 性能好,响应快,不需要关联,主外键连接
  2. 专为olap设计,可以考虑olap的一些问题

缺点:

  1. 增加系统复杂度,增加系统培训与维护成本
  2. 需要进行预计算,导致数据急剧膨胀
  3. 支持维的动态变化比较困难

ROLAP架构

MOLAP架构

HOLAP架构

OLAP引擎有哪些?是属于那种类型的OLAP?

ROLAP: hive, presto

MOLAP: kylin,

OLAP多维技术分析

多维数据模型

实现:

  1. 基于关系数据库
    1. 星型模型
    2. 雪花模型
    3. 事实群模型
  2. 基于多维数组

多维数组存储

  • 关系存储:扩展性好,不存在稀疏问题,访问速度不够快
  • 多维数组存储:访问速度快,有大量无效的值,存储效率下降

解决数据稀疏造成空间浪费的问题

解决不同维的访问效率差别大的问题

  • 将一个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操作支持度
  • 时效性
  • 生态和工具完备性
  • 查询性能和写入性能