數據倉庫(Data Warehouse)
是一個面向主題的(Subject Oriented)、集成的(Integrate)、穩定 的(Non-Volatile)、反映歷史變化的(Time Variant)數據集合,用于支持管理決策。
面向主題:數據倉庫側重于數據分析工作,所以數據倉庫中的數據是按照一定的主題進行組織和存 儲。
集成:對原有分散的數據庫數據經過系統加工、整理,消除源數據中的不一致性。
穩定:數據進入數據倉庫以后只需要定期的加載、刷新,不需要頻繁修改。
反映歷史變化:出于決策的需要,數據倉庫中的數據都要標明時間屬性。通過這些數據信息,對企 業的發展歷程和未來趨勢做出定量分析預測。
數據庫與數據倉庫的區別
數據庫和數據倉庫其實很相似,都是通過數據庫管理系統,來組織、存儲和管理數據。
它們的不同之處在于: 數據庫是存放原始數據的集合,主要存儲業務流程中的事務性數據,如銀行交易、訂單記錄等。 數據倉庫是數據庫概念的升級,是存放加工處理后的數據集合,主要存儲從數據庫中整合、匯總后的數 據,用于針對某些主題的歷史數據進行分析,側重決策支持。 單從概念上講有些晦澀,任何技術都是為應用服務的,結合應用可以很容易地理解。以銀行業務為例, 數據庫是銀行事務系統的數據平臺,客戶在銀行做的每筆交易都會寫入數據庫,被記錄下來。數據倉庫 是分析系統的數據平臺,它從事務數據庫獲取數據,并做匯總、加工,為決策者提供決策的依據。比 如,某銀行某分行一個月發生多少交易,該分行當前存款余額是多少。如果存款又多,消費交易又多, 那么該地區就有必要加設ATM了。 顯然,銀行的交易量是巨大的,通常以百萬甚至千萬次來計算。事務系統是要求時效性的,客戶存取一 筆錢等待幾十秒是無法忍受的,這就要求數據庫實時響應。而分析系統是事后的,它要提供關注時間段 內所有的有效數據。這些數據是海量的,匯總計算起來也要慢一些,但是,只要能夠提供有效的分析結 果就達到目的了。
數據庫與數據倉庫的區別,實際上就是OLTP與OLAP的區別。
操作型處理,叫聯機事務處理OLTP(On-Line Transaction Processing),也可以稱面向交易的 處理系統,它是針對具體業務在數據庫聯機的日常操作,通常對少數記錄進行查詢、修改。用戶較 為關心操作的響應時間、數據的安全性、完整性和并發的支持用戶數等問題。傳統的數據庫作為數 據管理的主要手段,主要用于操作型處理。
分析型處理,叫聯機分析處理OLAP(On-Line Analytical Processing),支持復雜的分析操作, 側重決策支持,并且提供直觀易懂的查詢結果。的需要,數據倉庫中的數據都要標明時間屬性。通過這些數據信息,對企 業的發展歷程和未來趨勢做出定量分析預測。
基本每個企業都會經歷從數據庫到數據倉庫的階段,以電商行業為例:
第一階段、電商行業早期入行門檻低,找個外包團隊,做一個網頁前端 + 幾臺服務器 + 一個MySQL,就能開門迎客了。
第二階段,流量來了,客戶和訂單都多起來了,這個時候就需要升級架構變成多臺服務器和多個業 務數據庫(分布式存儲),這個階段的業務數據和指標還可以勉強從業務數據庫里查詢。
第三個階段,隨著業務的發展數據量呈指數級增長,面臨的業務問題越來越復雜。領導者關心的問 題,從最初非常粗放的:“昨天的收入是多少”、“上個月的 PV、UV 是多少”,逐漸演化到非常精細 化和具體的用戶消費行為分析,如“20~30歲女性用戶在過去五年的第一季度化妝品類商品的購買 行為在促銷活動方案中的表現”。 這類非常具體且能夠對公司決策起到關鍵性作用的數據,很難從業務數據庫從調取出來。原因在 于: 1、業務數據庫中的數據結構是為了完成交易而設計的,不是為了查詢和分析的便利設計的。 2、業務數據庫大多是讀寫優化的,即又要讀(查看相關的商品信息),也要寫(產生訂單,完成 支付)。因此對于大批量的數據讀?。◤碗s的查詢指標)是支持不足的。 為了解決此類問題就需要建立數據倉庫,它的作用在于: 1、數據結構為了分析和查詢的便利而設計。 2、只讀優化的數據庫,即不需要它寫入速度多么快,只要做大量數據的復雜查詢的速度足夠快就 行了。








暫無數據