五步構建企業級數據倉庫

第一步:確定主題
即確定數據分析或前端展現的主題(例:某年某月某地區的啤酒銷售情況)。主題要體現出某一方面的各分析角度(維度)和統計數值型數據(量度)之間的關係,確定主題時要綜合考慮。

第二步:確定量度
確定主題後,需要考慮分析的技術指標(例:年銷售額等等)。它們一般爲數據值型數據,其中有些度量值不可以彙總;些可以彙總起來,以便爲分析者提供有用的信息。量度是要統計的指標,必須事先選擇恰當,基於不同的量度可以進行復雜關鍵性指標(KPI)的設計和計算。

第三步:確定事實數據粒度
確定量度之後,需要考慮該量度的彙總情況和不同維度下量度的聚合情況.例如在業務系統中數據最小記錄到秒,而在將來分析需求中,時間只要精確到天就可以了,在ETL處理過程中,按天來彙總數據,些時數據倉庫中量度的粒度就是”天”。

如果不能確認將來的分析需求中是否要精確的秒,那麼,我們要遵循”最小粒度原則”,在數據倉庫中的事實表中保留每一秒的數據,從而在後續建立多維分析模型(CUBE)的時候,會對數據提前進行彙總,保障產生分析結果的效率。

第四步:確定維度
維度是分析的各個角度.例:我們希望按照時間,或者按照地區,或者按照產品進行分析。那麼這裏的時間,地區,產品就是相應的維度。基於不同的維度,可以看到各個量度彙總的情況,也可以基於所有的維度進行交叉分析。

維度的層次(Hierarchy)和級別(Level)。例:在時間維度上,按照”度-季度-月”形成了一個層次,其中”年” ,”季度” ,”月”成爲了這個層次的3個級別。我們可以將“產品大類-產品子類-產品”劃爲一個層次,其中包含“產品大類”、“產品子類”、“產品”三個級別。
我們可以將3個級別設置成一張數據表中的3個字段,比如時間維度;我們也可以使用三張表,分別保存產品大類,產品子類,產品三部分數據,比如產品維度。
建立維度表時要充分使用代理鍵.代理鍵是數據值型的ID號碼(每張表的第一個字段),它唯一標識了第一維度成員。在聚合時,數值型字段的匹配和比較,join效率高。同時代理鍵在緩慢變化維中,起到了對新數據與歷史數據的標識作用。

第五步:創建事實表
在確定好事實數據和維度後,將考慮加載事實表。業務系統的的一筆筆生產,交易記錄就是將要建立的事實表的原始數據。

我們的做法是將原始表與維度表進行關聯,生成事實表。關聯時有爲空的數據時(數據源髒),需要使用外連接,連接後將各維度的代理鍵取出放於事實表中,事實表除了各維度代理鍵外,還有各度量數據,不應該存在描述性信息。
事實表中的記錄條數據都比較多,要爲其設置複合主鍵各蛇引,以實現數據的完整性和基於數據倉庫的查詢性能優化。

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