1. 程式人生 > 其它 >數倉建模—資料整合

數倉建模—資料整合

資料倉庫系列文章(持續更新)

  1. 數倉架構發展史
  2. 數倉建模方法論
  3. 數倉建模分層理論
  4. 數倉建模—寬表的設計
  5. 數倉建模—指標體系
  6. 資料倉庫之拉鍊表
  7. 數倉—資料整合
  8. 數倉—資料集市
  9. 數倉—商業智慧系統
  10. 數倉—埋點設計與管理
  11. 數倉—ID Mapping
  12. 數倉—OneID
  13. 數倉—AARRR海盜模型
  14. 數倉—匯流排矩陣
  15. 數倉—資料安全
  16. 數倉—資料質量
  17. 數倉—數倉建模和業務建模

資料集市(DM)

這裡我們先回憶一下資料倉庫的定義, 資料倉庫(Data Warehouse) 是一個面向主題的(Subject Oriented) 、整合的( Integrate ) 、相對穩定的(Non -Volatile ) 、反映歷史變化( Time Variant) 的資料集合用於支援管理決策。更多關於資料倉庫的可以參考

數倉架構發展史,而且前面我們也介紹了大量關於數倉建模這一塊的內容,具體可以參考我們的專欄數倉建模方法論

今天我們介紹一個在數倉中非常常見的概念——資料集市,數倉定義中的五個特性都值得一一仔細品味,隨著你對數倉的理解加深,你對這個五個特性的理解也會更加全面。

首先資料倉庫用於支援決策,面向分析型資料處理,它不同於企業現有的操作型資料庫;其次,資料倉庫是對多個異構的資料來源有效整合,整合後按照主題進行了重組,幷包含歷史資料並且存放在資料倉庫中的資料一般不再修改。

什麼是資料集市(DM)

這裡有一個詞是主題,那就是我們整合後的資料,又按照了主題進行了劃分,而面向主題劃分出來的部分就是資料集市,也就是說資料集市是資料倉庫的一個子集或者說是整合後的子集。

資料集市通常是面向部門的或者是部門級業務,或者是面向部門的主題的,舉個例子例如在金融領域可能會有結算部門的資料集市、風控部部門資料集市、市場部門的資料集市、運營部門的資料集市,這裡的特點就是面向部門的,但是對於有的部門它的組織結構可能比較大,所以它所負責的業務線也有多個,這個時候就會出現,資料集市是面向部門的子業務,總之一句話,資料集市是面向主題的,一般公司的主題就是部門或者業務線。

這裡還有一點要強調資料集市是作為我們數倉的一層,對外提供資料服務,當然提供服務的方式是有很多種的,但是最終我們是將資料集市層的資料提供出去的,也就是說這一層是面向使用者的。

為什麼要有資料集市

上面瞭解了什麼是資料集市,接下來我們就看看一下為什麼要有資料集市,開始之前我們線回顧一下前面的

數倉建模分層理論,我們知道了數倉最簡單的就是ODS+DM,但為什麼我們還要分層,在文章中我們解釋了分層的意義是什麼,如果你忘記了可以看一下前面的文章。

這裡我們知道了資料集市是資料倉庫的子集,我們可以把分層看作是橫向切分,那麼資料集市就是豎向切分,

所以我們可以得出一個結論那就是資料集市的劃分也是為了更好的管理數倉和提高生產效率,但是這個還是有點抽象,下面我們再討論一下為什麼要做資料集市層。

靈活性

這裡我們把資料整合也引入進來,從巨集觀上看一下從資料來源到資料服務,整個數倉的存在形式是怎樣的,當然這裡我們是一個簡化的圖,我們主要反映出問題就行了。

上面就是我們當前的數倉形態,這下我們解釋一下我們為什麼要做資料集市層,資料集市層雖然是一個層,但是這層裡有多個集市,每個集市面向不同的業務線或者是業務部門,那我們為什麼要這麼做呢,說白了就是為解耦,解耦的目的是為了增加靈活性。

如果沒有資料集市層,那麼我們的數倉就要面向眾多的業務部門,但是由於每個業務部門的資料需求或者所關心的資料是不一樣的,這就會導致我們的數倉建設失去核心,就會出現我們為了滿足某一個部門而違背了我們數倉的建設原則的現象出現,所以我們增加了資料集市層,也就是每個部門的個性化需求在這裡體現。

其實如果你學習過設計模式或者是Java 的話,其實很容易立即,這有點類似抽象類Service 和 實現類 ServiceImpl.

資料集市有什麼特點

如果你仔細學習了前面的內容的話,你肯定可以理解下面的幾個特點這裡我就不一一解釋,而且這些特點也是我總結出來的,你也可有對其進行擴充套件。

規模小

資料倉庫是面向企業的,資料集市是面向部門或者特定業務的

面向主題

資料集市是面向部門或者特定業務的

直接面向用戶

資料集市是面向部門或者特定業務的

個性化高

資料集市是面向部門或者特定業務的,所以就會出現靈活多變的特點,而且也會出現流程上更簡單快速,規範上要求不嚴格,使用上要儘量簡單。其實這會反映到我們的表上

  1. 就是我們集市層的表一般都是關聯好之後的表,使用的時候基本不需要關聯,主要是為了使用方便效能高,其實可以看到我們集市層的表機會都是數倉建模—寬表的設計
  2. 還有就是我們集市層的表一般都是冗餘了一些相關的欄位,主要是為了應對也無妨多變的請求,舉個例子業務方想看每個人今年的總消費,我可能會把最大值和平均值都會計算出來。

滿足需求為第一優先順序

尤其在一起初創企業,數倉建設跟不上的時候,為了儘快完成需求我們就會直接從ods層建設DM,從而可以對外提供資料。

如何建立資料集市

資料倉庫(集市)的設計可以採用迭代式的方法,也就是說我們可以根據我們的適用方不斷的去迭代我們的資料集市,而且也沒有任何資料集市是可以一次性建成的。

理論上講,應該有一個總的資料倉庫的概念,然後才有資料集市,但是我們實際的做法是先確定了資料集市以及我們的服務物件之後,然後才開始開始建立資料倉庫最後才是資料集市,也就是我們首先設計的是資料集市,但是我們建立的時候卻是首先建立的是資料倉庫。

總結

資料集市就是資料倉庫面向某個主題的子集,它作為數倉面向使用者的一層存在,提供資料服務。

據集市往往作為資料倉庫之上的一個面向分析應用或者是數倉裡面向用戶的一層,也就是說沒有這一層的話,我們的倉庫就要面向使用者了,我們可以將其視作代理,因為這一層要面向使用者,所以它就有多變和不規範的特性,但是為了保證數倉整體建設的合理性和規範性,所以我們在數倉上加了這一層。

雖然集市層是面向使用者的,但是由於面向的使用者群體不同,所以又根據使用者群體的特點,將集市層進行了縱向切分,切分成了一個個不同的集市。

資料倉庫是面向企業的,資料集市是面向部門或者特定業務的,你可以將其看作一個小型的資料倉庫,其實這裡牽扯出了早期資料倉庫的一種存在形體,那就是每個部門有自己的資料倉庫,而不是統一建設的資料倉庫。

知識星球

其實知識星球我以前就建立了,當時覺得自己沒有那麼多的精力維護,不能很好的幫助有需要的同學們,所以一直沒有開放。最近很多同學私聊我學習路線,個人精力也是有限,並不能及時解答所有同學的問題。

通過調查,大部分同學表示願意加入知識星球,我也覺得這樣讓大家的提問更加有層次和意義,而不是問一些比較膚淺和不太合適的問題,有問題也能自己先查詢一下,這樣更好的交流和解答疑問,提升時間利用率。

這裡生成了50張5折優惠券,先到先得,領完為止(星球人數每增加50人,價格上漲10元)。