老貝伏櫪 資料倉儲為什麼要分層

2021-10-05 05:09:08 字數 1034 閱讀 4427

@老貝伏櫪】資料倉儲為什麼要分層

今天有位同事問了乙個很原始的問題,數倉為什麼要分層?每一層作用是什麼?n個為什麼,還真把人問懵了,雖然說出了點理由,卻顯得說服力不足。今天重新把這些理論,捋一捋。

優秀可靠的數倉體系,需要清晰的資料分層結構。即要保證資料層的穩定又要遮蔽對下游的影響,並且要避免鏈路過長。結合這些原則及以往的工作經驗,我們將分層進行統一定義為四層:

1.結構清晰:每乙個資料分層都有它的作用域,這樣我們在使用表的時候能更方便地定位和理解。

2.血緣追蹤:能夠快速準確地定位到問題,並清楚問題的危害範圍。

3.減少冗餘:規範資料分層,開發一些通用的中間層資料,能夠減少極大的重複計算。

4.簡化複雜問題:將複雜的任務分解成多個步驟來完成,每一層只處理單一的步驟,比較簡單和容易理解。當資料出現問題之後,不用修復所有的資料,只需要從有問題的步驟開始修復。

5.遮蔽原始資料的異常:不必改一次業務就需要重新接入資料。

1.ods稱之為貼源層,一般用快照保留來自源系統的歷史資料,方便追查歷史和歸檔歷史。

2.dw稱之為明細層,僅僅依賴ods資料進行清洗、規範命名、輕度橫向或縱向整合、脫敏等,為下游資料分析提供強有力的支撐,保障下游資料一致性和完整性。

3. dm是資料集市,針對通用性的維度或指標,直接面向業務分析主題,構建kimball多維模型。或者構建以事實業務為主線的主題大寬表,按照業務進行聚焦,降低對業務理解的難度,並能解耦複雜的業務。比如以訂單id為主線,把相關業務屬性按業務規則歸集到一起,為下游提供快速查詢、保障資料一致性和準確性。

數倉分層具備穩定、快速迭代的特點,為企業提供精準資料分析決策。無論是傳統行業,還是網際網路行業,數倉架構分層都大同小異。網際網路和創同行業的數倉唯一的區別是,為應對業務快速迭代而建立的模型有區別。

那dw層應該採取什麼方**建模呢?

那天有個人問我,為什麼dw層要用三正規化3nf或data vault建模?為什麼dw層不用多維建模?為什麼dm層要採用kimball建模?

資料倉儲為什麼要分層

如何分層 ods層是將oltp資料通過etl同步到資料倉儲來作為資料倉儲最基礎的資料 在這個過程中,資料經過了一定的清洗,比如欄位的統一,髒資料的去除等,但是資料的粒度是不會變化的。ods層的資料可以只保留一定的時間。mid中間層是採用inmon集線器架構的方式,使用正規化建模 貼源 的方法。這一層...

資料倉儲為什麼要分層

資料倉儲為什麼要分層 如何分層 為什麼要分層 空間換時間。通過建設多層次的資料模型供使用者使用,避免使用者直接使用操作型資料,可以更高效的訪問資料。把複雜問題簡單化。講乙個複雜的任務分解成多個步驟來完成,每一層只處理單一的步驟,比較簡單和容易理解。而且便於維護資料的準確性,當資料出現問題之後,可以不...

資料倉儲為什麼要分層

第一家公司的老數倉技術架構 mysql kettle,分層s ods 層 b層 有點記不清了,乙個是取資料,乙個是做拉鍊 m層 根據業務設計的表 貸前loan before 貸後loan after,並且是拉鍊表 h a層 a fc analysis user info a fc analysis ...