開發與維運

數據中臺模型設計系列(一):維度建模初探

前言:更多關於數智化轉型、數據中臺內容可掃碼加群一起探討
668d7f5941782665ed1f41529db3eb677f4b9379.png
阿里雲數據中臺官網 https://dp.alibaba.com/index


1、與幾個概念的關係

操作型業務系統
對於這個概念大家都不陌生。企業業務賴以運轉的交易系統就屬於操作型業務系統。因此它是為了保障業務正常運轉,能夠更快的處理事務。

但是因為它是針對某一特定的意圖(例如滿足交易業務),它不需要承諾與其他業務系統共享公共數據。因此就出現了適合於企業中交叉應用的ERP、主數據系統。當然對於有建設業務中臺的企業來說,基於微服務架構的各個服務中心,能更好的提供可複用統一的公共數據。

不管是面向業務的業務系統、經過數據統一後的主數據系統或者基於微服務架構的服務中心的數據,都是作為數據中臺的數據輸入源頭。我們通過批量同步、歸檔日誌採集等方式,能將數據採集進數據中臺,作為ODS層原始數據的一部分。

ETL
英文Extract-Transform-Load的縮寫,用來描述將數據從來源端經過抽取(extract)、轉換(transform)、加載(load)至目的端的過程。在ODS層的原始數據,需要通過加工處理後,才能進入到構建好的數據模型中。

在模型設計時,需要考慮ETL加工流程,根據邏輯判斷,做模型的合理設計。同樣對於下游使用數據模型的ETL元數據,也是作為模型設計的輸入,可基於下游應用方式做模型的橫向和縱向的拆分設計,這就是“元數據驅動模型設計”的理論來源。

因此,無法理解數據開發的模型設計師是不合格的。

數據應用
數據中臺提供多種數據應用的形式,包括數據報表、智能數據產品等。將統一彙總加工後的數據或者明細原子數據提供給數據應用,為業務提供數據支撐。

更加合理的數據模型設計,能夠給更寬泛的應用提供數據支撐,也能夠讓業務方更準確無疑義的使用好數據。

2、幾種企業常見的建設現狀

煙囪式
也許大家都不願意承認,但是絕大部分的企業當前是沒有統一、標準、公共、全局的模型設計的,而僅僅是把數據同步上來,然後基於業務需求做煙囪式的數據開發。這種方式也許從短期來看是效率最高的,但是從長期看,不僅僅造成計算存儲資源的極大浪費、沒有統一可用的數據、大量的重複性的工作。企業的數據就像一團亂麻,根本無法管理。

三範式+數據集市

一些傳統大型企業,由於歷史原因,原子數倉中以三範式的模型設計方式構建,在各個應用的數據集市中以維度建模方式構建。通過這種方式,在原子數據設計過程中,需要投入較大的資源。

對於業務來說,三範式模型太複雜,用戶難以理解和檢索。並且對於業務頻繁變化的企業,模型的維護成本極高。

企業級維度模型

基於企業全局的角度去構建業務總線矩陣,在此基礎上完成維度模型的設計,是當前眾多企業選擇的方向。從眾多互聯網企業的數據中臺實踐經驗來看,這也是一個絕佳的各因素平衡後的選擇。

後面,我們將從各個角度來思考如何基於維度模型構建企業級數據中臺。

3、維度建模初探

優勢
在數據中臺建設經驗中,企業級維度模型設計從理解性、擴展性、高性能上都是更適應當前的技術和業務環境的。

首先由於計算和存儲成本逐步下降,模型更重要的變成了易於理解,當易用性放在模型設計的重要位置時,維度模型可理解的優勢就顯現出來了,維度建模一直就是以業務的視角來描述數據。

另外,當新的業務出現時,新的模型不會對已有模型形成衝擊,可以無影響的產出新的模型數據。

維度建模會設計部分數據的冗餘,通過冗餘換來數據檢索的高性能。對於數據量極具膨脹的今天,高性能給用戶帶來了高價值。

事實表

所謂的事實表,就是企業的業務過程事件的度量信息。例如對於支付這個業務過程來說,需要度量支付的商品數、金額等度量。因此,企業的業務過程數據以事實表的形式在模型中呈現出來。

事實表每行都對應了一個度量事件,每行數據是一個特定級別的細節數據。事實表中每個度量都必須是相同的粒度級別。

事實表中的度量的可加性也至關重要,因為業務方往往需要將事實表的數據基於某些維度進行彙總,在度量上需要能夠做彙總累加。

事實表還是稀疏的,它僅僅會將發生的業務過程數據放入其中。
**
維度表**

維度表是事實表不可或缺的組成成分,它描述了事實表業務過程度量的環境。用於描述“誰、什麼、哪裡、何時、如何、為什麼”有關的事件。

維度屬性是作為查詢約束、分組、標識的主要來源,因此它的好壞直接決定了數據的可分析性的差異。維度屬性需要是可理解的,因此需要儘量避免“0,1”之類的代碼,將代碼翻譯成更易理解的字符避免業務的誤解。

同樣,會有一些數值型的可作為維度屬性。例如:也許有人會問商品標價適合在事實表還是維度表中?

當用於計算度量時,它應該存在於事實表中;但是當它用於做約束、分組、標識分析時,則需要存在於維度表中。在維度表中,我們往往會把連續的數據換成離散的數值存儲,例如:將標價變為價格區間段。這是要根據對業務的理解做進一步設計的。

雪花模型與星型模型

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

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

雪花模型是對星型模型的擴展。

星型模型是一種非正規化的結構,多維數據集的每一個維度都直接與事實表相連,不存在漸變維度,所以數據有一定冗餘。因為有冗餘,所以很多統計不需要做外部的關聯查詢,因此一般情況下效率比雪花模型高。

但是從可理解性上看,雪花模型是更容易讓業務理解的。因為業務可以從模型上看出維度與維度之間的關係。

因此如何平衡查詢效率和業務理解?我們在後面的文章中再細細道來。

**總線矩陣
**
總線矩陣,維護的是企業的各個業務過程與一致性維度的關係。是以企業的高度實現的頂層設計。它的存在對於數據中臺項目至關重要。

如果數據中臺的模型設計就是一本書,那麼總線矩陣就是這本書的目錄,能從整體上對每個模型有統一的定義。

從項目協調上看,總線矩陣在大型項目中起到舉足輕重的地位,整個項目組都能基於這個目錄清晰的明白自己在做什麼,別人已經做了什麼,極大程度上的避免了信息溝通不暢導致的重複定義。

從項目管理上看,也可以基於總線矩陣對模型設計和開發進行有效的優先級排期。

最後,總線矩陣是共同業務人員和技術人員的橋樑,通過總線矩陣在項目溝通中達成一致的語言。

結語

通過這篇文章,初淺的對數據中臺模型設計發表了一些觀點。
在後面的章節中,我們將繼續圍繞模型設計的技術細節、結合行業的模型設計案例,和數據同仁們做進一步的分享和交流 。

數據中臺是企業數智化的新基建,阿里巴巴認為數據中臺是集方法論、工具、組織於一體的,“快”、“準”、“全”、“統”、“通”的智能大數據體系。目前正通過阿里雲數據中臺解決方案對外輸出,包括零售金融互聯網政務等領域,其中核心產品有:

官方站點:
數據中臺官網 https://dp.alibaba.com
數據中臺釘釘群二維碼2.jpg

Leave a Reply

Your email address will not be published. Required fields are marked *