數據倉庫的誕生主要有兩個原因:
- 歷史數據的積存需要
- 企業數據分析的需要
歷史數據積存
對於企業來說,線上的業務系統,隨着業務的進行,會源源不斷的產生數據。這些數據都會存儲在業務數據庫中,如 MySQL、Oracle 當中,支持業務系統的運行。
但當線上的業務系統運行超過一定時間,其積壓的歷史數據就會越來越多,對業務數據庫就會產生一定的負載,導致業務系統運行速度降低。
而這些歷史數據中,有相當一部分是冷數據。但業務系統一般對最近產生的數據(當天、一周內、一個月內)調用比較頻繁,對較早之前的數據調用頻率很低。
所以為了避免隨着時間的推移,歷史數據積壓對業務數據庫產生的影響,從而影響業務的正常運行,企業需要定期將積壓的歷史數據從業務數據庫中轉移出去,存儲到一個專門存放歷史數據的倉庫中。這就是數據倉庫。
業務數據庫存儲的高頻熱數據支持線上業務的運行,如果調用到歷史數據,再從數據倉庫中進行操作。
企業數據分析的需要
企業將歷史數據存儲到數據倉庫中后,這些數據不僅可以改善業務數據庫的性能;還可以用來進行數據分析,從而輔助管理層進行決策。以歷史數據積存為導向,這種發展是順其自然的。
但有的企業開始並沒有歷史數據積存,然而僅僅是對數據分析特別看重。這些企業可能會存在多個部門需要進行數據分析的任務。這些企業建立數據倉庫的原由,是以數據分析為導向的。
這些部門會從哪兒獲取數據呢?業務數據庫。各個部門擁有自己的數據抽取系統,需要分析數據時,直接從業務數據庫抽取數據,進行分析運算,繪制報表。
但這種方式存在的問題也是很明顯的。
1. 各個部門的分析結果不一致。
為什么?
假設部門 A 早上 9 點從業務數據庫抽取數據進行了分析,而部門 B 是下午 2 點進行的數據抽取。這兩個部門獲取的數據不一致,結果自然也存在差異。
2. 各個部門各自建立數據抽取系統,導致資源浪費。
3. 業務數據庫的權限管控也會存在極大的風險。
為了解決這些問題,企業也是統一建立數據倉庫,使用專用的數據抽取系統,定期從業務數據庫進行數據抽取。這樣,數據倉庫為各個部門提供了統一的數據視圖,解決了分析結果不一致的問題;其次數據倉庫直接開放訪問接口,各個部門也不需要再建立數據抽取系統;而且數據倉庫的權限管控更具有針對性,業務數據庫和數據倉庫各司其職。
小結
企業無論是以歷史數據積存,還是數據分析為導向建立的數據倉庫。數據積存、數據分析,這兩個都是數據倉庫的基本功能與建設目的。