系列 | 漫談數倉第一篇NO.1 『基礎架構』
- 2019 年 10 月 6 日
- 筆記
轉自:數據倉庫與Python大數據
作者:紫霞仙子
01. 架構演進
離線數據倉庫到實時數據倉庫,從lambda架構到kappa架構、再到混合架構。本文不再多再介紹,之前文章已有深入介紹,如有興趣可看這篇文章:數據倉庫介紹與阿里實時數倉案例 (點擊鏈接)。

02. 邏輯分層
數倉分層,一般按ods->dw->dm整體架構。不同的企業,不同的業務場景,有衍生出不同的分層架構模式。例如經典四層架構:ods->dwd->dws-ads,bdl->fdl->gdl->adl等。

技術選型,傳統數倉一般以Oracle、greenplum、teradata 等,互聯網數倉一般以Hadoop生態圈為主,離線以Hive為核心,准實時以spark為核心,實時以flink為核心構建。
03. 數據調研
業務調研,業務側對齊,遵循關係型資料庫建模方式,從概念模型(cdm)->邏輯模型(ldm)->物理模型(pdm)建模套路,是一個從抽象到具體的一個不斷細化完善的分析,設計和開發的過程。

需求調研,現有BI報表需求,統計需求,用戶畫像,推薦系統等數據應用。
資料庫調研,了解資料庫表數據結構、數據形態,全局把握業務流程數據流向,做到真正業務流程和數據結構結合。
04. 主題域劃分
業務高度抽象,可先確定企業業務bu模組,然後可根據概念模型(cdm)進行一級主題劃分,確定一致性維度和事實流程,構建匯流排矩陣。

圖片來源 Kimball《The Data Warehouse Toolkits,- 3rd Edition》
按照kimball大師經典建模四步驟:選擇業務過程->聲明粒度->確定維度->確定事實 進行維度建模。

05. 數倉規範
構建企業級數據倉庫,必不可少的就是制定數倉規範。包括 命名規範,流程規範,設計規範,開發規範 等。無規矩不成方圓,建設數倉也是這樣。

開發規範 示例:

06. 數據治理
大數據時代必不可少的一個重要環節,可從數據品質、元數據管理、數據安全、數據生命周期等方面開展實施。數據治理是一個企業安身立命的根本。
數據品質,必須保證完整性、準確性、一致性、時效性。每一個任務都應該配置數據品質監控,嚴禁任務裸奔。可建設統一數據品質告警中心從以下四個方面進行監控、預警和優化任務。

元數據管理,關於數據的數據。可分為技術元數據和業務元數據。對於數倉開發和維護,模型血緣關係尤為重要。
數據安全,可包含以下五方面的內容,即數據的保密性、真實性、完整性、未授權拷貝和所寄生系統的安全性。
07. 數倉理念
從80年代到現在,數據倉庫流派之爭已趨於穩緩,比較經典的就是數倉大師Kimball的維度建模、數倉之父Inmon的範式(E-R)建模,另外還有Data Vault建模、Anchor模型等。
Kimball Data Warehouse Architecture:

Inmon Data Warehouse Architecture:

結語:數倉是一種思想,數倉是一種規範,數倉是一種解決方案。