维度建模简介
维度建模的理论由 Ralph Kimball 提出,他提出将数据仓库中的表划分为事实表和维度表两种类型。维度建模是面向分析场景而生,针对分析场景构建数仓模型;重点关注快速、灵活的解决分析需求,同时能够提供大规模数据的快速响应性能。
“事实表”,用来存储事实的度量(measure)及指向各个维的外键值。“维度表”,简称维表,用来保存该维的元数据,即维的描述信息,包括维的层次及成员类别等。简单的说,维度表就是你观察该事物的角度,事实表就是你要关注的内容。
维度建模的三种模式
星型模型
星型模型(Star Schema)由一个中心主题表和多个维度表组成,中心主题表也称为事实表,维度表用来描述事实表的属性。星型模型的中心思想是:所有的维度属性都应该直接连接到事实表,而不应该通过其他维度表来连接。
雪花模型
雪花模型(Snowflake Schema)是在星型模型基础上将维表再次扩展,每个维表可以继续向外连接多个子维表。
星座模型
星座模型(Fact Constellations Schema)也是星型模型的扩展,存在多个事实表且可共用同一个维表。这种模型往往应用于数据关系比星型模型和雪花模型更复杂的场合。事实星座模型需要多个事实表共享维度表,因而可以视为星形模型的集合,故亦被称为星系模型。