OLAP和OLTP的本质区别
所属分类 DW
浏览量 487
OLTP Online Transaction Process
OLAP Online Analyze Process
HATP Hybird Analyze Transaction Process 例如TiDB、OceanBase等
OLTP数据库设计时使用实体-关系模型(Entity-Relationship Model,E-R Model ER模型)
ER模型的建模过程中有一个非常重要的规范化过程
规范化的目的在于通过一系列手段使得数据库设计符合数据规范化(Normal Form,NF)的原则
规范化是将数据表从低范式变成高范式的过程
一般情况下,OLTP中通常将数据规范化为第三范式(3NF)
第一范式 表中的每个属性都不可分割
第二范式 在第一范式的基础上,表中的所有属性都被主键的所有部分唯一确定
用户标签表
用户ID和标签ID组成主键,标签名称 只依赖于标签ID,用户所在地只依赖于用户ID
这两个属性都不依赖由用户ID和标签ID组成的主键,从而不满足第二范式
第三范式 在第二范式的基础上,表中的属性不依赖除主键外的其他属性
不满足第一范式的所有情况都被称为第零范式
高范式的表适合事务处理,而低范式的表适合分析处理。
数仓建模就是一个逆规范化的过程,将来自原始业务数据库的规范化数据还原为低范式的过程,从而用于快速分析。
宽表就是一个低范式的表,将所有相关联的列全部都整合到一张表中,这样就不需要进行join操作了
这样做的缺点就是数据冗余
维度建模
基于事实表和维度表构建数据仓库
三层数据架构
ODS 层 Operational Data Store,运营数据存储
DW 层 Data Warehouse,数据仓库
ADS 层 Application Data Service,应用数据服务
ODS层的数据结构和业务数据库保持一致,复制一份数据到ODS层,避免建模过程直接访问业务数据库
ODS层的数据 清洗、建模,最终生成DW层
低范式的数据作为DW层的数据,对外提供分析服务
DW层可再次细分
DWD Data Warehouse Details 数据仓库明细层
DWM Data Warehouse Middle 数据仓库中间层
DWS Data Warehouse Service 数据仓库服务层
ODS层的数据通过清洗后存储到DWD层,DWD层本质上是一个去除了脏数据的高质量的低范式的数据层
DWD层的数据通过聚合,形成宽表并保存到DWM层中
在某些场景中,可以对DWM层的数据进行业务重新聚合,以支持更复杂的业务,生成的数据保存到DWS层中
ADS层保存供业务使用的数据的结果,DW层的数据可以用于OLAP分析,
但分析过程通常比较慢,无法支撑实时的业务需求,因此需要引入ADS层作为缓存
ADS层是可选的, ClickHouse的高性能计算引擎可以在一定程度上取代ADS层
上一篇
下一篇
clickhouse MergeTree 写入与查询
clickhouse MergeTree 存储结构
clickhouse核心知识点
Clickhouse基本使用
花半开 酒微醺 凡事留余地
围棋知识点