概述
维度建模法(Dimensional Modeling)是数据仓库建模中比较常用的方法,最常见的数据模式包括 星型模式(Star Schema)、雪花模式(Snowflake Schema) 和 事实星座模式(Fact Constellation)或 星系模式(Galaxy Schema)。
在之前的文章中, 我们提到了两个关键的概念 事实表和维度表。简单来说,事实表就是用来存储主题的主干内容的,维度表就是用来存储事实的特性的。比如你分析产品的销售情况,你选择按照区域来分析,那么事实表中包含的就是产品的销售总量,相对应的维度表中包含的就是产品的区域信息,每个维度也可以有子维度,比如区域而言,可以有国家,城市这个子维度。
星型模式(Star Schema)
星型模式的核心是一个大的中心表(事实表),一组小的附属表(维表)。
雪花模式(Snowflake Schema)
雪花模式是星型模式的扩展,其中某些维表被规范化,进一步分解到附加表(维表)中。
我们可以看到地址表被进一步细分出了城市(city)维。supplier_type表被进一步细分出来supplier维。
事实星座模式(Fact Constellation)或 星系模式(Galaxy Schema)
数据仓库由多个主题构成,包含多个事实表,而维表是公共的,可以共享,这种模式可以看做星型模式的汇集,因而称作星系模式或者事实星座模式。
上图所示,事实星座模式包含两个事实表:sales和shipping,二者共享维表。
总结
星座模式是数据仓库最长使用的数据模式,尤其是企业级数据仓库(EDW)。这也是数据仓库区别于数据集市的一个典型的特征,从根本上而言,数据仓库数据模型的模式更多是为了避免冗余和数据复用,套用现成的模式,是设计数据仓库最合理的选择。当然大数据技术体系下,数据仓库数据模型的设计,还是一个盲点,探索中。