關於命名規範、維度明細層及集市彙總層設計的思考

SN做倉庫項目,根據自己負責的內容及SN的一些規範等,將這一階段的模型工作進行一個思考和總結。

一、倉庫字段、表等命名的規範

數據倉庫建設目的,其中重要的一個方面就是建立統一的全局視圖;表、字段等的規範命名就是倉庫全局視圖一個方面的體現。

在進行規範命名的時候,一般會根據《數據建模字段簡寫命名規範.xlsx》來進行。《規範》中有的詞組,對應的表及字段按照《規範》進行命名;有的字段詞組在《規範》中沒有,則需要在《規範》中新加、完善和補充。新增加的《規範》簡寫,只是對應於某些字段內的單個詞組上,而非針對整個字段。對於一些常用的命名,如金額-AMT、數據-NUM、非/-UN、代碼-CD、標識-FLAG等;對於一些業務專業性的,根據業務含義及其可能固有的簡寫進行參考命名。所以,命名可分爲常用名詞縮寫、DW專有名詞縮寫及業務相關專有名詞縮寫三部分。

在數據倉庫建設過程中,可以考慮專門人員負責字段、表等命名的專業化、規範化工作;如同代碼統一工作一樣,專人負責。

二、維度模型明細的層建模設計

在數據倉庫整合層與DM層之間,一般會有一個過渡層,叫做維度標籤明細層。這一層的作用是在數據整合層與DM層之間起一個過濾作用,使範式建模的數據到維度模型之前有一個緩衝。這一層主要是根據整合層的數據和下游報表的業務需求,進行類維度建模。

維度標籤明細層,主要包含如下一些部分,最細粒度的主鍵、下游報表需要展現的維度、數量金額型的度量、報表指標等的一些彙總性指標(打標籤)、報表篩選時用到的過濾字段及下鑽到明細要展示的屬性字段等等。包含這些字段列表的明細層事實表,結合對應的維度表滿足下游報表的數據需求。

彙總性的一些指標,並不是一個指標對應一個標籤;而是儘可能將其分的更細。如果一些指標可以分成兩部分,那麼這個指標就對應用兩個標籤標記。這樣做的好處是,便於維度標籤明細層的擴展,便於整個模型的擴展。因爲這一層設計的目的不是在於支持一張報表,而是支持某一類報表。對於以後上的一些報表或應用中,有可能只用到這個指標的一部分,那麼做一個總體性的標籤就無法使用。

在這一層中,對於可以由本層計算得到的冗餘性指標字段,也不需要打標籤。可以在集市彙總層直接根據其他字段計算得到。

上面提到,維度標籤明細層的設計是爲某一類報表,而非針對某一個報表。就是將同一業務主題下,相同的粒度及所有可能用到的維度進行整合設計。

考慮到數據的性能,標籤值應該用(01)表示,而不能將不符便條件的置空。

三、集市高度彙總層設計

集市高度彙總層是從維度標籤明細層根據具體的報表進行彙總而得;集市高度彙總層一個彙總模型對應一個報表。

集市高度彙總層模型主要包含如下內容:對應的維度、對應的指標及彙總時可能用到的過濾條件字段報表的下鑽明細字段,應從維度標籤明細層取數據

對於計算同比、環比、清理率等問題,因爲要同歷史的快照進行比對,所以要根據具體的情況在集市彙總層添加一些月度、年度等彙總快照表。

四、其他的一些思考

其實,在維度度明細層和高度彙總層之間也可以加一箇中度彙總層,用來計算從維度明細層到集市彙總層不能一次計算出的複合指標,其目的也就是用空間換取性能。模型架構從來就沒有定論,偉大如Bill InmonRalph Kimball者,都有針鋒相對的結論;所以,如何設計、採用幾層架構,從來就是一個見仁見智的問題,要結合具體情況。模型設計師需要有強大的理解能力、全局掌控能力及靈活的分析能力,每一點都很重要。

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