本文的思维导图对数仓的基本知识进行总结。
1. 传统关系型数据库的建模理论
(1) 数据冗余
数据冗余利好查询分析效率,利空数据一致性。
数据越冗余越难保证数据一致性,分布式存储就是这样,但是维度退化到事实表后相当于预聚合了,所以查询分析效率高。
RDB偏向减少数据冗余,提升数据一致性。DW偏向适当冗余数据,提升查询分析效率
(2) 三范式
字段不可分、无部分依赖、无传递依赖,目的在于尽可能降低数据冗余,有利于数据一致性。
(3) ER实体关系模型
是一种逻辑模型设计,基于三范式。将事物抽象为 实体、属性、关系。
2. 数与维度建模
(1) 为什么传统关系型数据库不能适应数仓这一分析场景
RDB很难将数据转换成企业真正需要的决策信息:数据孤岛、缺历史数据、非主题角度。
(2) 数仓概念中蕴含的特性
面向主题、集成的、相对稳定、反应历史变化
(3) 数仓的发展历程
比尔•恩门(Bill Inmon)主张自上而下建设DW,DW符合第三范式。
拉尔夫•金博尔(Ralph Kimball)主张自下而上建设DW,认为数据仓库是企业内所有数据集市的集合,提出维度建模。
(4) 范式化建模和维度建模的比较
ER建模:面向应用,三范式,以消除数据冗余为目标的设计技术
维度建模:面向分析,反范式,为了提高查询性能可以增加数据冗余
(5) 在数仓中各种主要的表及概念
事实表 fact、维度表 dim
(6) 数仓建模三种类型
星型、雪花型、星座型
3. 数仓分层
(1) 数仓分层的优点
清晰的数据结构、减少重复开发、统一数据出口、简化问题
(2) 数仓一般分层架构及各层职责
ODS、DW、DM
DW:DWD、DWM、DWS
4. 数据库与数仓的区别
数据范围、数据变化、应用场景、处理数据量、设计理论、建模方式
上图
图片也可以从https://github.com/yanchenyun/wechat-docs下载。