今天這篇文章,給大家講述一下數據倉庫的基本概念,作為我們一起探讨的内容。希望大家留言、評論,我們一起學習。
一 數據倉庫的概念
數據倉庫,英文名稱為Data Warehouse,可簡寫為DW或DWH。數據倉庫,是為企業所有級别的決策制定過程,提供所有類型數據支持的戰略集合。它出于分析性報告和決策支持目的而創建。 為需要業務智能的企業,提供指導業務流程改進、監視時間、成本、質量以及控制。現在常見的數據倉庫是企業級數據倉庫,即EDW。
二 數據倉庫出現的背景
1 需求的變化,主要是業務系統系統建設完善,統計分析類需求增加,還有就是大量的信息碎片化和孤島化,導緻數據集成和數據質量問題不斷增加
2 技術發展,技術發展到一定程度,必然推動系統更新換代。關系型數據庫技術逐漸成熟穩定,報表和複雜查詢處理起來異常困難,數據标準的問題。
以上兩個原因是數據倉庫出現的大緻背景。
三 數據倉庫與OLTP
1 數據倉庫,數據量大,保存曆史,面向主題,主要用來統計分析
2 OLTP,生産系統,面向應用;事物驅動;實時性高;數據檢索相對少;隻存當前數據
比如以銀行卡為例,我們用銀行卡取錢,首先到ATM進行交易,然後ATM查詢核心系統,核心系統完成交易,你拿到錢。這個就是面向應用,事物驅動,并且是實時的,數據查詢就隻查你的賬戶數據(餘額信息),并且還是你時點的餘額信息。
四 數據倉庫與OLTP的區别
挑一個來說一下,更新和不更新
操作型數據庫對于數據是更新的,還是前面說的取錢,我們取了錢,那麼我的餘額是要變更的。但是對于分析性數據庫來說呢,是不變的,原有的一筆數據依舊保留,會新增一條餘額變動的數據記錄,就是保留曆史數據。能理解吧。
五 數據倉庫的特征
這個大家就看下圖吧,不細說了。面向主題;集成;記錄時間變化;不更新
六 數據倉庫理論的形成
七 什麼是ODS
ODS,大家在工作中,如果有做數據倉庫的應該比較清楚,大家一說ODS,馬上就能想到數據倉庫,工作中好多同事都覺得是一回事。其實不然,ODS隻是數據倉庫的一部分,現在的數據倉庫大部分都是基于ODS和OLTP集合在一起了,最常見的就是數據倉庫中既有曆史數據的保留,還有面向應用系統統計分析的各個集市。
八 ODS應用的形成
九 ODS與 EDW
簡單理解為ODS為O層數據,基本能上和源系統一緻,可能會有寫标準化的字段。EDW是基于ODS數據整合,就是ETL的過程。常見的可以分為公共層,彙總層。
十 數據模型
1 邏輯模型:不考慮物理數據庫,獨立的。比較關注業務邏輯和業務規則。
2 物理模型:簡單理解就是将邏輯模型,轉化成數據庫語言,即DDL。
十一 雪花模型和星型模型
這塊理解一下就可以了,實際開發中是不會嚴格按照星型或者雪花來設計,實際工作中是按照業務來進行模型設計,根據業務規則,設計出最合适的數據模型。
我們大部分項目中,用到的是雪花這種模型,大寬表,數據冗餘,更有利于業務查詢,性能比較高。
優缺點:
雪花模型可以精确表示層次化的數據,但還是應該避免使用雪花模式,因為對商業用戶來說,理解雪花模式并在其中查詢是非常困難的,雪花模式還會影響查詢性能
從查詢性能角度來看,在OLTP-DW環節,由于雪花型要做多個表聯接,性能會低于星型架構;但從DW-OLAP環節,由于雪花型架構更有利于度量值得聚合,因此性能要高于星型架構。
從模型複雜度來看,星型架構更簡單。
從層次概念來看,雪花型架構更加貼近OLTP系統的結構,比較符合業務邏輯,層次比較清晰。
從存儲空間角度來看,雪花型架構具有關系數據模型的所有優點,不會産生冗餘數據,而相比之下星型架構會産生數據冗餘。
應用場景:
星型模型的設計方式主要帶來的好處是能夠提升查詢效率,因為生成的事實表已經經過預處理,主要的數據都在事實表裡面,所以隻要掃描事實表就能夠進行大量的查詢,而不必進行大量的join,其次維表數據一般比較少,在join可直接放入内存進行join以提升效率,除此之外,星型模型的事實表可讀性比較好,不用關聯多個表就能獲取大部分核心信息,設計維護相對比較簡答。
雪花模型的設計方式是比較符合數據庫範式的理念,設計方式比較正規,數據冗餘少,但在查詢的時候可能需要join多張表從而導緻查詢效率下降,此外規範化操作在後期維護比較複雜。
好了,這篇文章就給大家寫到這裡了,希望大家留言、評論。我們一起探讨,學習。大家喜歡的,可以點個關注 ,我會不定期更新文章,将自己的經驗分享出來。
,