一、什么是數據倉庫1. 定義
數據倉庫,由數據倉庫之父Bill Inmon 在1991 年出版的“Building the Data Warehouse”定義且被廣泛接受的——面向主題的、集成的、相對穩(wěn)定的、反映歷史變化的數據集合,用于支持管理決策。從定義上來看,數據倉庫的關鍵詞為面向主題、集成、穩(wěn)定、反映歷史變化、支持管理決策,而這些關鍵詞的實現就體現在分層架構內。
說到數倉不可避免的和傳統(tǒng)的數據庫進行比對:
2.目的
數倉的核心是解決 ETL 任務及工作流的組織、數據的流向、讀寫權限的控制、不同需求的滿足等各類問題,并提供給分析人員一個清晰可用的展現層,方便快速的業(yè)務支撐。
二、數據倉庫建設1.數據倉庫方法論
我們的數據倉庫按照分層設計架構劃分成貼源層、整合層、匯總層和集市層。
其中貼源層主要是對接原業(yè)務系統(tǒng)數據,將數據落地到數據倉庫中,貼源層的表結構和源數據表結構幾乎一樣,只是多了一些跑批時間字段或者增量數據標識等字段。
整合層建立模型標準,通過主題建模思路進行建設。例如,我們的整合層模型主題包括:學生、教師、課程等主題,并且其中包括了所有的維度表和事實表。
再就是匯總層,它是通過對下端集市層和應用的一個進行共性提煉,作為集市層的共性數據來源。
集市層主要是各個面向
數據應用的集市模型集合,它是直接對接下游數據應用的。
那么整個數據倉庫設計主要有兩種驅動模式進行建模,一個是自頂至下的數據驅動方向,另一個是由底至上的需求驅動方向。
2.數倉模型建設原則
然后我們看一數倉建模的一個原則,根據數據倉庫的定義,數據倉庫模型的建設原則有4點,分別是中性原則,一致性原則,靈活性原則、和粒度性原則。
●模型中性原則
整合層模型原則上不為任何特定的應用進行針對性的設計,模型不會由于現有應用的變動或者對新應用的支持而在結構上重構;
整合層模型對重要業(yè)務元素及業(yè)務規(guī)則進行規(guī)范化處理,例如所有個人客戶、團體客戶、代理人等都統(tǒng)稱為當事人,它是一個中性的概念,可以包含所有的個體以及各種可能的組合。
●模型一致性原則
作為數據倉庫設計基礎的,邏輯數據模型必須在設計過程中保持一個統(tǒng)一的業(yè)務定義,比如當事人的分類等應該在整個企業(yè)保持一致,將來各種分析應用都使用同樣的數據;
統(tǒng)一業(yè)務定義,使將來不同應用系統(tǒng)的開發(fā)人員在進行應用設計和展現時都使用同樣的語言。
●模型靈活性原則
基礎明細區(qū)模型是一個基本上滿足第三范式要求的關系模型,這種建模方式可以最大程度上減少數據冗余;
同時保證模型的靈活性和可擴展性,在模型設計過程中可以“想大做小”——在有一個全局規(guī)劃的同時,選定某些部分入手,然后再逐步完善。
●模型粒度性原則
為了滿足將來不同的應用分析對數據的需要,基礎明細區(qū)模型能夠提供最小粒度的詳細數據,以支持各種可能的分析查詢。
3.數倉模型建設步驟
那么根據我們數據倉庫的建設原則,它的一個建設步驟主要分為5步來走。
①調研與分析:對數據源和業(yè)務需求進行調研,分析數倉各層所涉及的內容。
②邏輯模型設計:數據交叉表設計、概念模型和專有模型設計。
③物理模型設計:物理模型命名、索引優(yōu)化、分區(qū)優(yōu)化、生命周期管理。
④數據映射:源表到
數據集市物理表的數據映射設計。
⑤ETL開發(fā)測試:物理作業(yè)開發(fā)、性能優(yōu)化、單元測試和集成測試。
4.數倉模型建設方法
接下來我們看一看數倉模型的建設方法,它是的框架是按照3種模型自上而下建設的,首先是建立我們的概念模型,然后概念模型根據客戶的情況落地到邏輯模型,邏輯模型之后我們會進行模型的一個物理化過程,那么之前的業(yè)務和數據都會被我們進行物理化的一個落地。

例子:從我們的概念模型根據客戶的情況落地到邏輯模型,我們主要會做幾個處理,包括:復制、整合和拆分,例如拆分怎么理解呢,例如源業(yè)務系統(tǒng)兩個表中分別都有數額這個字段,但是在一個是余額一個發(fā)生額,這種屬于業(yè)務含義不同,但名稱相同的,我們會進行拆分處理,將相應字段重命名統(tǒng)一標準納入到邏輯模型當中,復制是含義和名字一致的,直接納入模型中,整合是業(yè)務含義一致但名稱不一致的,我們會統(tǒng)一標準以后再納入。
邏輯模型之后我們會進行物理化落地,那么目前業(yè)務和數據都支持的我們會進行物理化。
5.ETL(抽取、轉換、加載)與ELT(抽取、加載、轉換)
那么模型講完了,我們看看數倉里面必不可少的ETL過程,什么是ETL呢,大家應該都聽說過,它是我們的數據源從原系統(tǒng)轉移到數據倉庫的一個常用方法,那么這個方法包含3個過程,就是抽取、轉換和加載,無論在物理還是虛擬的狀態(tài)下,批量還是實時的執(zhí)行ETL,都是應用程序和數據倉庫間數據流動的必要步驟。

那除了ETL,我們數據源從原系統(tǒng)轉移到數據倉庫還有另外一種模式,就是ELT,ELT與ETL別在其實就在于這個轉換的時間點的,ETL是抽取了就轉換,ELT它則是先將數據快速抽取加載到數倉里面,然后再進行轉換。
6.ETL開發(fā)
講完轉移過程,我們來看看ETL的開發(fā),這個我們是支持將映射文檔中的源表與目標表的的映射關系進行匹配的,可以使用我們的ETL開發(fā)工具,通過簡單的拖拉拽的形式,完成一個ETL開發(fā)的落地。
7.調度管理
那么完成開發(fā)落地以后,我們要干什么,就是要去執(zhí)行ETL對吧,最理想的肯定是自動調度,我們是支持全流程的自動調度管理的,包括執(zhí)行策略,執(zhí)行頻次,執(zhí)行后的提醒,結果的通知等等。
調度管理的目的:
通過ETL工具控制ETL作業(yè)的執(zhí)行時間、執(zhí)行頻次。
并且設置郵件發(fā)送執(zhí)行情況,當ETL流執(zhí)行出錯時,相關人員可收到通知和相關信息,并根據信息判斷做出處理。
三、PetaBase-s 湖倉一體化平臺
PetaBase-s是億信華辰重磅推出的
企業(yè)級實時大數據平臺。它基于開源Hadoop框架開發(fā),融合MPP、SQL on Hadoop、流處理等大數據技術,支持海量數據的高效儲存和統(tǒng)一管理,為企業(yè)決策提供實時的數據支撐。湖倉一體化平臺主要解決結構化,非結構化融合存儲的混合應用場景,主要面向能源,工業(yè),政務等業(yè)務范疇比較廣的行業(yè)。
(部分內容來源網絡,如有侵權請聯系刪除)