數據倉庫星型模型VS雪花模型

在多維分析的商業智能解決方案中,根據事實表和維度表的關係,可將常見的模型分爲星型模型雪花模型。在設計邏輯型數據的模型的時候,就應考慮數據是按照星型模型還是雪花模型進行組織。

星型模型

當所有維表都直接連接到事實表上時,整個圖解就像星星一樣,故將該模型稱爲星型模型。

星型架構是一種非正規化的結構,多維數據集的每一個維度都直接與事實表相連接,不存在漸變維度,是反範式的,所以數據有一定的冗餘。其模型示例如下圖所示

 

雪花模型

當有一個或多個維表沒有直接連接到事實表上,而是通過其他維表連接到事實表上時,其圖解就像多個雪花連接在一起,故稱雪花模型。

雪花模型是對星型模型的擴展。它對星型模型的維表進一步層次化,原有的各維表可能被擴展爲小的事實表,形成一些局部的「層次 」 區域,這些被分解的表都連接到主維度表而不是事實表。它的優點是 : 通過最大限度地減少數據存儲量以及聯合較小的維表來改善查詢性能。雪花型結構去除了數據冗餘。 其模型示例如下圖所示

 

差異對比

1. 從數據庫數據優化來看

雪花模型使用的是規範化數據,也就是說數據在數據庫內部是組織好的,以便消除冗餘,因此它能夠有效地減少數據量。通過引用完整性,其業務層級和維度都將存儲在數據模型之中。

相比較而言,星形模型實用的是反規範化數據。在星形模型中,維度直接指的是事實表,業務層級不會通過維度之間的參照完整性來部署。

2. 從業務模型來看

在雪花模型中,數據模型的業務層級是由一個不同維度表主鍵-外鍵的關係來代表的。而在星形模型中,所有必要的維度表在事實表中都只擁有外鍵。

3. 從性能上來看

雪花模型在維度表、事實表之間的連接很多,因此性能方面會比較低。而星形模型的連接就少的多,雖然增加了數據冗餘,但減少了Join連接的次數,性能反而會好一些。

4. 從數據的ETL來看

雪花模型加載數據集市,因此ETL操作在設計上更加複雜,而且由於附屬模型的限制,不能並行化。

星形模型加載維度表,不需要再維度之間添加附屬模型,因此ETL就相對簡單,而且可以實現高度的並行化。

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