数据仓库星型模型VS雪花模型

在多维分析的商业智能解决方案中,根据事实表和维度表的关系,可将常见的模型分为星型模型雪花模型。在设计逻辑型数据的模型的时候,就应考虑数据是按照星型模型还是雪花模型进行组织。

星型模型

当所有维表都直接连接到事实表上时,整个图解就像星星一样,故将该模型称为星型模型。

星型架构是一种非正规化的结构,多维数据集的每一个维度都直接与事实表相连接,不存在渐变维度,是反范式的,所以数据有一定的冗余。其模型示例如下图所示

 

雪花模型

当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。

雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的「层次 」 区域,这些被分解的表都连接到主维度表而不是事实表。它的优点是 : 通过最大限度地减少数据存储量以及联合较小的维表来改善查询性能。雪花型结构去除了数据冗余。 其模型示例如下图所示

 

差异对比

1. 从数据库数据优化来看

雪花模型使用的是规范化数据,也就是说数据在数据库内部是组织好的,以便消除冗余,因此它能够有效地减少数据量。通过引用完整性,其业务层级和维度都将存储在数据模型之中。

相比较而言,星形模型实用的是反规范化数据。在星形模型中,维度直接指的是事实表,业务层级不会通过维度之间的参照完整性来部署。

2. 从业务模型来看

在雪花模型中,数据模型的业务层级是由一个不同维度表主键-外键的关系来代表的。而在星形模型中,所有必要的维度表在事实表中都只拥有外键。

3. 从性能上来看

雪花模型在维度表、事实表之间的连接很多,因此性能方面会比较低。而星形模型的连接就少的多,虽然增加了数据冗余,但减少了Join连接的次数,性能反而会好一些。

4. 从数据的ETL来看

雪花模型加载数据集市,因此ETL操作在设计上更加复杂,而且由于附属模型的限制,不能并行化。

星形模型加载维度表,不需要再维度之间添加附属模型,因此ETL就相对简单,而且可以实现高度的并行化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章