目錄
一、數據倉庫為什么要分層
二、數據倉庫怎么分層
2.1、DWD(Data Warehouse Detail):數據明細層
2.2、DWM(Data WareHouse Midddle):數據中間層
2.3、DWS(Data WareHouse Service):數據服務層
4、其它
4.1、DIM(Dimension):?維表層
4.2、DM(Data Mart):數據集市層
三、數據建倉基本流程
四、不同產品分層案例
1、阿里Dataphin(智能數據建設與治理)
2、帆軟FineDataLink(一站式數據集成平臺)?
3、電信天翼云DataWings(大數據管理平臺)
4、從奧軟件(ETL數據集成套件)
?一、數據倉庫為什么要分層
數據倉庫分層是一種組織和管理數據倉庫的結構化方法,它將數據倉庫劃分為不同的層次或級別,每個層次具有特定的功能和目的。這種分層方法有助于管理數據倉庫中的數據流程、數據處理和數據訪問,并提供一種清晰的結構來支持數據管理和分析需求。
一個好的分層架構,要有以下好處:
1 清晰數據結構 :
數倉每一層都有對應的作用,方便在使用時更好的定位與了解。
2 數據血緣追蹤:
清晰知道表或任務上下游,方便排查問題,知道下游哪個模塊在使用,提升開發效率以及后期管理維護。
3 減少重復開發:
提高數據復用性,完善好數據倉庫的中間層,減少后期不必要的開發,從而減少資源消耗,保障口徑、數據統一。
4 復雜問題簡單化:
將復雜問題拆解成多個步驟來完成,每一層處理單一步驟,當數據問題出現時,只需從問題出現處開始修復。
5、屏蔽原始數據的影響
數據倉庫對接的源系統眾多,且每個源系統的表命名、字段命名、字段含義等各有不同,通過數據倉庫的分層設計,從底層來規范和屏蔽所有這些復雜性,保證下游數據用戶使用數據的便捷和規范。如果源系統發生變更,只需要再相應的數據倉庫層來處理,對下游用戶透明無感。
數據倉庫分層用空間換時間,通過大量的預處理來提升應用系統的用戶體驗(效率),因此數據倉庫會存在大量冗余的數據;不分層的話,如果源業務系統的業務規則發生變化將會影響整個數據清洗過程,工作量巨大。
通過數據分層管理可以簡化數據清洗的過程,把一個復雜的工作拆成了多個簡單的工作,把一個大的黑盒變成了一個白盒,每一層的處理邏輯都相對簡單和容易理解,這樣比較容易保證每一個步驟的正確性,當數據發生錯誤的時候,往往我們只需要溯源并局部調整某個步驟即可。
二、數據倉庫怎么分層
1、ODS(Operational Data Store):數據源層
ODS 層是最接近數據源的一層,又叫貼源層,考慮后續可能需要追溯數據問題, 因此對于這一層就不建議做過多的數據清洗工作,原封不動地接入原始數據即可, 至于數據去噪、去重、異常值處理等過程可以放在后面的 DWD 層來做!
定義:ODS 是操作型系統的一個副本,用于存儲從生產系統中抽取的原始數據,通常是實時或接近實時更新的。
功能:ODS 層存儲了數據的初始狀態,保留了操作型系統中的數據結構和詳細內容,主要用于支持操作型系統的實時查詢和處理需求。
特點:數據更新頻繁,保留了數據的操作歷史,適合需要快速響應和高頻查詢的應用場景。
?ODS 層的數據主要來自于組織內部的業務應用系統,如企業資源計劃(ERP)、客戶關系管理(CRM)、銷售、采購、庫存管理系統等。這些系統產生的數據通常是實時、操作性的,包含了組織的日常業務活動的詳細信息,ODS 層通常會集成來自多個業務應用系統的數據,以提供一個全面的、整合的數據視圖。這有助于消除數據孤島,確保業務數據的一致性和完整性
2、DW(Data Warehouse):?數據倉庫層
數據倉庫層是數據倉庫核心層,在這里把從 ODS 層中獲得的數據按照主題建立各種數據模型。該層又依次細分為DWD、DWM、DWS
2.1、DWD(Data Warehouse Detail):數據明細層
該層一般保持和 ODS 層一樣的數據粒度,并且提供一定的數據質量保證。DWD層要做的就是將數據清理、整合、規范化,把臟數據、垃圾數據、規范不一致的、狀態定義不一致的、命名不規范的數據處理掉。
同時,為了提高數據明細層的易用性,該層會采用一些維度退化手法,將維度退化至事實表中,減少事實表和維表的關聯。
另外,在該層也會做一部分的數據聚合,將相同主題的數據匯集到一張表中,提高數據的可用性 。
- 定義:DWD 是數據倉庫的主要存儲層,用于存放經過清洗、整合、加工后的詳細數據。
- 功能:DWD 層主要完成了數據的清洗、去重、數據格式轉換等工作,確保數據質量和一致性,并且保留了數據的詳細信息。
- 特點:支持數據的歷史追溯,提供了基礎數據的單一版本,適合進行數據挖掘、分析和報表等操作。
在DWD層,數據經過了更加深入的清洗、轉換和加工處理,以滿足業務需求和分析目的。這包括數據清洗、數據整合、數據轉換、數據計算、數據標準化等操作,以確保數據的質量、一致性和可用性。DWD 層通常采用關系型數據庫(如Oracle、SQL Server、MySQL等)或者大數據存儲系統(如Hadoop、Spark等)來存儲數據。與ODS層相比,DWD 層的數據存儲結構更為規范和固定,通常采用規范化的數據模型來支持復雜的查詢和分析
2.2、DWM(Data WareHouse Midddle):數據中間層
該層會在 DWD 層的數據基礎上,數據做輕度聚合,生成一系列的中間表, 提升公共指標的復用性,減少重復加工。
直觀來講,就是對通用的核心維度進行聚合操作,算出相應的統計指標。
在實際計算中,如果直接從 DWD 或者 ODS 計算出寬表的統計指標,會存在計算量太大并且維度太少的問題,因此一般的做法是,在 DWM 層先計算出多個小的中間表,然后再拼接成一張 DWS 的寬表。由于寬和窄的界限不易界定,也可以去掉 DWM 這一層,只留 DWS 層,將所有的數據再放在DWS也可。
2.3、DWS(Data WareHouse Service):數據服務層
DWS 層為公共匯總層,會進行輕度匯總,粒度比明細數據稍粗,基于 DWD 層上的基礎數據,整合匯總成分析某一個主題域的服務數據。
DWS 層應覆 蓋 80% 的應用場景。又稱數據集市或寬表。 按照業務劃分,如主題域流量、訂單、用戶等,生成字段比較多的寬表,用于提供后續的業務查詢,OLAP 分析,數據分發等。
一般來講,該層的數據表會相對比較少,一張表會涵蓋比較多的業務內容,由于其字段較多,因此一般也會稱該層的表為寬表。
- 定義:DWS 是在DWD層的基礎上進行聚合、匯總和計算的存儲層。
- 功能:DWS 層對數據進行了聚合、匯總和預計算,以提高數據查詢的效率和性能,并且支持復雜的分析和查詢操作。
- 特點:數據存儲結構更優化,通常包括了數據的歷史匯總和聚合信息,適合于需要復雜分析和報表的應用場景。
DWS 通常是指數據倉庫的存儲層,它是整個數據倉庫系統的核心組成部分。DWS 層存儲了經過清洗、轉換和整合的數據,以支持各種數據分析、報表和決策需求。DWS層產生我們常講的“大寬表”,DWS 層通常采用專門的數據存儲系統或者數據庫管理系統(DBMS)來存儲數據,例如關系型數據庫(如Oracle、SQL Server、MySQL等)、大數據存儲系統(如Hadoop、Spark等)、云數據倉庫(如AWS Redshift、Google BigQuery、Azure Synapse Analytics等)等。存儲在 DWS 層的數據結構通常是規范化或者半規范化的,以支持復雜的數據分析和查詢。
3、ADS(Application Data Service):數據應用層
主要是提供給數據產品和數據分析使用的數據,一般會存放在 ES、 PostgreSql、Redis 等系統中供線上系統使用,也可能會存在Hive或者Druid中供數據分析和數據挖掘使用。比如我們經常說的報表數據,一般就放在這里。
- 定義:ADS 是數據倉庫的最上層,為業務系統和應用提供服務接口和數據訪問服務。
- 功能:ADS 層通過接口和服務提供數據訪問和數據服務,將數據倉庫的數據集成到業務應用中,為業務決策和應用提供支持。
- 特點:面向業務應用和最終用戶,提供了數據的訪問接口和服務,支持業務應用的快速開發和部署。
ADS 層通常位于數據倉庫架構的頂層,用于支持高級數據分析、數據挖掘和機器學習等高級分析任務的一個重要組成部分。它包含了經過進一步加工和轉換的數據,以支持更復雜和更深入的數據分析和洞察,?ADS 層通常采用專門的數據存儲系統或者數據庫管理系統(DBMS)來存儲數據,例如關系型數據庫(如Oracle、SQL Server、MySQL等)、大數據存儲系統(如Hadoop、Spark等)、云數據倉庫(如AWS Redshift、Google BigQuery、Azure Synapse Analytics等)等。存儲在 ADS 層的數據通常是高度規范化或者半規范化的,以支持復雜的數據分析和挖掘任務。存儲在 ADS 層的數據通常會被用于生成各種類型的數據可視化和報告,以幫助用戶直觀地理解和解釋數據分析的結果。這包括儀表板、報表、圖表、圖形等,為用戶提供一個直觀、易于理解的數據展示平臺。
4、其它
4.1、DIM(Dimension):?維表層
如果維表過多,也可針對維表設計單獨一層,維表層主要包含兩部分數據:
- 高基數維度數據:一般是用戶資料表、商品資料表類似的資料表。數據量可能是千萬級或者上億級別。
- 低基數維度數據:一般是配置表,比如枚舉值對應的中文含義,或者日期維表。 數據量可能是個位數或者幾千幾萬
- 定義:DIM 是建立在DWD或DWS層之上的維度建模層。
- 功能:DIM 層主要用于提供與業務相關的維度模型,包括事實表和維度表,用于支持多維分析(OLAP)和數據挖掘操作。
- 特點:數據以維度為核心進行組織,支持復雜的多維分析和數據挖掘,適合決策支持系統和業務智能應用。
4.2、DM(Data Mart):數據集市層
基于DW的基礎數據,整合匯總成一個個數據集市,數據集市通常是面向部門的某個主題域的報表數據。比如用戶留存表、用戶活躍表、商品銷量表、商品營收表等等。
三、數據建倉基本流程
參考:如何確定數倉構建的目標與需求_智能數據建設與治理 Dataphin(Dataphin)-阿里云幫助中心
四、不同產品分層案例
1、阿里Dataphin(智能數據建設與治理)
資料地址:如何進行技術架構選型_智能數據建設與治理 Dataphin(Dataphin)-阿里云幫助中心什么是數倉分層,各層有哪些用途_智能數據建設與治理 Dataphin(Dataphin)-阿里云幫助中心
2、帆軟FineDataLink(一站式數據集成平臺)?
資料地址:ETL/ELT|數據融合|數據清洗-FineDataLink數據集成平臺
3、電信天翼云DataWings(大數據管理平臺)
資料地址:?
大數據管理平臺 DataWings-天翼云
數倉分層-大數據管理平臺 DataWings-用戶指南-數據建模-數倉規劃 - 天翼云
4、從奧軟件(ETL數據集成套件)
資料地址:上海數據倉庫建設_數據中心建設_主數據元數據管理_數倉建設公司-從奧軟件(上海)有限公司