<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          詳解數(shù)據(jù)倉庫和數(shù)據(jù)集市:ODS、DW、DWD、DWM、DWS、ADS

          共 6858字,需瀏覽 14分鐘

           ·

          2022-11-28 21:36

          點擊上方 " 大數(shù)據(jù)肌肉猿 "關注,?星標一起成長

          點擊下方鏈接,進入高質量學習交流群

          今日更新| 1052個轉型案例分享-大數(shù)據(jù)交流群

          7da94f331ddbf5e5bdc6054ac0b47da8.webp


          一、數(shù)據(jù)流向

          b5b1945e2c87c09c8886165edb80fd9e.webp


          二、應用示例

          2f5080323a35f2bfe1f6d042a2727b46.webp

          三、何為數(shù)倉DW

          Data warehouse(可簡寫為DW或者DWH)數(shù)據(jù)倉庫,是在數(shù)據(jù)庫已經(jīng)大量存在的情況下,它是一整套包括了etl、調度、建模在內的完整的理論體系 數(shù)據(jù)倉庫的方案建設的目的,是為前端查詢和分析作為基礎,主要應用于OLAP(on-line Analytical Processing),支持復雜的分析操作,側重決策支持,并且提供直觀易懂的查詢結果。目前行業(yè)比較流行的有:AWS Redshift,Greenplum,Hive等。 數(shù)據(jù)倉庫并不是數(shù)據(jù)的最終目的地,而是為數(shù)據(jù)最終的目的地做好準備,這些準備包含:清洗、轉義、分類、重組、合并、拆分、統(tǒng)計等

          主要特點

          • 面向主題[附錄]
            • 操作型數(shù)據(jù)庫組織面向事務處理任務,而數(shù)據(jù)倉庫中的數(shù)據(jù)是按照一定的主題域進行組織。
            • 主題是指用戶使用數(shù)據(jù)倉庫進行決策時所關心的重點方面,一個主題通過與多個操作型信息系統(tǒng)相關。
          • 集成
            • 需要對源數(shù)據(jù)進行加工與融合,統(tǒng)一與綜合
            • 在加工的過程中必須消除源數(shù)據(jù)的不一致性,以保證數(shù)據(jù)倉庫內的信息時關于整個企業(yè)的一致的全局信息。(關聯(lián)關系)
          • 不可修改
            • DW中的數(shù)據(jù)并不是最新的,而是來源于其他數(shù)據(jù)源
            • 數(shù)據(jù)倉庫主要是為決策分析提供數(shù)據(jù),涉及的操作主要是數(shù)據(jù)的查詢
          • 與時間相關
            • 處于決策的需要數(shù)據(jù)倉庫中的數(shù)據(jù)都需要標明時間屬性

          與數(shù)據(jù)庫的對比

          • DW:專門為數(shù)據(jù)分析設計的,涉及讀取大量數(shù)據(jù)以了解數(shù)據(jù)之間的關系和趨勢
          • 數(shù)據(jù)庫:用于捕獲和存儲數(shù)據(jù)

          四、為何要分層

          數(shù)據(jù)倉庫中涉及到的問題:
          1. 為什么要做數(shù)據(jù)倉庫?
          2. 為什么要做數(shù)據(jù)質量管理?
          3. 為什么要做元數(shù)據(jù)管理?
          4. 數(shù)倉分層中每個層的作用是什么?
          5. …...
          在實際的工作中,我們都希望自己的數(shù)據(jù)能夠有順序地流轉,設計者和使用者能夠清晰地知道數(shù)據(jù)的整個聲明周期,比如下面左圖。 但是,實際情況下,我們所面臨的數(shù)據(jù)狀況很有可能是復雜性高、且層級混亂的,我們可能會做出一套表依賴結構混亂,且出現(xiàn)循環(huán)依賴的數(shù)據(jù)體系,比如下面的右圖。 42448e4c4ac43dafc19d0b8ba7e0e270.webp為了解決我們可能面臨的問題,需要一套行之有效的數(shù)據(jù)組織、管理和處理方法,來讓我們的數(shù)據(jù)體系更加有序,這就是數(shù)據(jù)分層。數(shù)據(jù)分層的好處:
          • 清晰數(shù)據(jù)結構:讓每個數(shù)據(jù)層都有自己的作用和職責,在使用和維護的時候能夠更方便和理解
          • 復雜問題簡化:將一個復雜的任務拆解成多個步驟來分步驟完成,每個層只解決特定的問題
          • 統(tǒng)一數(shù)據(jù)口徑:通過數(shù)據(jù)分層,提供統(tǒng)一的數(shù)據(jù)出口,統(tǒng)一輸出口徑
          • 減少重復開發(fā):規(guī)范數(shù)據(jù)分層,開發(fā)通用的中間層,可以極大地減少重復計算的工作

          五、數(shù)據(jù)分層

          每個公司的業(yè)務都可以根據(jù)自己的業(yè)務需求分層不同的層次;目前比較成熟的數(shù)據(jù)分層:數(shù)據(jù)運營層ODS、數(shù)據(jù)倉庫層DW、數(shù)據(jù)服務層ADS(APP)。

          數(shù)據(jù)運營層ODS

          數(shù)據(jù)運營層:Operation Data Store 數(shù)據(jù)準備區(qū),也稱為貼源層。數(shù)據(jù)源中的數(shù)據(jù),經(jīng)過抽取、洗凈、傳輸,也就是ETL過程之后進入本層。該層的主要功能:
          • ODS是后面數(shù)據(jù)倉庫層的準備區(qū)
          • 為DWD層提供原始數(shù)據(jù)
          • 減少對業(yè)務系統(tǒng)的影響
          在源數(shù)據(jù)裝入這一層時,要進行諸如去噪(例如有一條數(shù)據(jù)中人的年齡是 300 歲,這種屬于異常數(shù)據(jù),就需要提前做一些處理)、去重(例如在個人資料表中,同一 ID 卻有兩條重復數(shù)據(jù),在接入的時候需要做一步去重)、字段命名規(guī)范等一系列操作。 但是為了考慮后續(xù)可能需要追溯數(shù)據(jù)問題,因此對于這一層就不建議做過多的數(shù)據(jù)清洗工作,原封不動地接入原始數(shù)據(jù)也可以,根據(jù)業(yè)務具體分層的需求來做。 這層的數(shù)據(jù)是后續(xù)數(shù)據(jù)倉庫加工數(shù)據(jù)的來源。數(shù)據(jù)來源的方式:
          • 業(yè)務庫
            • 經(jīng)常會使用sqoop來抽取,例如每天定時抽取一次。
            • 實時方面,可以考慮用canal監(jiān)聽mysql的binlog,實時接入即可。
          • 埋點日志
            • 日志一般以文件的形式保存,可以選擇用flume定時同步
            • 可以用spark streaming或者Flink來實時接入
            • kafka也OK
          • 消息隊列:即來自ActiveMQ、Kafka的數(shù)據(jù)等。

          數(shù)據(jù)倉庫層

          數(shù)據(jù)倉庫層從上到下,又可以分為3個層:數(shù)據(jù)細節(jié)層DWD、數(shù)據(jù)中間層DWM、數(shù)據(jù)服務層DWS。

          數(shù)據(jù)細節(jié)層DWD

          數(shù)據(jù)細節(jié)層:data warehouse details,DWD(數(shù)據(jù)清洗/DWI) 該層是業(yè)務層和數(shù)據(jù)倉庫的隔離層,保持和ODS層一樣的數(shù)據(jù)顆粒度;主要是對ODS數(shù)據(jù)層做一些數(shù)據(jù)的清洗和規(guī)范化的操作,比如去除空數(shù)據(jù)、臟數(shù)據(jù)、離群值等。 為了提高數(shù)據(jù)明細層的易用性,該層通常會才采用一些維度退化方法,將維度退化至事實表中,減少事實表和維表的關聯(lián)。

          數(shù)據(jù)中間層DWM

          數(shù)據(jù)中間層:Data Warehouse Middle,DWM 該層是在DWD層的數(shù)據(jù)基礎上,對數(shù)據(jù)做一些輕微的聚合操作,生成一些列的中間結果表,提升公共指標的復用性,減少重復加工的工作。 簡答來說,對通用的核心維度進行聚合操作,算出相應的統(tǒng)計指標。

          數(shù)據(jù)服務層DWS

          數(shù)據(jù)服務層:Data Warehouse Service,DWS(寬表-用戶行為,輕度聚合) 該層是基于DWM上的基礎數(shù)據(jù),整合匯總成分析某一個主題域的數(shù)據(jù)服務層,一般是寬表,用于提供后續(xù)的業(yè)務查詢,OLAP分析,數(shù)據(jù)分發(fā)等。 一般來說,該層的數(shù)據(jù)表會相對較少;一張表會涵蓋比較多的業(yè)務內容,由于其字段較多,因此一般也會稱該層的表為寬表。
          • 用戶行為,輕度聚合對DWD
          • 主要對ODS/DWD層數(shù)據(jù)做一些輕度的匯總。

          數(shù)據(jù)應用層ADS

          數(shù)據(jù)應用層:Application Data Service,ADS(APP/DAL/DF)-出報表結果 該層主要是提供給數(shù)據(jù)產(chǎn)品和數(shù)據(jù)分析使用的數(shù)據(jù),一般會存放在ES、Redis、PostgreSql等系統(tǒng)中供線上系統(tǒng)使用;也可能存放在hive或者Druid中,供數(shù)據(jù)分析和數(shù)據(jù)挖掘使用,比如常用的數(shù)據(jù)報表就是存在這里的。

          事實表 Fact Table

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

          維表層Dimension(DIM)

          維度表(Dimension Table)或維表,有時也稱查找表(Lookup Table),是與事實表相對應的一種表;它保存了維度的屬性值,可以跟事實表做關聯(lián),相當于將事實表上經(jīng)常重復出現(xiàn)的屬性抽取、規(guī)范出來用一張表進行管理。維度表主要是包含兩個部分:
          • 高基數(shù)維度數(shù)據(jù):一般是用戶資料表、商品資料表類似的資料表,數(shù)據(jù)量可能是千萬級或者上億級別
          • 低基數(shù)維度數(shù)據(jù):一般是配置表,比如枚舉字段對應的中文含義,或者日期維表等;數(shù)據(jù)量可能就是個位數(shù)或者幾千幾萬。

          臨時表TMP

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

          六、數(shù)據(jù)集市

          狹義ADS層;廣義上指hadoop從DWD DWS ADS 同步到RDS的數(shù)據(jù) 數(shù)據(jù)集市(Data Mart),也叫數(shù)據(jù)市場,數(shù)據(jù)集市就是滿足特定的部門或者用戶的需求,按照 多維 的方式進行存儲,包括定義維度、需要計算的指標、維度的層次等,生成面向決策分析需求的 數(shù)據(jù)立方體 從范圍上來說,數(shù)據(jù)是從企業(yè)范圍的 數(shù)據(jù)庫 數(shù)據(jù)倉庫 ,或者是更加專業(yè)的數(shù)據(jù)倉庫中抽取出來的。數(shù)據(jù)中心的重點就在于它迎合了專業(yè)用戶群體的特殊需求,在分析、內容、表現(xiàn),以及易用方面。數(shù)據(jù)中心的用戶希望數(shù)據(jù)是由他們熟悉的術語表現(xiàn)的。 帶有數(shù)據(jù)集市的數(shù)據(jù)倉儲結構

          a2b277c3f755f3b7ec5d6fc3c11b1664.webp

          區(qū)別數(shù)據(jù)倉庫 數(shù)據(jù)集市就是企業(yè)級 數(shù)據(jù)倉庫 的一個子集,它主要面向部門級業(yè)務,并且只面向某個特定的主題。為了解決靈活性與性能之間的矛盾,數(shù)據(jù)集市就是數(shù)據(jù)倉庫體系結構中增加的一種小型的部門或工作組級別的數(shù)據(jù)倉庫。數(shù)據(jù)集市存儲為特定用戶預先計算好的數(shù)據(jù),從而滿足用戶對性能的需求。數(shù)據(jù)集市可以在一定程度上緩解訪問數(shù)據(jù)倉庫的瓶頸。 理論上講,應該有一個總的數(shù)據(jù)倉庫的概念,然后才有數(shù)據(jù)集市。實際建設數(shù)據(jù)集市的時候,國內很少這么做。國內一般會先從數(shù)據(jù)集市入手,就某一個特定的主題(比如企業(yè)的客戶信息)先做數(shù)據(jù)集市,再建設數(shù)據(jù)倉庫。數(shù)據(jù)倉庫和數(shù)據(jù)集市建立的先后次序之分,是和設計方法緊密相關的。而數(shù)據(jù)倉庫作為工程學科,并沒有對錯之分。 在數(shù)據(jù)結構上,數(shù)據(jù)倉庫是面向主題的、集成的數(shù)據(jù)的集合。而數(shù)據(jù)集市通常被定義為星型結構或者雪花型數(shù)據(jù)結構,數(shù)據(jù)集市一般是由一張事實表和幾張維表組成的。 fe25ed63ec8f3c0c84bb390d45be50b2.webp


          七、問題總結

          ODS與DWD區(qū)別?

          問:還是不太明白 ods 和 dwd 層的區(qū)別,有了 ods 層后感覺 dwd 沒有什么用了。
          答:嗯,我是這樣理解的,站在一個理想的角度來講,如果 ods 層的數(shù)據(jù)就非常規(guī)整,基本能滿足我們絕大部分的需求,這當然是好的,這時候 dwd 層其實也沒太大必要。但是現(xiàn)實中接觸的情況是 ods 層的數(shù)據(jù)很難保證質量,畢竟數(shù)據(jù)的來源多種多樣,推送方也會有自己的推送邏輯,在這種情況下,我們就需要通過額外的一層 dwd 來屏蔽一些底層的差異。
          問:我大概明白了,是不是說 dwd 主要是對 ods 層做一些數(shù)據(jù)清洗和規(guī)范化的操作,dws 主要是對 ods 層數(shù)據(jù)做一些輕度的匯總?
          答:對的,可以大致這樣理解。

          APP層干什么的?

          問:感覺DWS層是不是沒地方放了,各個業(yè)務的DWS表是應該在 DWD還是在 app?

          答:這個問題不太好回答,我感覺主要就是明確一下DWS層是干什么的,如果你的DWS層放的就是一些可以供業(yè)務方使用的寬表表,放在 app 層就行。如果你說的數(shù)據(jù)集市是一個比較泛一點的概念,那么其實 dws、dwd、app 這些合起來都算是數(shù)據(jù)集市的內容。

          問:那存到 Redis、ES 中的數(shù)據(jù)算是 app層嗎?

          答:算是的,我個人的理解,app 層主要存放一些相對成熟的表,能供業(yè)務側使用的。這些表可以在 Hive 中,也可以是從 Hive 導入 Redis 或者 ES 這種查詢性能比較好的系統(tǒng)中。

          八、附錄

          1. ETL

          ETL :Extract-Transform-Load,用于描述將數(shù)據(jù)從來源端經(jīng)過抽取、轉換、加載到目的端的過程。

          2. 寬表

          • 含義:指字段比較多的數(shù)據(jù)庫表。通常是指業(yè)務主體相關的指標、緯度、屬性關聯(lián)在一起的一張數(shù)據(jù)庫表。
          • 特點:
            • 寬表由于把不同的內容都放在同一張表,寬表已經(jīng)不符合三范式的模型設計規(guī)范:
              • 壞處:數(shù)據(jù)有大量冗余
              • 好處:查詢性能的提高和便捷
            • 寬表的設計廣泛應用于數(shù)據(jù)挖掘模型訓練前的數(shù)據(jù)準備,通過把相關字段放在同一張表中,可以大大提供數(shù)據(jù)挖掘模型訓練過程中迭代計算的消息問題。

          3. 主題(Subject)

          是在較高層次上將企業(yè)信息系統(tǒng)中的數(shù)據(jù)進行綜合、歸類和分析利用的一個抽象概念,每一個主題基本對應一個宏觀的分析領域。在邏輯意義上,它是對應企業(yè)中某一宏觀分析領域所涉及的分析對象。例如“銷售分析”就是一個分析領域,因此這個數(shù)據(jù)倉庫應用的主題就是“銷售分析”。

          --end--

                掃描下方二維碼
          添加好友,備注【 交流 可圍觀朋友圈,也可私信交流

          瀏覽 77
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久草2024 | 黄片三区四区 | 欧美 中文字幕 精品 | 成人十八禁网站 | 台湾在线视频一区二 |