適合!
在資料倉庫建模領域中,有兩大主流建模思想,ER建模和維度建模(當然還有data vault、anchor等等)。
ER建模的核心思想是從全企業的高度去設計三正規化模型,用實體關係模型描述企業業務。出發點是整合各系統資料,為資料分析決策服務,但不直接用於分析決策。
維度建模是從分析決策的需求出發構建模型,重點關注如何快速完成需求分析。典型代表是星形模型,以及一些特殊場景下使用雪花模型。
光從三正規化模型和星形模型的區別其實就可以看出,更適合hive的就是星形模型。
hive一般使用的引擎就是mapreduce,mapreduce的設計初衷是海里資料的批次處理,在複雜的聯表查詢方面,反而可能比不上傳統資料庫,尤其是mpp架構的傳統資料庫。三正規化模型勢必會存在很多分散的表,在做資料分析或者報表加工的時候就必須要多表連線,大大降低了使用效率。
當然使用hive做為資料倉庫時,也不能完全遵從維度建模的思想。我們得在維度建模思想上適當做一些改進。
比如我們可以使用星形模型完全替代雪花模型,雪花模型除了節約一部分儲存外,在hive中沒有其他優勢。
同時我們在星形模型的事實表中可以冗餘更多常用的維度資訊,摒棄代理鍵使用快照方式處理緩慢變化維等。
因為目前階段,hdfs的儲存成本是明顯低於計算資源成本,我們可以採取用空間換時間的策略,從而提升下游使用的易用性和使用效能的提升。
所以說,維度建模是適合hive的。
適合!
在資料倉庫建模領域中,有兩大主流建模思想,ER建模和維度建模(當然還有data vault、anchor等等)。
ER建模的核心思想是從全企業的高度去設計三正規化模型,用實體關係模型描述企業業務。出發點是整合各系統資料,為資料分析決策服務,但不直接用於分析決策。
維度建模是從分析決策的需求出發構建模型,重點關注如何快速完成需求分析。典型代表是星形模型,以及一些特殊場景下使用雪花模型。
光從三正規化模型和星形模型的區別其實就可以看出,更適合hive的就是星形模型。
hive一般使用的引擎就是mapreduce,mapreduce的設計初衷是海里資料的批次處理,在複雜的聯表查詢方面,反而可能比不上傳統資料庫,尤其是mpp架構的傳統資料庫。三正規化模型勢必會存在很多分散的表,在做資料分析或者報表加工的時候就必須要多表連線,大大降低了使用效率。
當然使用hive做為資料倉庫時,也不能完全遵從維度建模的思想。我們得在維度建模思想上適當做一些改進。
比如我們可以使用星形模型完全替代雪花模型,雪花模型除了節約一部分儲存外,在hive中沒有其他優勢。
同時我們在星形模型的事實表中可以冗餘更多常用的維度資訊,摒棄代理鍵使用快照方式處理緩慢變化維等。
因為目前階段,hdfs的儲存成本是明顯低於計算資源成本,我們可以採取用空間換時間的策略,從而提升下游使用的易用性和使用效能的提升。
所以說,維度建模是適合hive的。