OLAP与结构化数据分析(随笔)
文章目录
一、OLAP(联机分析处理)
OLAP(联机分析处理)是在以星型模型建模的数据仓库上进行多维分析,它一般在业务数据库之外建立数据仓库系统,它从业务数据库抽取、转换、和装载数据。(ETL)
OLTP:响应时间比较短。
星型模型
星型模型包含事实表和维表,其中事实表主要记录了具体的业务交易,维表记录分类信息。
联机分析处理的主要操作包括
- 下钻
- 上卷
- 切片
- 切块
- 旋转
PS:下钻和上卷改变的是维的层次,变换分析的粒度。
上卷是在某个分析维度上,将低层次的细节数据概况到高层次的汇总数据。
下钻是在某个分析维度上,将高层次的汇总数据深入到低细节数据进行观察。
切片和切块是选定一部分维度值,然后查看度量数据。若剩余维度只有两个则称为切片,若剩余维度有三个或三个以上称为切块。
旋转操作是变换维的方向。
例:时间维度是月份
上卷操作就是把该操作上升到年度来分析。
下钻操作就是把分析的粒度变成日期。
联机分析处理的三种实现技术
按照数据存储格式分类,OLAP系统可以分为多维OLAP(MOLAP)、关系OLAP(ROLAP)、混合OLAP(HOLAP)
MOLAP
将OLAP分析所用到的多维数据,物理存储为多维数组的形式,形成“立方体”结构
MOLAP
- 优点:性能高
- 缺点:占用大量的空间
ROLAP
将分析用的多维数据存储在关系数据库中,通过把OLAP操作表达成SQL查询的形式。
ROLAP优点:采用关系数据库保存原始明细数据,占用空间有限,但是由于每个OLAP操作都被转换成一个SQL查询重新执行,性能受到影响。
HOLAP
HOLAP把MOLAP和ROLAP两种结构的优点结合起来。细节数据保存在关系型数据的事实表中,但是聚合后的数据保存在“立方体”中这种方式具有更好的灵活性。HOLAP的查询效率比ROLAP高,但低于MOLAP。
操作型数据处理 | 分析型数据处理 | |
---|---|---|
数据模型 | 实体–关系 | 星型模型/雪花模型 |
操作的记录数量 | 少量记录 | 大量记录 |
数据是否可以更新 | 数据可以更新,删除 | 一般只对数据进行追加、不删除、极少更新 |
响应时间要求 | 妙级 | 分钟级,小时级 |
目的 | 支持业务运行 | 支持决策需求 |
二、数据仓库
数据仓库一般不对应到某个厂商的具体产品,而是指一种面向分析的数据存储方案。
数据仓库的特点
- 面向主题的
- 集成的
- 非易失的
- 时变的
一种数据集合,用以支持管理决策。
数据仓库上的分析任务
- 简单分析
- 利用数据生成报表以及进行多维分析
- 复杂分析
- 数据上运行复杂的统计方法,机器学习和数据挖掘算法从而发现不少那么显然的规律,发现新的知识。
SSB 这个测试基准包含
- 数据模型
- 工作负载
- 性能指标
三、高性能OLAP系统的关键技术
1.列存储技术
行存储
- 一行一行存放数据
- 适合存取少量数据行
列存储
- 一列一列存储数据
- 适合对数据进行分析,存取少量数据列
- 可以使用数据压缩技术,减少磁盘空间占用和处理这些属性列的时候的I/O操作开销,从而加快数据处理过程。
2.位图索引技术
高基数字段的位图索引
3.内存数据库技术
- 存储技术 :行存储、列存储、PAX存储
- 索引技术 :可以帮助我们进行快速定位,避免全表扫描
- 查询优化 :对于内存数据库来讲查询优化的重点是如何利用多核CPU,以及众核GPU实现关键数据操作的快速处理,比如选择、投影、连接、聚集。
- 并发控制 :并发控制是在多个事务并发执行的情况下,保证数据库状态正确的技术手段。并发控制有两大类算法,分别是基于加锁的并发控制和基于多版本管理的并发控制。
- 恢复技术
4.MPP并行数据库
MPP并行数据库,利用专用的数据库集群的多个节点的并行处理能力,提高数据库的查询处理性能。
架构
- 共享内存架构
- 共享磁盘架构
- 无共享架构
数据划分方法
数据的划分成为分片。
主要方法
- Range:把数据库表的记录按照某个字段的值所属的范围进行分片
- Hash:对于数据库表中的记录,根据其某一个或者某几个属性列的取值,计算一个Hash值,对应到具体的分区,完成数据分区。
查询处理
- 单表查询及其处理(子查询与结果合并)
- 多表连接查询及其处理(Hash连接)
5.数据库查询执行模式
- 一次处理一个元组
- 一次处理一块
- 一次处理一列
- 向量化查询处理模式
6.分布式事务处理
涉及多个节点的事务称为分布式事务。对涉及多个节点的分布式事务进行协调的协议有两阶段提交协议、三阶段提交协议等
两阶段提交协议
两阶段提交协议分为两个阶段,分别是准备阶段、提交阶段。需要一个事务协调者协调不同事务参与者之前的关系,是否提交还是回滚事务操作。
缺点
- 同步阻塞
- 单点故障
- 数据不一致
三阶段提交协议
三阶段提交协议是两阶段提交协议的改进版
三阶段提交协议的重要改动
- 引入超时机制
- 三阶段提交协议把两阶段提交协议的准备阶段一分为二。
三阶段提交协议总共有三个阶段,分别是CanCommit、PreComment,DoCommit三个阶段。
总结
无论是两阶段提交协议,还是三阶段提交协议,都无法彻底解决分布式系统的一致性问题。