维度建模
维度模型简介
维度建模被广泛接受为数据分析的首选技术,因为它同时满足了两个需求:
1.向用户交付可以理解的数据
2.提供快速查询的性能
维度建模 | 实体建模 | 第三范式(3NF)建模 |
---|---|---|
适合表连接以及聚合计算的查询请求;易用,易理解,查询效率高,更适合作为分析性应用(OLAP、BI)的基础 | 抽象客观世界的方法,局限于业务建模和领域概念建模 | 适用于频繁的update、insert这种(事务型应用);规范化模型过于复杂,无法得到直观的、高性能的数据检索 |
维度建模的两种模型:
- 星型模型
维度建模是数据仓库建设中的一种数据建模方法。Kimball最先提出这一概念。其最简单的描述就是,按照事实表,维度表来构建数据仓库,数据集市。这种方法被人广泛知晓的名字就是星型模型(Star-schema)。
- 雪花模型
当星型模型的维度表进一步层次化,就形成了雪花模型。
维度建模的优点
- 直观
- 围绕业务模型
- 反应业务问题
- 不需要抽象处理
维度建模的缺点
- 由于在构建星型模式之前需要进行大量的数据预处理,因此会导致大量的数据预处理工作。
- 当业务发生变化,需要重新进行维度的定义时,往往需要重新进行维度数据的预处理。而在这些预处理过程中,会导致大量的数据冗余。
- 如果只是依靠单纯的维度建模,不能保证数据来源的一致性和准确性。
- 在数据仓库的底层,不是特别适用于维度建模的方法。
维度建模的基本原则
- 将详细的原子数据载入到维度结构中
- 围绕业务流程构建维度模型
- 确保每个事实表都有一个与之关联的日期维度表
- 确保每个事实表中的事实具有相同的粒度或同级的详细程度
- 避免事实表中出现多对多的关系
- 避免维度表中出现多对一的关系
- 避免在事实表中存储神秘的编码字段或庞大的描述符字段
- 确保维度表使用了代理键(无业务意义的主键)
- 创建一致的维度集成整个企业的数据
- 不断平衡需求和现实,提供DW/BI解决方案
维度表技术基础
维度表结构
维度表是在事实各维度上所建立的表。维度表可以看做是用户来分析数据的窗口。