數據分層/ODS/DW/DM

數據分層

數據分層的目的

我們對數據進行分層的一個主要原因就是希望在管理數據的時候,能對數據有一個更加清晰的掌控,詳細來講,主要有下面幾個原因:

1.清晰數據結構:每一個數據分層都有它的作用域,這樣我們在使用表的時候能更方便地定位和理解。
2.數據血緣追蹤:簡單來講可以這樣理解,我們最終給業務誠信的是一能直接使用的張業務表,但是它的來源有很多,如果有一張來源表出問題了,我們希望能夠快速準確地定位到問題,並清楚它的危害範圍。
3.減少重複開發:規範數據分層,開發一些通用的中間層數據,能夠減少極大的重複計算。
4.把複雜問題簡單化。講一個複雜的任務分解成多個步驟來完成,每一層只處理單一的步驟,比較簡單和容易理解。而且便於維護數據的準確性,當數據出現問題之後,可以不用修復所有的數據,只需要從有問題的步驟開始修復。
5.屏蔽原始數據的異常。
6.屏蔽業務的影響,不必改一次業務就需要重新接入數據。

ODS層 (Operational Data Store 又稱數據運營層)

ods 又稱數據運營層,Operational Data Store 層,數據來源包括:
1. sqoop 數據導入
2. canal 監控mysql binlog 實時導入
3. flume/網關  --> kafaka --> flink/streaming 流導入

ods層數據並非完全的原始數據,而是要考慮一定的數據清洗,比如異常字段的處理、
字段命名規範化、時間字段的統一等處理後的結果。

DW層(data warehouse 數據倉庫)

DW數據分bai層,由下到上爲 DWD,DWB,DWS
DWD:dudata warehouse detail 細節數據層,有的也稱爲 ODS層,是業務層dao與數據倉庫的隔離層
DWB:data warehouse base 基礎數據層,存儲的是客觀數據,一般用作中間層,可以認爲是大量指標的數據層。
DWS:data warehouse service 服務數據層,基於DWB上的基礎數據,整合彙總成分析某一個主題域的服務數據,一般是寬表。
1.如果 ods 層的數據就非常規整,基本能滿足我們絕大部分的需求,這當然是好的,這時候 dwd 層其實也沒太大必要。 但是現實中接觸的情況是 ods 層的數據很難保證質量,畢竟數據的來源多種多樣,推送方也會有自己的推送邏輯,在這種情況下,我們就需要通過額外的一層 dwd 來屏蔽一些底層的差異。
2.DWB層是面向主題的,數據倉庫中數據是按照一定主題領域進行組織的,每一個主題對應一個宏觀分析領域,
3.DWS層可以理解成 dw到dm的過度,是一些寬表彙總,有些可以理解成dm層

dw理解:
1.dw主要提供查詢服務,並且需要查詢能夠及時響應。
2.進入dw的數據應該是能唯一的具有權威性的數據,企業的系統只能使用從dw提供的被認可的數據,所以預先做好企業的元數據建立非常必要。
3.定期需要對dw裏面的數據進行質量檢查,保證dw裏面的數據唯一、權威、準確。
4.dw的數據也是隻允許增加不允許刪除和修改,數據倉庫主要是提供查詢服務,刪除和修改在分佈式系統中會消耗大量的性能資源。

DM層 (data market 數據集市)

數據集市,以某個業務應用爲出發點而建設的局部dw,dw只關心自己需要的數據,不會全盤考慮企業整體的數據架構和應用。每個應用有自己的dm

dm理解:
1.dm結構清晰、針對性強、擴展性好,因爲dm僅僅是單對某一個領域而建立,容易維護和修改。
2.dm建設任務繁重,公司有衆多業務每一個業務單獨加建立工作量集合增加啊。
3.dm的建立消耗更多存儲空間,單獨一個dm可能數據量不大,但是企業所有領域都建立dm數據量就會增加很多倍。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章