OLAP与结构化数据分析(随笔)

文章目录

一、OLAP(联机分析处理)

OLAP(联机分析处理)是在以星型模型建模的数据仓库上进行多维分析,它一般在业务数据库之外建立数据仓库系统,它从业务数据库抽取转换、和装载数据。(ETL)

OLTP:响应时间比较短。

星型模型

星型模型包含事实表维表,其中事实表主要记录了具体的业务交易,维表记录分类信息

联机分析处理的主要操作包括

  1. 下钻
  2. 上卷
  3. 切片
  4. 切块
  5. 旋转

PS:下钻和上卷改变的是维的层次,变换分析的粒度。

上卷是在某个分析维度上,将低层次细节数据概况到高层次汇总数据

下钻是在某个分析维度上,将高层次汇总数据深入到低细节数据进行观察。

切片切块是选定一部分维度值,然后查看度量数据。若剩余维度只有两个则称为切片,若剩余维度三个或三个以上称为切块

旋转操作是变换维的方向

例:时间维度是月份

上卷操作就是把该操作上升到年度来分析。

下钻操作就是把分析的粒度变成日期。

联机分析处理的三种实现技术

按照数据存储格式分类,OLAP系统可以分为多维OLAP(MOLAP)、关系OLAP(ROLAP)、混合OLAP(HOLAP)

MOLAP

将OLAP分析所用到的多维数据,物理存储为多维数组的形式,形成“立方体”结构

MOLAP

  1. 优点:性能高
  2. 缺点:占用大量的空间
ROLAP

将分析用的多维数据存储在关系数据库中,通过把OLAP操作表达成SQL查询的形式。

ROLAP优点:采用关系数据库保存原始明细数据,占用空间有限,但是由于每个OLAP操作都被转换成一个SQL查询重新执行,性能受到影响。

HOLAP

HOLAP把MOLAP和ROLAP两种结构的优点结合起来。细节数据保存在关系型数据的事实表中,但是聚合后的数据保存在“立方体”中这种方式具有更好的灵活性。HOLAP的查询效率比ROLAP高,但低于MOLAP。

操作型数据处理 分析型数据处理
数据模型 实体–关系 星型模型/雪花模型
操作的记录数量 少量记录 大量记录
数据是否可以更新 数据可以更新,删除 一般只对数据进行追加、不删除、极少更新
响应时间要求 妙级 分钟级,小时级
目的 支持业务运行 支持决策需求

二、数据仓库

数据仓库一般不对应到某个厂商的具体产品,而是指一种面向分析的数据存储方案

数据仓库的特点

  1. 面向主题的
  2. 集成的
  3. 非易失的
  4. 时变的

一种数据集合,用以支持管理决策

数据仓库上的分析任务

  1. 简单分析
    1. 利用数据生成报表以及进行多维分析
  2. 复杂分析
    1. 数据上运行复杂的统计方法,机器学习和数据挖掘算法从而发现不少那么显然的规律,发现新的知识。

SSB 这个测试基准包含

  1. 数据模型
  2. 工作负载
  3. 性能指标

三、高性能OLAP系统的关键技术

1.列存储技术

行存储
  1. 一行一行存放数据
  2. 适合存取少量数据行
列存储
  1. 一列一列存储数据
  2. 适合对数据进行分析,存取少量数据列
  3. 可以使用数据压缩技术,减少磁盘空间占用和处理这些属性列的时候的I/O操作开销,从而加快数据处理过程。

2.位图索引技术

高基数字段的位图索引

3.内存数据库技术

  1. 存储技术 :行存储、列存储、PAX存储
  2. 索引技术 :可以帮助我们进行快速定位,避免全表扫描
  3. 查询优化 :对于内存数据库来讲查询优化的重点是如何利用多核CPU,以及众核GPU实现关键数据操作的快速处理,比如选择、投影、连接、聚集。
  4. 并发控制 :并发控制是在多个事务并发执行的情况下,保证数据库状态正确的技术手段。并发控制有两大类算法,分别是基于加锁的并发控制和基于多版本管理的并发控制。
  5. 恢复技术

4.MPP并行数据库

MPP并行数据库,利用专用的数据库集群的多个节点的并行处理能力,提高数据库的查询处理性能。

架构
  1. 共享内存架构
  2. 共享磁盘架构
  3. 无共享架构
数据划分方法

数据的划分成为分片。

主要方法

  1. Range:把数据库表的记录按照某个字段的值所属的范围进行分片
  2. Hash:对于数据库表中的记录,根据其某一个或者某几个属性列的取值,计算一个Hash值,对应到具体的分区,完成数据分区。
查询处理
  1. 单表查询及其处理(子查询与结果合并)
  2. 多表连接查询及其处理(Hash连接)

5.数据库查询执行模式

  1. 一次处理一个元组
  2. 一次处理一块
  3. 一次处理一列
  4. 向量化查询处理模式

6.分布式事务处理

涉及多个节点的事务称为分布式事务。对涉及多个节点的分布式事务进行协调的协议有两阶段提交协议、三阶段提交协议等

两阶段提交协议

两阶段提交协议分为两个阶段,分别是准备阶段、提交阶段。需要一个事务协调者协调不同事务参与者之前的关系,是否提交还是回滚事务操作。

缺点
  1. 同步阻塞
  2. 单点故障
  3. 数据不一致
三阶段提交协议

三阶段提交协议是两阶段提交协议的改进版

三阶段提交协议的重要改动

  1. 引入超时机制
  2. 三阶段提交协议把两阶段提交协议的准备阶段一分为二。

三阶段提交协议总共有三个阶段,分别是CanCommit、PreComment,DoCommit三个阶段。

总结

无论是两阶段提交协议,还是三阶段提交协议,都无法彻底解决分布式系统的一致性问题。

03-25 01:26