數據倉庫分層解析(詳細)

目錄

一、數據倉庫為什么要分層

二、數據倉庫怎么分層

1、ODS(Operational Data Store):數據源層

2、DW(Data Warehouse):?數據倉庫層

2.1、DWD(Data Warehouse Detail):數據明細層

2.2、DWM(Data WareHouse Midddle):數據中間層

2.3、DWS(Data WareHouse Service):數據服務層

3、ADS(Application Data 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數據集成套件)

資料地址:上海數據倉庫建設_數據中心建設_主數據元數據管理_數倉建設公司-從奧軟件(上海)有限公司

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

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

相關文章

智慧城管云平臺源碼,微服務vue+element+springboot+uniapp技術架構,數字化綜合執法辦案系統

智慧城管綜合執法系統源碼,包括PC端和移動端。微服務架構,vueelementspringbootuniapp技術框架開發。智慧城管建立了統一的城管執法案件數據庫、法律法規庫、檔案信息庫等,支持簡易程序案件、一般程序案件、行政強制管理等執法業務的辦理&…

VUE實現多個彈窗優先級變化實現思路

在開發復雜的單頁應用(SPA)時,我們經常會遇到需要管理多個浮動窗口(或稱“彈窗”、“面板”)的場景。一個核心的用戶體驗要求是:用戶當前操作的窗口應該總是在最頂層。本文將結合代碼示例,總結一…

集成算法和kmeans

一、集成算法(Ensemble Learning) 1. 基本概念 集成學習通過構建并結合多個學習器(基分類器/回歸器)來完成學習任務,旨在通過集體決策提升模型性能,類似于“多個專家的綜合判斷優于單個專家”。 2. 結合策略…

圖數據庫性能與可擴展性評估

圖數據庫的性能與可擴展性直接決定業務場景(如實時風控、知識圖譜分析)的落地效果,需結合業務場景特性(OLTP/OLAP)、技術指標(響應時間、吞吐量)和擴展能力(數據量/節點擴展&#xf…

樹莓派常用的國內鏡像源列表以及配置方法

1. 常用的鏡像源使用下來發現清華源經常訪問不到,阿里源比較好用。其他源還未測試。源名稱URL清華源https://pypi.tuna.tsinghua.edu.cn/simple阿里云https://mirrors.aliyun.com/pypi/simple/中科大https://pypi.mirrors.ustc.edu.cn/simple/華為云https://repo.hu…

Transformer在文本、圖像和點云數據中的應用——經典工作梳理

摘要 最近在整一些3D檢測和分割的任務,接觸了一下ptv3,在之前梳理的工作owlv2中用到了vit,去年年假閱讀《多模態大模型:算法、應用與微調》(劉兆峰)時學習了Transformer網絡架構及其在文本數據中的應用&am…

訓練后數據集后部署PaddleOCR轉trt流程

訓練后的模型部署,首先要進行訓練 0.訓練流程見文章 PaddleOCR字符識別,訓練自己的數據集全流程(環境、標注、訓練、推理)-CSDN博客文章瀏覽閱讀1.6k次,點贊53次,收藏23次。PaddleOCR是基于百度飛槳框架的…

《MLB美職棒》美國國球是橄欖球還是棒球·棒球5號位

USAs National Sport Showdown: MLB?? vs NFL Ultimate Guide!從商業價值到文化基因,360解析美國體育王座之爭!添加圖片注釋,不超過 140 字(可選)? 歷史定位 Historical Roots?? MLB:The "Classi…

常見 Linux 網絡命令梳理

在日常運維和排障工作中,網絡相關命令是最常用的一類工具。無論是檢查網絡連通性,還是定位路由問題,又或是分析端口和服務占用,熟悉這些命令都能讓我們更高效地解決問題。本文將從幾個常見的維度來梳理 Linux 下的網絡命令&#x…

Docker 搭建 Gitlab 實現自動部署Vue項目

1、配置要求: 硬件要求: CPU:雙核或以上 內存:4GB或以上 軟件要求:Centos6 或更高版本 2、gitlab鏡像: # 中文版倉庫 #docker pull twang2218/gitlab-ce-zh docker pull gitlab/gitlab-ce 3、gitlab部署目錄 說明:為了跟其他容器區分,gitlab相關容…

如何解決機器翻譯的“幻覺“問題(Hallucination)?

更多內容請見: 機器翻譯修煉-專欄介紹和目錄 文章目錄 一、數據層面優化 二、模型架構改進 三、訓練策略調整 四、評估與迭代 五、前沿方向與挑戰 六、案例:WMT2023幻覺緩解方案 機器翻譯中的“幻覺”(Hallucination)指模型生成與源文本語義無關、邏輯矛盾或事實錯誤的翻譯…

基于STM32+NBIOT設計的宿舍安防控制系統_264

文章目錄 1.1 項目介紹 【1】開發背景 【2】實現需求 【3】項目硬件模塊組成 【4】設計意義 【5】國內外研究現狀 【6】摘要 1.2 系統總體設計 【1】系統功能需求分析 【2】系統總體方案設計 【3】系統工作原理 1.3 系統框架圖 1.4 系統功能總結 1.5 系統原理圖 1.6 實物圖 1.7…

SLAM文獻之-Globally Consistent and Tightly Coupled 3D LiDAR Inertial Mapping

一、簡介 該論《Globally Consistent and Tightly Coupled 3D LiDAR Inertial Mapping》是日本先進工業科學技術研究所(AIST)的Koide等人于2022年在IEEE國際機器人與自動化會議(ICRA)上發表的一篇論文。該研究提出了一種基于全局…

【STM32】HAL庫中的實現(七):DMA(直接存儲器訪問)

DMA 是什么? DMA(Direct Memory Access)是 外設直接和內存之間數據搬運的機制,不需要 CPU 參與。 ? 舉個例子:傳統方式: ADC → CPU → RAM 使用 DMA:ADC → DMA → RAM(CPU 不需干…

【LeetCode熱題100道筆記+動畫】字母異位詞分組

題目描述 給你一個字符串數組,請你將 字母異位詞 組合在一起。可以按任意順序返回結果列表。 示例 1: 輸入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 輸出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]] 解釋: 在 strs 中沒有字符串可…

【Kafka】常見簡單八股總結

為什么使用消息隊列? 解耦: 我以我的一段開發經驗舉例: 【Kafka】登錄日志處理的三次階梯式優化實踐:從同步寫入到Kafka多分區批處理 我做過一個登錄日志邏輯,就是在登錄邏輯末尾,加一段寫進數據庫登錄日志…

微信小程序連接到阿里云物聯網平臺

目錄準備階段阿里云配置下載mqtt.min.js文件小程序實現注意小程序配置服務器域名概述:介紹使用微信小程序連接到阿里云平臺的快捷方法和完整過程。 阿里云平臺建立設備,提供mqtt連接參數,小程序借助mqtt.min.js,也就是基于Github下…

2-3〔O?S?C?P? ? 研記〕? 漏洞掃描?AppScan(WEB掃描)

鄭重聲明: 本文所有安全知識與技術,僅用于探討、研究及學習,嚴禁用于違反國家法律法規的非法活動。對于因不當使用相關內容造成的任何損失或法律責任,本人不承擔任何責任。 如需轉載,請注明出處且不得用于商業盈利。 …

LeetCode 刷題【47. 全排列 II】

47. 全排列 II 自己做 解1&#xff1a;檢查重復 class Solution { public:void circle(vector<int> nums, vector<vector<int>> &res,int start){int len nums.size();if(start len - 1){ //到頭了//檢查重復bool is_exist fa…

Https之(一)TLS介紹及握手過程詳解

文章目錄簡介 TLSTLS第一次握手1.Client HelloTLS第二次握手2.Server Hello3.Certificate4.Server Hello DoneTLS第三次握手5.Client Key Exchange6.Change Cipher Spec7.Encrypted Handshake MessageTLS第四次握手8.New Session Ticket9.Change Cipher Spec10.Encrypted Hands…