架構是數據倉庫建設的總體規劃,從整體視角描述了解決方案的高層模型,描述了各個子系統的功能以及關系,描述了數據從源系統到決策系統的數據流程。業務需求回答了要做什么,架構就是回答怎么做的問題。
架構的價值
數據倉庫架構
數據倉庫的核心功能從源系統抽取數據,通過清洗、轉換、標準化,將數據加載到BI平臺,進而滿足業務用戶的數據分析和決策支持。數據倉庫架構包含三個部分:數據架構、應用程序架構、底層設施。
底層設施
底層設施為架構提供了基礎,底層設施包括硬件、數據庫平臺、網絡和桌面系統。
硬件
硬件主要指服務器硬件,主要有數據庫服務器、ETL服務器、調度服務器、報表服務器、BI門戶服務器、接口服務器。
數據庫平臺
數據庫平臺分為二大類:聯機事務處理OLTP(on-line transaction processing)、聯機分析處理OLAP(On-Line Analytical Processing),OLAP是為數據分析而設計的數據庫管理系統。主要有Oracel,MySQL,Teradata, Greenplum,Hive,Kudu。
桌面系統
數據倉庫不同的應用對桌面系統也有不同的要求,開發工具主要有Window、mac面系統,部署服務器主要有Unix桌面系統,系統BI應用程序主要有Window、Mac、移動設備桌面系統。
網絡
網絡是底層設施的基礎,特別是大數據時代對網絡的要求越來越高。
BI應用程序架構
數據倉庫是數據處理的后臺,業務用戶并不關心后臺怎么處理。BI應用是數據呈現的前臺,是業務用戶進行查詢的入口。BI應用程序的體驗也是衡量數據倉庫是否成功的主要因素。
BI分析周期
業務分析從監視活動開始識別某個問題或時機,進而采取行動,最終回到監視該活動產生的結果上來,達到數據驅動業務增長的目的。分析周期把這個過程分為五個不同的階段。
BI應用分類
接口查詢
數據以接口的形式提供給上下游系統,供上下業務系統進行查詢。主要有推和拉二種模式。
即席查詢
業務用戶根據自己的需求,自定義查詢請求,后臺自動組織SQL語句訪問維度模型。
標準報表
根據業務用戶的需求,進行定制報表。
儀表盤
它是向企業展示度量信息和關鍵業務指標現狀的數據可視化工具。
數據挖掘
為數據挖掘工具提供標準基礎數據。
運營查詢
為了減少業務系統的大數據量查詢壓力,數據倉庫為業務系統提供實時的查詢。
數據存儲
數據架構
數據架構主要描述數據從源系統抽取數據,然后經過清洗、規范化、提交形成標準模型,最終提交給業務用戶,以及對數據的管理。
源系統
數據倉庫一般會面臨多個、異構數據源的問題,主要分為結構化,半結構化以及非結構化數據。為了便于管理需要對源系統建立元數據信息。
抽取
因為源系統的多樣性,源抽取階段一般選擇使用工具。在抽取之前還要做以下工作:
數據剖析是對數據的技術性分析,對數據的內容、一致性和結構進行描述。對源系統的數據質量進行評估。
數據剖析和變化數據捕獲策略:為了減少對源系統的影響,一般只抽取變化的數據,也需要識別物理刪除的數據。CDC策略主要有:
- 添加審計列
在源系統追加日期字段,當數據發生變化的時候,系統會自動更新該值。如果由后臺人員手工修改數據,可能就發生遺漏。
- 數據比較
比較源系統和數據倉庫的數據,只抽取變化的數據。這種方法需要全量的數據,比較耗費資源。可以視數據量的大小而定。
- 讀取日志
讀取數據庫操作日志信息,同步到數據倉庫中。一般日志的有效期比較短,一旦發生要重跑的情況,可能以前的日志已經被清空了。
- 消息隊列
把事務信息放到消息隊列里,以流的形式同步到數據倉庫。這種方式即可以減輕源系統的壓力,又能做到實時同步。
- 數據轉換
數據從源系統抽取過來之后,就要進入數據轉換階段。這一階段是數據倉庫開發核心階段。主要有以下步驟:
清洗
數據清洗是制定轉換規則,篩選數據并糾正數據的過程。清洗的目的是改進源系統的數據質量,但是不要在數據倉庫做過多的清洗,源系統的數據質量應該在源頭處理。清洗的主要內容包括:
規范化
規范化就是整合各個源系統的數據,把數據統一命名,統一取值,建立企業標準版本數據。主要內容包括:
提交
提交就要根據維度模型生成維度表和事實表。提交主要內容包括:
- 選擇合適的緩慢變化維類型
- 為維表生成代理鍵
- 管理不同粒度的層次維
- 管理專項維
- 生成維度橋接表
- 生成代理鍵管道
- 選擇合適的事實表類型
- 處理延遲到達的事實
- 生成維度表
- 生成事實表
聚集
聚集是指根據事務事實表進行更高粒度的聚合以及生成相對應的維度表。主要內容包括:
數據存儲
數據存儲是指在在數據的生命周期內對數據的管理,主要內容包括:
推薦閱讀:
大數據開發面試之數據倉庫
大數據開發技術之Hive數據倉庫架構分層
大數據開發之數倉建模
大數據開發之Hive如何數倉建設元數據信息統計