1. OLTP 系统建模方式
- OLTP 在线事务处理系统,主要的操作是随机读写
- 为了保证事务的一致性,减少冗余,常使用关系模型
- 在关系模型中,使用第三范式规则来减少冗余
2. OLAP 在线联机分析
OLAP 系统主要操作是复杂分析查询;关注数据整合,以及分析,处理性能。
OLAP 根据数据的存储方式不同,又分为ROLAP,MOLAP,HOLAP
-
ROLAP (Relation OLAP 关系型OLAP) : 使用关系构建模型,存储系统一般为RDBMS
典型的建模方法有 ER 模型,维度模型,Data Value, Anchor 下面给一个图描述一下:
Data Value, Anchor 是ER 模型的一个衍生, 在一般的互联网行业通常使用维度模型,在维度模型中表被分为维度表和事实表。
维度是对事实的一种组织。维度一般包含分类,时间,地域。
维度模型主要分为星型模型,雪花模型,星座模型。维度模型建立之后方便对数据进行多维分析 这个三个模型的详细描述可以看这个文章 https://blog.csdn.net/u012957549/article/details/119429004另外其实还有宽表模型,它其实是维度模型的衍生,适合join 性能不佳的数据仓库产品。宽表模型将维度冗余到事实表中,形成宽表,以次减少join 操作。
-
MOLAP( Multidimensional OLAP,多维OLAP): 预先聚合计算,使用多维数组的形式保存数据结果,加快分析查询时间
MOLAP 将数据进行预计算,并将聚合结果存储到cube 模型中
cube模型已多维数据的方式,物化到存储系统中,加快后续查询
生成cube需要大量的时间,空间,维度预处理可能会导致数据膨胀。也会丧失灵活性常见的产品比如 kylin
-
HOLAP(Hybrid OLAP 混合架构OLAP) : ROLAP 和 MOLAP 两者的集成;比如低层关系型,高层多维矩阵型;查询效率高于ROLAP, 低于MOLAP.
ROLAP、MOLAP、HOLAP 对比
名称 | 描述 | 细节数据存储位置 | 聚合后的数据存储位置 |
---|---|---|---|
ROLAP(Relational OLAP) | 基于关系数据库的OLAP实现 | 关系型数据库 | 关系型数据库 |
MOLAP(Multidimensional OLAP) | 基于多维数据组织的OLAP实现 | 数据立方体 | 数据立方体 |
HOLAP(Hybrid OLAP) | 基于混合数据组织的OLAP实现 | 关系型数据库 | 数据立方体 |