資料倉庫模型說明
數倉概述
資料倉庫的建設是一個過程,而不是一個專案。在這個過程中我們需要形成自己的規範,以方便管理和維護。在資料倉庫的建設過程中,不僅會面臨著公司業務迅速發展,業務系統迭代變更,需要對業務系統資料進行相應的整合,形成公司完整的統一資料檢視;而且基於資料倉庫的應用也是多樣化的,比如支撐自己企業的資料視覺化平臺、即席查詢、對策略提供資料支援等。
數倉模型
1、 模型層定義
模型層次 | 英文全稱 | 中文名 | 層次定義 |
---|---|---|---|
ODL | Operational Data Layer | 操作資料層 | 該層級主要功能是儲存從源系統直接獲得的資料(資料從資料結構、資料之間的邏輯關係上都與源系統基本保持一致) |
IDL | Integrated Data Layer | 整合資料層 | 該層的主要功能是基於主題域的劃分,面向業務主題、以資料為驅動設計模型,並且基於3NF建模,完成資料整合,提供統一的基礎資料來源。 |
CDL | Component Data Layer | 元件資料層 | 面向分析主題的、統一的資料訪問層,所有的基礎資料、業務規則和業務實體的基礎指標庫以及多維模型都在這裡統一計算口徑、統一建模,大量基礎指標庫以及多維模型在該層實現。該層級以分析需求為驅動進行模型設計,實現跨業務主題域資料的關聯計算或者輕度彙總計算,因此會有大資料量的多表關聯彙總計算。 |
MDL | Mart Data Layer | 資料集市層 | 該層次主要功能是加工多維度冗餘的寬表(解決複雜的查詢)、多維分析的彙總表。 |
ADL | Application Data Layer | 應用資料層 | 該層級的主要功能是滿足業務方的需求;在該層級實現報表(海豚、星空、郵件報表)、自助取數等需求。 |
DIM | Dimension Data Layer | 維度層 | 該層主要儲存簡單、靜態、程式碼類的維表,包括從OLTP層抽取轉換維表、根據業務或分析需求構建的維表以及倉庫技術維表如日期維表等。 |
REF | 資料介面層 | 該層級獨立於其他層級之外,其來源可以是任意層級,主要存放的是在與其他組對接的時候提供給對方的資料 |
2、 模型思想
2.1 ODL模型
資料層次
ODL(操作資料層),該層級主要臨時儲存從多種資料來源(包括線上業務系統和點選流日誌)抽取的業務資料。
資料特點
-
資料集結構及資料集間關係都和資料來源基本保持一致
-
臨時儲存,資料儲存一到兩週即可刪除或備份至廉價裝置
-
資料集多為增量抽取,產生大量的Delta資料集
資料處理
-
資料集增量獲取、分發
-
資料集輕度清洗,如字符集轉換、髒資料過濾、第一類維值標準化處理等
-
點選流資料處理,完成日誌獲取、字串處理、URL解析等
資料抽取
主要是增量抽取為主、有部分業務表涉及全量抽取;增量抽取通過storm消費binlog日誌方式來獲得源資料庫中變化的資料,解析源資料庫日誌,準實時的生
成增量資料;
全量抽取將資料來源中的表或檢視的資料從資料庫中抽取出來,抽取時間較長,效率低。
資料儲存
ODL層設計上分為兩個層次,第一個層次儲存近一段時間的增量資料(貼源),一般是通過訂閱Binlog日誌生成帶event type和event time等欄位的日分割槽delta表;
第二個層次儲存全量資料資訊,通過append delta表生成全量資料;
2.2 IDL模型
資料層次
IDL(整合資料層),該層級按照業務主題組織資料,完成對ODL層資料的清洗和整合,為CDL層提供資料結構統一、業務語義標準的基礎資料。
資料特點
-
明細資料,按照業務主題分類,以業務為驅動設計表結構和表間關係
-
資料整合,基於3NF設計模型,並在語義層達到統一和標準
-
資料帶有倉庫層的日期和狀態標籤,可追溯其生命週期中的所有變化狀態
資料處理
-
對ODL資料進行整合整合,資料項進行重定義和清洗,完成業務資料的歸一化處理
-
梳理第一類維表來源,即從源業務系統抽取的程式碼表,並完成緩慢變化維處理
-
使用ODL層的Delta(增、刪、改)資料、全量資料更新當前表和歷史表,資料儲存上採用拉鍊和快照方式儲存
資料更新策略
-
全量快照:每天儲存一份最新的資料,來源資料為全量資料,資料量較小(預設小於10W),且需要保留歷史變化軌跡
-
拉鍊表:通過開閉鏈時間維護最新資料
-
增量表:增量插入當天分割槽,例如:日誌表
-
全量覆蓋:刪除目標表全部資料,再插入當前資料;來源資料為全量資料,且無需保留歷史軌跡,只使用最新狀態資料
2.3 CDL模型
資料層次
CDL(元件資料層),該層級按照分析主題組織資料,跨IDL層的業務主題,整合與該分析主題相關的所有資料,為ADL層的分析模型提供共享的、可複用的元件資料。
資料特點
-
資料模型相對穩定,無衍生指標,輕度彙總
-
多維模型:分析物件的狀態(靜態、描述)資料和相關事實表或維表關聯形成以冗餘寬表為中心的雪花或星型模型
-
基礎指標庫:分析物件的行為(主動、被動)資料彙總而成的一系列基礎指標庫
資料處理
-
分析物件和相關事實表或維表進行多表關聯計算生成多維模型
-
對分析物件的行為資料進行彙總計算生成基礎指標庫
-
梳理兩類維表來源,一是分析需求,二是倉庫技術
-
對多維模型或基礎指標資料進行輕度彙總,產生基礎的、通用的彙總模型
資料種類
-
多維模型資料(Multidimensional Data):採用維度建模方式建立的資料模型資料。
-
基礎指標庫資料(Stable Indicator Data):基於某個分析實體的一系列基礎指標集合。
-
常用通用的JOIN資料(Common Join Data):從IDL層上來的一些實體物件,可能需要經常JOIN在一起使用,在此可以預先處理一些常用通用的JOIN邏輯。
資料重新整理
保留每日資料的應用狀態,儲存採用每日資料快照的方式
2.4 MDL模型
資料層次
MDL(資料集市層),該層次主要功能是加工多維度冗餘的寬表(解決複雜的查詢)、多角度分析的彙總表。
資料特點
-
資料模型相對穩定,有衍生指標
-
寬表模型:基礎指標群、多維模型資料和相關事實表或維表關聯形成通用或定製的冗餘寬表
-
多角度彙總:從多個角度分析的彙總模型
資料處理
-
多維模型資料和相關事實表或維表進行多表關聯計算生成寬表模型
-
對多維模型或基礎指標資料進行彙總,產生個性的、通用的彙總模型
2.5 ADL模型
資料層次
ADL(應用資料層),該層級按照專案和應用組織資料,以CDL層的半成品元件資料為基礎,規劃多樣化、個性化的衍生指標體系、分析模型和資料應用。
資料特點
-
資料模型不穩定,隨著分析演算法和應用的變更隨時變化或下線
-
資料高度彙總,可做交叉分析、上卷、下鑽、切片、切塊、旋轉等多維分析操作
-
更高階的資料分析或挖掘應用,衍生出資訊類、知識類資料
資料處理
-
根據不同的資料應用處理資料,所有的指標或者彙總都依賴於具體的業務分析主題和分析人員的定義,並直接交付資訊給使用者
-
資料處理和資訊交付方式多樣,如報表、儀表盤、即席查詢、多維分析、實時資料應用、資料探勘應用等
2.6 DIM模型
DIM層主要包括三類即簡單、靜態、程式碼類維表,儲存倉庫層歸納梳理的所有維表資訊:
-
從業務源系統抽取轉化的維表,每日保留全量快照;
-
根據業務分析需求構建的維表,每日保留全量快照;
-
倉庫技術常用維表,只保留當前資訊;