數據倉庫ODS、DWD、DWS、ADS各層介紹

數據倉庫Data warehouse(可簡寫為DW或者DWH)建設的目的,是為前端查詢和分析作為基礎,主要應用于OLAP(on-line Analytical Processing),支持復雜的分析操作,側重決策支持,并且提供直觀易懂的查詢結果。目前行業比較流行:AWS Redshift,Greenplum,Hive等。

數據倉庫并不是數據的最終目的地,而是為數據最終的目的地做好準備,這些準備包含:清洗、轉義、分類、重組、合并、拆分、統計等。

每個公司可根據自己的業務需求分為不同的層次。目前比較成熟的數據分層:數據運營層ODS、數據倉庫層DW、數據應用層ADS(APP)。數據倉庫層又可以分為3個層:數據細節層DWD、數據中間層DWM、數據服務層DWS。

一、ODS層

ODS層(Operation Data Store )數據準備區,也稱為貼源層。數據源中的數據,經過抽取、洗凈、傳輸,也就是ETL過程之后進入本層。通常包含多個數據源,包括企業內部的各種業務系統、外部的數據供應商、第三方數據服務等。這些數據源通常具有不同的數據格式、結構、語義和質量,因此需要進行一系列的數據處理和轉換,以使其能夠被有效地集成到數據倉庫中。

ODS層的數據處理主要包括以下幾個方面:

數據抽取:從各個數據源中抽取數據,包括全量抽取和增量抽取等方式。

數據清洗:對抽取到的數據進行清洗和去重,確保數據的一致性和準確性。

數據集成:將清洗后的數據進行整合和集成,以生成一個一致的、可信的、實時的數據集。

數據同步:將ODS層的數據同步到下一層,即DWD層,以供后續的數據處理和分析。

ODS層的數據模型通常是基于源系統中的數據模型進行設計,其主要目的是將不同的數據源中的數據整合到一個統一的數據集中,并盡量保證數據的質量和可用性。ODS層的數據通常是面向業務過程和業務事件的,包含大量的原始業務數據和事件流數據,可以為企業提供實時的數據集成和分析能力。

ODS層是數據倉庫架構中的第一層,主要負責數據集成和整合,將多個數據源中的數據進行清洗、整合和同步,為后續的數據倉庫處理提供原始數據。ODS層的數據模型通常是基于源系統中的數據模型進行設計,其主要目的是將不同的數據源中的數據整合到一個統一的數據集中,并盡量保證數據的質量和可用性。

在源數據裝入這一層時,要進行諸如去噪(例如有一條數據中人的年齡是 300 歲,這種屬于異常數據,就需要提前做一些處理)、去重(例如在個人資料表中,同一 ID 卻有兩條重復數據,在接入的時候需要做一步去重)、字段命名規范等一系列操作。

但是為了考慮后續可能需要追溯數據問題,因此對于這一層就不建議做過多的數據清洗工作,原封不動地接入原始數據也可以,根據業務具體分層的需求來做。

這層的數據是后續數據倉庫加工數據的來源。數據來源的方式:

  • 業務庫
    • 經常會使用Sqoop來抽取,例如每天定時抽取一次。Sqoop是Apache旗下的一款開源工具。
    • 實時方面,可以考慮用canal監聽mysql的binlog,實時接入即可。MySQL 的二進制日志 binlog 可以說是 MySQL 最重要的日志,它記錄了所有的 DDL 和 DML 語句(除了數據查詢語句select、show等),以事件形式記錄,還包含語句所執行的消耗的時間,MySQL的二進制日志是事務安全型的。binlog 的主要目的是復制和恢復。
  • 埋點日志
    • 日志一般以文件的形式保存,可以選擇用flume定時同步
    • 可以用spark streaming或者Flink來實時接入
    • kafka也OK
  • 消息隊列:即來自ActiveMQ、Kafka的數據等。

二、DWD層

數據倉庫的DWD層(Data Warehouse Detail Layer)是整個數據倉庫架構中的核心層次,也是數據倉庫的基礎層,它主要用于存儲處理過的數據。

DWD層是對原始數據進行清洗、整合、標準化和去重等處理,將數據轉化為面向主題的數據集。在DWD層,數據會被按照主題進行建模,即按照不同的業務領域或業務流程進行分類和組織。這種建模方法被稱為主題建模,它是數據倉庫架構的核心特點之一。

DWD層的主要任務是將原始數據轉換成具有較高質量和較高復用性的數據集,使得數據在后續的處理和分析過程中更加容易理解和使用。DWD層的數據一般不包括計算和匯總的結果,而是以最原始的形式存儲,這樣可以保證數據的完整性和準確性,并支持更靈活的分析和查詢操作。

DWD層的數據模型通常以星型模型或雪花模型為主,其中,星型模型包括一個中心的事實表和多個維度表,每個維度表代表一個業務維度,包含相關的屬性和描述信息,事實表則包含與這些業務維度相關的度量值;而雪花模型則是在星型模型的基礎上,對一些維度表進行進一步的規范化,使得數據更加清晰和精細。

DWD層的數據來源包括多個數據源,例如傳感器、設備、應用程序、數據采集系統等等。在ETL過程中,數據會經過多次轉換和清洗操作,以保證數據的質量和完整性,例如數據清洗、數據標準化、數據合并、數據分割、數據重構等等。

DWD層是數據倉庫架構中最重要的層次之一,它將原始數據轉化為具有高質量和高復用性的數據集,為數據分析、查詢和應用提供了強有力的支持。

該層是業務層和數據倉庫的隔離層,保持和ODS層一樣的數據顆粒度;主要是對ODS數據層做一些數據的清洗和規范化的操作,比如去除空數據、臟數據、離群值等。

為了提高數據明細層的易用性,該層通常會才采用一些維度退化方法,將維度退化至事實表中,減少事實表和維表的關聯。

數據中間層DWM(可選)

數據中間層:Data Warehouse Middle,DWM

該層是在DWD層的數據基礎上,對數據做一些輕微的聚合操作,生成一些列的中間結果表,提升公共指標的復用性,減少重復加工的工作。

簡單來說,就是對通用的核心維度進行聚合操作,算出相應的統計指標,例如計算出統計指標:用戶訪問的次數,時長等

三、DWS層

數據倉庫的DWS層(Data Warehouse Service Layer)是數據倉庫架構中的一層,它是在DWD層的基礎上進一步處理數據,提供更加靈活、高效、可擴展的數據查詢和分析服務。

DWS層的主要任務是對DWD層的數據進行加工、聚合、計算和匯總,以滿足各種業務需求和分析場景。在DWS層,數據模型以業務應用為中心,根據業務流程和業務需求進行建模,以支持各種復雜的查詢和分析操作。

與DWD層相比,DWS層的數據模型更加靈活和多樣化,可以采用星型模型、雪花模型、多維模型、標簽模型等多種建模方式,以滿足各種業務需求和分析場景。此外,DWS層的數據通常是預處理后的聚合數據,包括各種匯總指標、計算結果、模型輸出等等,以支持更快速、高效的查詢和分析操作。

該層是基于DWM上的基礎數據,整合匯總成分析某一個主題域的數據服務層,一般是寬表,用于提供后續的業務查詢,OLAP分析,數據分發等。

一般來說,該層的數據表會相對較少;一張表會涵蓋比較多的業務內容,由于其字段較多,因此一般也會稱該層的表為寬表。

  • 用戶行為,輕度聚合DWD
  • 主要對ODS/DWD層數據做一些輕度的匯總。

DWS層的數據處理主要包括以下幾個方面:

1.數據加工和清洗:對DWD層的數據進行進一步加工和清洗,包括數據清洗、數據轉換、數據格式化、數據歸一化等,以確保數據質量和準確性。

2.數據聚合和計算:對DWD層的數據進行聚合和計算,生成各種匯總指標、計算結果和模型輸出,以支持各種業務分析和決策需求。

3.數據存儲和管理:將處理后的數據存儲到DWS層的數據庫中,并進行管理和維護,以確保數據的安全性、可靠性和可用性。

4.數據訪問和服務:提供各種數據查詢和分析服務,包括OLAP分析、數據挖掘、報表生成、可視化等,以支持各種業務需求和決策場景。

DWS層是數據倉庫架構中重要的一層,它為業務分析和決策提供了強有力的支持,能夠提供高效、靈活、可擴展的數據查詢和分析服務,為企業的業務決策提供有力的支撐。

四、ADS層

ADS層(Application Data Service Layer)是數據倉庫中的最上層,它是基于DWS層數據進行二次加工和業務應用開發的層級。ADS層通常是面向特定的業務場景和業務需求進行建模和開發,提供各種業務分析、報表、可視化和決策支持等服務。

數據應用層, 也有公司把這層叫做APP層、DAL(DATA ACCESS LAYER)層、DM層,DF層,叫法繁多。
面向實際的數據需求,以DWD或者DWS層的數據為基礎,組成的各種統計報表。
統計結果最終同步到RDS以供BI或應用系統查詢使用。

ADS層的主要任務是將DWS層的數據進行業務化加工和轉換,以生成各種針對具體業務需求的洞察和分析結果。此外,ADS層還負責提供各種業務應用和服務,包括數據可視化、報表生成、數據挖掘、預測建模、決策支持等,以支持企業的各種業務需求和決策場景。

該層主要是提供給數據產品和數據分析使用的數據,一般會存放在ES、Redis、PostgreSql等系統中供線上系統使用;也可能存放在hive或者Druid中,供數據分析和數據挖掘使用,比如常用的數據報表就是存在這里的。

與DWS層相比,ADS層的數據模型更加業務化和定制化,通常是基于具體的業務場景和業務需求進行建模和開發,以支持各種復雜的分析和決策操作。在ADS層,數據通常是以應用為中心進行組織和管理,以支持各種復雜的業務場景和分析需求。

ADS層的數據處理主要包括以下幾個方面:

1.數據加工和轉換:將DWS層的數據進行業務化加工和轉換,包括數據清洗、數據抽取、數據加工、數據集成、數據轉換等,以滿足具體的業務需求和場景。

2.數據建模和開發:基于具體業務需求進行數據建模和開發,包括模型設計、數據架構、應用開發、服務開發等,以支持各種業務分析和決策需求。

3.數據存儲和管理:將處理后的數據存儲到ADS層的數據庫中,并進行管理和維護,以確保數據的安全性、可靠性和可用性。

4.數據分析和服務:提供各種數據分析和服務,包括OLAP分析、數據挖掘、報表生成、可視化等,以支持各種業務需求和決策場景。

ADS層是數據倉庫架構中最上層的一層,它是數據倉庫的最終輸出,能夠提供針對具體業務場景和業務需求的各種分析和決策支持。ADS層通過二次加工和業務應用開發,將數據轉化為有價值的信息和智能洞察,為企業的業務決策提供有力的支持。

五、DIM層
在數據倉庫中,DIM(Dimension)層通常用于存儲業務維度信息。維度是指一組具有共同特征的屬性,用于描述事實數據。例如,在銷售業務中,產品、客戶、時間等都可以作為維度來描述銷售情況。

在數據倉庫中,DIM層通常包含一系列維度表,每個維度表包含了該維度的詳細信息。維度表通常包含兩種類型的字段:描述性字段和層次字段。描述性字段包含了該維度的詳細信息,如名稱、描述、編碼等;層次字段則用于描述該維度的層次結構,例如時間維度可以按照年、月、日等不同的層次進行劃分,產品維度可以按照品類、品牌、型號等不同的層次進行劃分。

維度表(Dimension Table)或維表,有時也稱查找表(Lookup Table),是與事實表相對應的一種表;它保存了維度的屬性值,可以跟事實表做關聯,相當于將事實表上經常重復出現的屬性抽取、規范出來用一張表進行管理。維度表主要是包含兩個部分:

  • 高基數維度數據:一般是用戶資料表、商品資料表類似的資料表,數據量可能是千萬級或者上億級別
  • 低基數維度數據:一般是配置表,比如枚舉字段對應的中文含義,或者日期維表等;數據量可能就是個位數或者幾千幾萬。

維度表通常采用基于主題建模的模型,如星型模型或雪花模型。在星型模型中,維度表位于中心的星型結構中,與事實表通過外鍵關聯;在雪花模型中,維度表與星型模型類似,但是維度表中的層次字段通常被拆分成多個表,形成類似于雪花的結構。

在數據倉庫中,維度表的設計需要考慮以下幾個方面:

1、數據的準確性:維度表中的數據應該準確、完整、一致。通常可以通過數據清洗、校驗等方式來確保數據的質量。

2、數據的可擴展性:維度表應該具有可擴展性,能夠支持快速地添加新的維度和層次。

3、數據的性能:維度表應該具有良好的查詢性能,通常可以采用列式存儲、分區、索引等方式來優化查詢性能。

4、數據的易用性:維度表中的字段應該易于使用和理解,通常可以通過命名規范、字段注釋等方式來提高數據的易用性。

DIM層在數據倉庫中扮演著非常重要的角色,是實現數據分析和BI報表的關鍵。通過合理的維度設計和維度表建模,可以為數據分析提供更加準確、全面、可靠的基礎數據。

事實表 Fact Table

事實表是指存儲有事實記錄的表,比如系統日志、銷售記錄等。事實表的記錄在不斷地增長,比如電商的商品訂單表,就是類似的情況,所以事實表的體積通常是遠大于其他表。

臨時表TMP

每一層的計算都會有很多臨時表,專設一個DWTMP層來存儲我們數據倉庫的臨時表

總結

1. ODS(Operational Data Store,操作型數據存儲)?

ODS層是數據倉庫體系結構的最底層,主要用于存儲從各個操作系統采集來的原始數據。它作為數據倉庫的臨時區域,經過ETL(抽取、轉換、加載)過程后,將數據源中的數據抽取、洗凈并傳輸到ODS層。ODS層的主要功能是為后續的數據倉庫層(如DWD層)提供原始數據,同時減少對業務系統的影響。

2. DWD(Data Warehouse Detail,數據倉庫明細層)
DWD層是數據倉庫的明細層,用于存儲詳細、完整的數據。它支持企業數據的跨部門和跨系統共享和查詢,是數據倉庫中數據加工和清洗的重要環節。DWD層的數據通常已經過結構化處理,便于后續的匯總和分析。

3. DWS(Data Warehouse Summary,數據倉庫匯總層)
DWS層是數據倉庫的匯總層,用于提供業務匯總分析服務。它對原始數據進行聚合計算和加工,生成匯總數據,供企業決策層使用。DWS層的數據通常是對DWD層數據的進一步加工,便于快速查詢和分析。

4. ADS(Application Data Service,應用數據服務)
ADS層是數據倉庫的應用數據服務層,用于存放數據產品個性化的統計指標數據和報表數據。它是數據倉庫的最上層,直接面向業務應用,提供定制化的數據服務,支持企業的決策和業務分析。


ODS、DWD、DWS、ADS是數據倉庫分層架構中的關鍵層次,每一層都有其特定的功能和職責。通過這種分層設計,數據倉庫能夠實現數據的清晰管理、復雜問題的簡化、統一數據口徑以及減少重復開發,從而提高數據查詢效率,降低成本和復雜度。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76718.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76718.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76718.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

動態提示詞(小模型)、RAG和提示詞系統

動態提示詞(小模型)、RAG和提示詞系統 目錄 動態提示詞(小模型)、RAG和提示詞系統小模型方案:動態提示詞基于規則的動態提示詞生成基于模板的動態提示詞生成基于小模型的動態提示詞生成基于強化學習的動態提示詞生成基于元學習的動態提示詞生成動態提示詞(小模型)RAG(檢…

并發設計模式實戰系列(3):工作隊列

🌟 ?大家好,我是摘星!? 🌟 今天為大家帶來的是并發設計模式實戰系列,第三章工作隊列(Work Queue)??,廢話不多說直接開始~ 目錄 一、核心原理深度拆解 1. 生產者-消費者架構 …

云賬號安全事件應急響應指南:應對來自中國IP的異常訪問

在當今數字化時代,云服務已成為企業IT基礎設施的核心。然而,隨之而來的安全挑戰也日益突出。本文將詳細介紹當發現云賬號被來自中國的IP地址異常利用時,應如何快速有效地響應,以確保賬戶安全并最小化潛在風險。 1. 確認異常活動 首先,我們需要確認是否真的發生了安全事件…

三網通電玩城平臺系統結構與源碼工程詳解(五):客戶端熱更機制與多端資源分發流程

本篇將聚焦三網通平臺在多客戶端部署中的資源熱更機制設計、跨平臺同步策略、版本控制與前端資源發布管理,幫助開發者搭建高效穩定的資源更新系統。 一、資源分發平臺架構 為實現安卓端、iOS端、PC端的統一更新分發,平臺采用 Node.js Express 構建資源…

spark和hadoop的區別

一、spark概述 二、處理速度 三、 編程模型 四、實時性處理 五、spark內置模塊 六、spark的運行模式

AI寫代碼之GO+Python寫個爬蟲系統

下面我們我們來利用AI,來用GOPython寫個爬蟲系統。 幫我寫一個Python語言爬取數據寫入Mysql的案例,信息如下: 1、Mysql數據庫地址是:192.168.1.20 ,mysql用戶名是:root, Mysql密碼是&#xff1…

從單模態到多模態:深度生成模型的演進歷程

在人工智能領域,生成模型的發展一直是研究熱點。從最早的自編碼器到如今的多模態擴散模型,這一技術路線不斷突破,為創意內容生成、數據增強和表示學習等領域帶來革命性變化。本文將詳細介紹幾種關鍵生成模型的技術原理和演進路徑,…

【系統架構設計師】嵌入式微處理器

目錄 1. 說明2. 微處理器(MPU)3. 微控制器(MCU)4. 信號處理器(DSP)5. 圖形處理器(GPU)6. 片上系統(SoC)7. 例題7.1 例題1 1. 說明 1.嵌入式微處理器主要用于處理相關任務。2.由于嵌入式系統通常都在室外使用,可能處于不同環境,因此,選擇處理…

Cursor Free VIP 重置進程錯誤,輕松恢復使用!

快速修復 Cursor Free VIP 重置進程錯誤,輕松恢復使用! 在使用 Cursor Free VIP 的過程中,突然遭遇 “重置進程錯誤” 是不是讓你手忙腳亂?當屏幕彈出 “文件未找到: C:\Users\用戶\AppData\Local\Programs\Cursor\resources\app…

dolphinscheduler實現(oracle-hdfs-doris)數據ETL

dolphinscheduler執行 完整腳本(自行替換相關變量)配置文件conf配置文件解析腳本轉base64腳本 完整腳本(自行替換相關變量) user_olsh conf/getInfo.sh Oracle user conf/databases.conf password_olsh conf/getInfo.sh Oracle password conf/databases.conf dblink_olsh conf…

小小矩陣設計

在電氣設計圖中,矩陣設計的接線方法是通過結構化布局實現多靈活鏈接的技術,常用于信號切換、配電調壓或更加復雜的控制場景。 今天聊一種在電氣圖紙中用到的一種簡單矩陣接法,一眼就看明白,很大程度簡化了程序控制點和繼電器的使用…

【音視頻】FFmpeg解封裝

解封裝 復用器,比如MP4/FLV 解復用器,MP4/FLV 封裝格式相關函數 avformat_alloc_context(); 負責申請一個AVFormatContext結構的內存,并進行簡單初始化avformat_free_context(); 釋放該結構里的所有東西以及該結構本身avformat_close_input();關閉解復…

1??5??three.js_GUI輔助調試器

15、GUI輔助調試器 3D虛擬工廠在線體驗 GUI輔助調試器將原本需要修改代碼調整參數并刷新頁面的操作,簡化為直接在GUI中實時調整,實現所見即所得的效果。 導入GUI 庫 //引入GUI輔助調試器 import { GUI } from three/addons/libs/lil-gui.module.min.js…

Redis 的指令執行方式:Pipeline、事務與 Lua 腳本的對比

Pipeline 客戶端將多條命令打包發送,服務器順序執行并一次性返回所有結果。可以減少網絡往返延遲(RTT)以提升吞吐量。 需要注意的是,Pipeline 中的命令按順序執行,但中間可能被其他客戶端的命令打斷。 典型場景&…

Linux下的網絡管理配置

一、 IPv4原理 IPv4(Internet Protocol version 4),采用32位地址。IPv4地址通常用點分十進制表示,如 192.168.1.10。 IPv4網絡通信基于數據包交換原理,當一臺主機要向另一臺主機發送數據時,會將數據分割成…

基于Python(Django)+SQLite實現(Web)校園助手

校園助手 本校園助手采用 B/S 架構。并已將其部署到服務器上。在網址上輸入 db.uplei.com 即可訪問。 使用說明 可使用如下賬號體驗: 學生界面: 賬號1:123 密碼1:123 賬戶2:201805301348 密碼2:1 # --------------…

unity動態骨骼架設+常用參數分享(包含部分穿模解決方案)

Unity骨骼物理模擬插件Dynamic Bone Dynamic Bone 可用于對角色的骨骼(bones)或者鉸鏈系統(joints)施加物理效果。 物理效果可以使得游戲角色的頭發、衣服、胸部或者是其他的任何部位,都可以以近似真實的狀態運動。 …

科技天眼守望農田:珈和衛星遙感監測賦能智慧農業,護航糧食安全新未來

農情監測與糧食安全密切相關,以往農作物的長勢、環境、病蟲害、災情等相關數據和圖像信息都是靠物聯網硬件及縣、鎮、村等人力來完成,不僅要耗費大量人力、物力,而且數據時效性、準確性較差。珈和科技開發建設農情遙感監測系統,運…

【TeamFlow】4.2 Yew庫詳細介紹

Yew 是一個用于構建高效、交互式前端 Web 應用程序的現代 Rust 框架,它借鑒了 React 和 Elm 等框架的設計理念,同時充分利用 Rust 的語言特性。 核心特性 基于組件的架構 Yew 采用組件化開發模式,類似于 React: 組件是可重用的 UI 構建塊 …

畢設 - 數字孿生智慧農場(vue+高德地圖)項目分享

感興趣的同學可以私信我或者在下方添加我的qq 在線地址: 數字孿生智慧農場