首页
/
每日頭條
/
科技
/
數據倉庫分層實戰
數據倉庫分層實戰
更新时间:2024-08-07 16:17:37

(1)為什麼要分層

作為一名數據的規劃者,我們肯定希望自己的數據能夠有秩序地流轉,數據的整個生命周期能夠清晰明确被設計者和使用者感知到。直觀來講就是如圖這般層次清晰、依賴關系直觀。

數據倉庫分層實戰(為什麼要給數據倉庫分層)1

但是,大多數情況下,我們完成的數據體系卻是依賴複雜、層級混亂的。如下圖,在不知不覺的情況下,我們可能會做出一套表依賴結構混亂,甚至出現循環依賴的數據體系。

數據倉庫分層實戰(為什麼要給數據倉庫分層)2

因此,我們需要一套行之有效的數據組織和管理方法來讓我們的數據體系更有序,這就是談到的數據分層。數據分層并不能解決所有的數據問題,但是,數據分層卻可以給我們帶來如下的好處:

1)清晰數據結構:每一個數據分層都有它的作用域和職責,在使用表的時候能更方便地定位和理解;2)減少重複開發:規範數據分層,開發一些通用的中間層數據,能夠減少極大的重複計算;3)統一數據口徑:通過數據分層,提供統一的數據出口,統一對外輸出的數據口徑;4)複雜問題簡單化:将一個複雜的任務分解成多個步驟來完成,每一層解決特定的問題。

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

(2)數據模型的分層

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)低基數維度數據:一般是配置表,比如枚舉值對應的中文含義,或者日期維表。數據量可能是個位數或者幾千幾萬。

數據倉庫分層實戰(為什麼要給數據倉庫分層)3

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

數據倉庫分層實戰(為什麼要給數據倉庫分層)4

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

(4)結合項目中使用

電商網站的數據體系設計,這裡針對用戶訪問日志這一部分數據進行舉例說明:

在ODS層中,由于各端的開發團隊不同或者各種其它問題,用戶的訪問日志被分成了好幾張表上報到了我們的ODS層。

為了方便大家的使用,我們在DWD層做了一張用戶訪問行為天表,在這裡,我們将PC網頁、H5、小程序和原生APP訪問日志彙聚到一張表裡面,統一字段名,提升數據質量,這樣就有了一張可供大家方便使用的明細表了。

在DWM層,我們會從DWD層中選取業務關注的核心維度來做聚合操作,比如隻保留人、商品、設備和頁面區域維度。類似的,我們這樣做很多個DWM的中間表。

然後在DWS層,我們将一個人在整個網站中的行為數據放到一張表中,這就是我們的寬表了,有了這張表,就可以快速滿足大部分的通用型業務需求了。最後,在APP應用層,根據需求從DWS層的一張或者多張表取出數據拼接成一張應用表即可。

數據倉庫分層實戰(為什麼要給數據倉庫分層)5

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
車鑰匙沒電了怎麼換
車鑰匙沒電了怎麼換
1、現在汽車鑰匙樣式各種各樣,不過内部構造都是相同的,遙控鑰匙基本都有一把機械鑰匙。2、部分鑰匙會把機械鑰匙部分折疊或隐藏起來。3、如果是折疊式的,彈開機械鑰匙後能從折疊位置看到卡扣,就可以把外殼拆開。4、如果是隐藏式機械鑰匙,小鑰匙還能用來撬鑰匙,鑰匙外殼取出後,取出舊紐扣電池。5、觀察新舊電池型...
2024-08-07
怎樣才能删除訂閱号信息
怎樣才能删除訂閱号信息
1、首先我們打開手機,在手機界面上找到“微信”點擊進入,我們進入微信主界面後在下面的菜單中找到第二個...
2024-08-07
電腦出現藍屏英文要怎麼處理
電腦出現藍屏英文要怎麼處理
1、電腦出現藍屏,一般都是由系統軟件、内存等原因引起的。2、電腦不心裝上了惡意軟件,或上網時産生了惡...
2024-08-07
手機刷機軟件哪個好
手機刷機軟件哪個好
1、深度刷機。深度刷機大師綠色版原深度一鍵刷機工具)是深度技術團隊為安卓用戶量身定制的一款安卓手機刷機軟件。有别于市面上其它的刷機工具,在易用性上作了深入的改進,為普通用戶首創了一鍵即可刷機”功能。對于這款刷機,相信很多朋友都使用過,安全問題是絕對沒什麼問題的,對于這個資深的開發團隊,還是值得信任的。2、刷機精靈。刷機機靈你的安卓手機智能管家:刷機精靈軟件是一款适用于Andorid設備的一鍵刷機軟
2024-08-07
聚氨酯防水材料的施工方法
聚氨酯防水材料的施工方法
1、施工前,先以鏟刀和掃帚将基層表面的突起物、砂漿疙瘩等異物鏟除,并将塵土雜物徹底清掃幹淨。對陰陽角...
2024-08-07
Copyright 2023-2024 - www.tftnews.com All Rights Reserved