數據倉庫基礎知識

一、什么是數據倉庫

數據倉庫,英文名稱為DataWarehouse,可簡寫為DW或DWH。數據倉庫,是為企業所有級別的決策制定過程,提供所有類型數據支持的戰略集合。它出于分析性報告和決策支持目的而創建。為需要業務智能的企業,提供指導業務流程改進、監視時間、成本、質量以及控制。

1、數據倉庫的特點

  • 面向主題:傳統數據庫面向應用進行數據組織的特點相對應,數據倉庫中的數據是面向主題進行組織的。面向主題的數據組織方式,就是在較高層次上對分析對象的數據的一個完整、一致的描述,能完整、統一地刻劃各個分析對象所涉及的企業的各項數據,以及數據之間的聯系。
  • 集成:數據倉庫的數據是從原有的分散的數據庫數據抽取來的。操作型數據與DSS分析型數據之間差別甚大。數據進入數據倉庫之前,必然要經過統一與綜合,這一步是數據倉庫建設中最關鍵、最復雜的一步,所要完成的工作有:
    (1)要統一源數據中所有矛盾之處,如字段的同名異義、異名同義、單位不統一、字長不一致,等等。
    (2)進行數據綜合和計算。數據倉庫中的數據綜合工作可以在從原有數據庫抽取數據時生成,但許多是在數據倉庫內部生成的,即進入數據倉庫以后進行綜合生成的。
  • 不可更新:數據倉庫的數據主要供企業決策分析之用,所涉及的數據操作主要是數據查詢,一般情況下并不進行修改操作。數據倉庫的數據反映的是一段相當長的時間內歷史數據的內容,是不同時點的數據庫快照的集合,以及基于這些快照進行統計、綜合和重組的導出數據,而不是聯機處理的數據。數據庫中進行聯機處理的數據經過集成輸入到數據倉庫中,一旦數據倉庫存放的數據已經超過數據倉庫的數據存儲期限,這些數據將從當前的數據倉庫中刪去。因為數據倉庫只進行數據查詢操作,所以數據倉庫管理系統相比數據庫管理系統而言要簡單得多。數據庫管理系統中許多技術難點,如完整性保護、并發控制等等,在數據倉庫的管理中幾乎可以省去。但是由于數據倉庫的查詢數據量往往很大,所以就對數據查詢提出了更高的要求,它要求采用各種復雜的索引技術;同時由于數據倉庫面向的是商業企業的高層管理者,他們會對數據查詢的界面友好性和數據表示提出更高的要求。
  • 隨時間不斷變化:這一特征表現在以下3方面:
    (1)數據倉庫隨時間變化不斷增加新的數據內容。數據倉庫系統必須不斷捕捉OLTP數據庫中變化的數據,追加到數據倉庫中去,也就是要不斷地生成OLTP數據庫的快照,經統一集成后增加到數據倉庫中去;但對于確實不再變化的數據庫快照,如果捕捉到新的變化數據,則只生成一個新的數據庫快照增加進去,而不會對原有的數據庫快照進行修改。
    (2)數據倉庫隨時間變化不斷刪去舊的數據內容。數據倉庫的數據也有存儲期限,一旦超過了這一期限,過期數據就要被刪除。只是數據倉庫內的數據時限要遠遠長于操作型環境中的數據時限。在操作型環境中一般只保存有60-90天的數據,而在數據倉庫中則需要保存較長時限的數據(如5~10年),以適應DSS進行趨勢分析的要求。
    (3)數據倉庫中包含有大量的綜合數據,這些綜合數據中很多跟時間有關,如數據經常按照時間段進行綜合,或隔一定的時間片進行抽樣等等。這些數據要隨著時間的變化不斷地進行重新綜合。因此,數據倉庫的數據特征都包含時間項,以標明數據的歷史時期。

2、數據倉庫發展史

數據倉庫的發展大致經歷了這樣的三個過程:
(1)簡單報表階段
這個階段,系統的主要目標是解決一些日常的工作中業務人員需要的報表,以及生成一些簡單的能夠幫助領導進行決策所需要的匯總數據。這個階段的大部分表現形式為數據庫和前端報表工具。
(2)數據集市階段
這個階段,主要是根據某個業務部門的需要,進行一定的數據的采集,整理,按照業務人員的需要,進行多維報表的展現,能夠提供對特定業務指導的數據,并且能夠提供特定的領導決策數據。
(3)數據倉庫階段
這個階段,主要是按照一定的數據模型,對整個企業的數據進行采集,整理,并且能夠按照各個業務部門的需要,提供跨部門的,完全一致的業務報表數據,能夠通過數據倉庫生成對對業務具有指導性的數據,同時,為領導決策提供全面的數據支持。
通過數據倉庫建設的發展階段能夠看出,數據倉庫的建設和數據集市的建設的重要區別就在于數據模型的支持。

3、數據倉庫架構分層

數據倉庫標準上可以分為四層: ODS(臨時存儲層)、 PDW(數據倉庫層)、 DM(數據集市層)、 APP(應用層)
數據倉庫的標準分層只是一個建議性質的標準,實際實施時需要根據實際情況確定數據倉庫的分層,不同類型的數據也可能采取不同的分層方法。



(1)臨時存儲層/數據采集層
ODS 層的表通常包括兩類,一個用于存儲當前需要加載的數據,一個用于存儲處理完后的歷史數據。歷史數據一般保存 3-6 個月后需要清除,以節省空間。但不同的項目要區別對待,如果源系統的數據量不大,可以保留更長的時間,甚至全量保存
數據源種類可以有多種:
日志:所占份額最大,存儲在備份服務器上
業務數據庫:如Mysql、Oracle
來自HTTP/FTP的數據:合作伙伴提供的接口
其他數據源:如Excel等需要手工錄入的數據
(2)數據倉庫層
這層的數據是干凈的數據,也就是清洗后的數據,它會保存BI系統中所有歷史數據。
HDFS是大數據環境下數據倉庫/數據平臺最完美的數據存儲解決方案。
離線數據分析與計算,也就是對實時性要求不高的部分,Hive是不錯的選擇。Spark性能比Hive好很多,適合做準實時計算。
(3)數據集市層
前面使用Hive、MR、Spark、SparkSQL分析和計算的結果,還是在HDFS上,但大多業務和應用不可能直接從HDFS上獲取數據,那么就需要一個數據共享的地方,使得各業務和產品能方便的獲取數據。
這里的數據集市,其實指的是前面數據分析與計算后的結果存放的地方,其實就是關系型數據庫和NOSQL數據庫。
這層的數據從數據的組織方式來說,通常是星形或雪花結構的數據。從數據粒度來說,是輕度匯總級的數據,已經不存在明細數據了。從數據的時間跨度來說,通常是 PDW 層的一部分,主要的目的是為了滿足用戶分析的需求,而從分析的角度來說,用戶通常只需要分析近幾年(如近三年的數據)的即可。 從數據的廣度來說,仍然覆蓋了所有業務數據。
(4)應用層
數據粒度高度匯總,倒不一定涵蓋所有業務數據,只是數據集市層數據的一個子集。
報表:報表所使用的數據,一般也是已經統計匯總好的,存放于數據共享層。
接口:接口的數據都是直接查詢數據共享層即可得到。
即席查詢:即席查詢通常是現有的報表和數據共享層的數據并不能滿足需求,需要從數據存儲層直接查詢。一般都是通過直接操作SQL得到。

4、星型模型和雪花模型

在多維分析的商業智能解決方案中,根據事實表和維度表的關系,又可將常見的模型分為星型模型和雪花型模型。在設計邏輯型數據的模型的時候,就應考慮數據是按照星型模型還是雪花型模型進行組織。
(1)星型模型
當所有維表都直接連接到“ 事實表”上時,整個圖解就像星星一樣,故將該模型稱為星型模型。



星型架構是一種非正規化的結構,多維數據集的每一個維度都直接與事實表相連接,不存在漸變維度,所以數據有一定的冗余,如在地域維度表中,存在國家 A 省 B 的城市 C以及國家 A 省 B 的城市 D 兩條記錄,那么國家 A 和省 B 的信息分別存儲了兩次,即存在冗余。
(2)雪花模型
當有一個或多個維表沒有直接連接到事實表上,而是通過其他維表連接到事實表上時,其圖解就像多個雪花連接在一起,故稱雪花模型。



雪花模型是對星型模型的擴展。它對星型模型的維表進一步層次化,原有的各維表可能被擴展為小的事實表,形成一些局部的層次結構,這些被分解的表都連接到主維度表而不是事實表。
如上圖所示,將地域維表又分解為國家,省份,城市等維表。它的優點是:通過最大限度地減少數據存儲量以及聯合較小的維表來改善查詢性能。 雪花型結構去除了數據冗余。
(3)星型模型和雪花模型對比
星型模型因為數據的冗余所以很多統計查詢不需要做外部的連接,因此一般情況下效率比雪花型模型要高。 星型結構不用考慮很多正規化的因素,設計與實現都比較簡單。雪花型模型由于去除了冗余,有些統計就需要通過表的聯接才能產生,所以效率不一定有星型模型高。正規化也是一種比較復雜的過程,相應的數據庫結構設計、數據的 ETL、以及后期的維護都要復雜一些。因此在冗余可以接受的前提下,實際運用中星型模型使用更多,也更有效率。

總之,雪花模型使得維度分析更加容易,比如“針對特定的廣告主,有哪些客戶或者公司是在線的?”星形模型用來做指標分析更適合,比如“給定的一個客戶他們的收入是多少?”

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,156評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,401評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,069評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,873評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,635評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,128評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,203評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,365評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,881評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,733評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,935評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,475評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,172評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,582評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,821評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,595評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,908評論 2 372

推薦閱讀更多精彩內容