數據倉庫的多維數據模型

爲了滿足用戶從多角度多層次進行數據查詢和分析的需要,多維數據模型建立了的基於事實和維的數據庫模型,其基本的應用是爲了實現OLAP(Online Analytical Processing)。

當然,通過多維數據模型的數據展示、查詢和獲取就是其作用的展現,但其真的作用的實現在於,通過數據倉庫,可以根據不同的數據需求建立起各類多維模型,並組成數據集市開放給不同的用戶羣體使用,也就是根據需求定製各類數據商品,把它們擺放在數據集市中,供不同的數據消費者進行採購。

多維數據模型實例

在看實例前,這裏需要先了解兩個概念:事實表和維表。事實表是用來記錄具體事件的,包含了每個事件的具體要素,以及具體發生的事情;維表則是對事實表中事件的要素的描述信息。比如一個事件會包含時間、地點、人物、事件,事實表記錄了整個事件的信息,但對時間、地點和人物等要素只記錄了一些關鍵標記,比如事件的主角叫“Michael”,那麼Michael到底“長什麼樣”,就需要到相應的維表裏面去查詢“Michael”的具體描述信息了。基於事實表和維表就可以構建出多種多維模型,包括星形模型、雪花模型和星座模型。這裏不再展開了,解釋概念真的很麻煩,而且基於我的理解的描述不一定所有人都能明白,還是直接上實例吧:


這是一個最簡單的星形模型的實例。事實表裏面主要包含兩方面的信息:維和度量,維的具體描述信息記錄在維表,事實表中的維屬性只是一個關聯到維表的鍵,並不記錄具體信息;度量一般都會記錄事件的相應數值,比如這裏的產品的銷售數量、銷售額等。維表中的信息一般是可以分層的,比如時間維的年月日、地域維的省市縣等,這類分層的信息就是爲了滿足事實表中的度量可以在不同的粒度上完成聚合,比如2010年商品的銷售額,來自上海市的銷售額等。
還有一點需要注意的是,維表的信息更新頻率不高或者保持相對的穩定,例如一個已經建立的十年的時間維在短期是不需要更新的,地域維也是;但是事實表中的數據會不斷地更新或增加,因爲事件一直在不斷地發生,用戶在不斷地購買商品、接受服務。

多維數據模型的優缺點

這裏所說的多維模型是指基於關係數據庫的多維數據模型,其與傳統的關係模型相比有着自身的優缺點。
優點:
多維數據模型最大的優點就是其基於分析優化的數據組織和存儲模式。舉個簡單的例子,電子商務網站的操作數據庫中記錄的可能是某個時間點,某個用戶購買了某個商品,並寄送到某個具體的地址的這種記錄的集合,於是我們無法馬上獲取2010年的7月份到底有多少用戶購買了商品,或者2010年的7月份有多少的浙江省用戶購買了商品?但是在基於多維模型的基礎上,此類查詢就變得簡單了,只要在時間維上將數據聚合到2010年的7月份,同時在地域維上將數據聚合到浙江省的粒度就可以實現,這個就是OLAP的概念,之後會有相關的文章進行介紹。
缺點:
多維模型的缺點就是與關係模型相比其靈活性不夠,一旦模型構建就很難進行更改。比如一個訂單的事實,其中用戶可能購買了多種商品,包括了時間、用戶維和商品數量、總價等度量,對於關係模型而言如果我們進而需要區分訂單中包含了哪些商品,我們只需要另外再建一張表記錄訂單號和商品的對應關係即可,但在多維模型裏面一旦事實表構建起來後,我們無法將事實表中的一條訂單記錄再進行拆分,於是無法建立以一個新的維度——產品維,只能另外再建個以產品爲主題的事實表。
所以,在建立多維模型之前,我們一般會根據需求首先詳細的設計模型,應該包含哪些維和度量,應該讓數據保持在哪個粒度上才能滿足用戶的分析需求。

轉載自“網站數據分析->數據倉庫的多維數據模型”。

發佈了66 篇原創文章 · 獲贊 6 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章