• <nav id="dstbx"></nav>

    <nav id="dstbx"></nav>
    1. <form id="dstbx"></form>
    2. <small id="dstbx"></small>

      教育行業A股IPO第一股(股票代碼 003032)

      全國咨詢/投訴熱線:400-618-4000

      為什么要給數據倉庫分層?每層具體的含義是什么?

      更新時間:2021年07月23日15時05分 來源:傳智教育 瀏覽次數:

      好口碑IT培訓

      為什么要分層?
      作為一名數據的規劃者,我們肯定希望自己的數據能夠有秩序地流轉,數據的整個生命周期能夠清晰明確被設計者和使用者感知到。直觀來講就是如圖這般層次清晰、依賴關系直觀。
      Hive數據倉庫分層
      但是,大多數情況下,我們完成的數據體系卻是依賴復雜、層級混亂的。如下的右圖,在不知不覺的情況下,我們可能會做出一套表依賴結構混亂,甚至出現循環依賴的數據體系。
      Hive數據倉庫分層

      因此,我們需要一套行之有效的數據組織和管理方法來讓我們的數據體系更有序,這就是談到的數據分層。數據分層并不能解決所有的數據問題,但是,數據分層卻可以給我們帶來如下的好處:
      1)清晰數據結構:每一個數據分層都有它的作用域和職責,在使用表的時候能更方便地定位和理解;
      2)減少重復開發:規范數據分層,開發一些通用的中間層數據,能夠減少極大的重復計算;
      3)統一數據口徑:通過數據分層,提供統一的數據出口,統一對外輸出的數據口徑;
      4)復雜問題簡單化:將一個復雜的任務分解成多個步驟來完成,每一層解決特定的問題。

      為了滿足前面提到好處,通常將數據模型分為三層:數據運營層( ODS )、數據倉庫層(DW)和數據應用層(APP)。簡單來講,我們可以理解為:ODS層存放的是接入的原始數據,DW層是存放我們要重點設計的數據倉庫中間層數據,APP是面向業務定制的應用數據。下面詳細介紹這三層的設計。

      數據模型的分層

      1)源數據層(ODS)
      此層數據無任何更改,直接沿用外圍系統數據結構和數據,不對外開放;為臨時存儲層,是接口數據的臨時存儲區域,為后一步的數據處理做準備。

      2)數據倉庫層(DW)
      也稱為細節層,DW 層的數據應該是一致的、準確的、干凈的數據,即對源系統數據進行了清洗(去除了雜質)后的數據。

      此層可以細分為三層:
      明細層DWD(Data Warehouse Detail):存儲明細數據,此數據是最細粒度的事實數據。該層一般保持和ODS層一樣的數據粒度,并且提供一定的數據質量保證。同時,為了提高數據明細層的易用性,該層會采用一些維度退化手法,將維度退化至事實表中,減少事實表和維表的關聯。

      中間層DWM(Data WareHouse Middle):存儲中間數據,為數據統計需要創建的中間表數據,此數據一般是對多個維度的聚合數據,此層數據通常來源于DWD層的數據。

      業務層DWS(Data WareHouse Service):存儲寬表數據,此層數據是針對某個業務領域的聚合數據,業務層的數據通常來源與此層,為什么叫寬表,主要是為了業務層的需要在這一層將業務相關的所有數據統一匯集起來進行存儲,方便業務層獲取。此層數據通常來源與DWD和DWM層的數據。

      在實際計算中,如果直接從DWD或者ODS計算出寬表的統計指標,會存在計算量太大并且維度太少的問題,因此一般的做法是,在DWM層先計算出多個小的中間表,然后再拼接成一張DWS的寬表。由于寬和窄的界限不易界定,也可以去掉DWM這一層,只留DWS層,將所有的數據在放在DWS亦可。

      3)數據應用層(DA 或 APP)
      前端應用直接讀取的數據源;根據報表、專題分析的需求而計算生成的數據。

      4)維表層(Dimension)
      最后補充一個維表層,維表層主要包含兩部分數據:
      A)高基數維度數據:一般是用戶資料表、商品資料表類似的資料表。數據量可能是千萬級或者上億級別。
      B)低基數維度數據:一般是配置表,比如枚舉值對應的中文含義,或者日期維表。數據量可能是個位數或者幾千幾萬。

      Hive數據倉庫分層

      (3)問題擴展
      數據倉庫系統架構

      Hive數據倉庫分層

      上圖系統各部分的執行流程是:
      1)確定分析所依賴的源數據。
      2)通過ETL將源數據采集到數據倉庫。
      3)數據按照數據倉庫提供的主題結構進行存儲。
      4)根據各部門的業務分析要求創建數據集市(數據倉庫的子集)。
      5)決策分析、報表等應用系統從數據倉庫查詢數據、分析數據。
      6)用戶通過應用系統查詢分析結果、報表。

      (4)結合項目中使用

      電商網站的數據體系設計
      這里針對用戶訪問日志這一部分數據進行舉例說明:
      在ODS層中,由于各端的開發團隊不同或者各種其它問題,用戶的訪問日志被分成了好幾張表上報到了我們的ODS層。
      為了方便大家的使用,我們在DWD層做了一張用戶訪問行為天表,在這里,我們將PC網頁、H5、小程序和原生APP訪問日志匯聚到一張表里面,統一字段名,提升數據質量,這樣就有了一張可供大家方便使用的明細表了。
      在DWM層,我們會從DWD層中選取業務關注的核心維度來做聚合操作,比如只保留人、商品、設備和頁面區域維度。類似的,我們這樣做很多個DWM的中間表。
      然后在DWS層,我們將一個人在整個網站中的行為數據放到一張表中,這就是我們的寬表了,有了這張表,就可以快速滿足大部分的通用型業務需求了。
      最后,在APP應用層,根據需求從DWS層的一張或者多張表取出數據拼接成一張應用表即可。

      Hive數據倉庫分層






      猜你喜歡:

      Spark處理數據的速度比Hive更快?原因是什么?

      怎樣安裝Hive?本地和遠程操作安裝區別在哪里

      Redis、傳統數據庫、HBase以及Hive的區別

      傳智教育python+大數據培訓

      神马影院我不卡,农村丰满肥熟老妇女,午夜电影网,2018日日摸夜夜添夜夜添 网站地图 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>