官术网_书友最值得收藏!

1.3 數據倉庫

在計算機誕生后的初始階段,那時應用程序主要使用磁帶存儲數據,其是一種順序存儲器,尋址時間長,無法快速找到文件在磁帶中的準確位置。20世紀70年代,出現了磁盤存儲,也就是直接訪問存儲,用戶能夠以毫秒級(甚至更短時間)找到磁盤上的文件。隨著存儲的不斷發展,數據庫管理系統(Database Management System, DMS)應運而生,也就是今天大家熟知的關系型數據庫。在隨后的30年,數據庫大放異彩,出現了很多優秀的代表(包括Oracle、SQL Server、MySQL和PostgreSQL等),成為計算機領域的重要組成部分。數據庫的主要用途是聯機事務處理(Online Transactional Processing, OLTP),典型的場景包括電子商務、銀行和證券等。在這樣的系統里,單個數據庫每秒處理的事務數往往很高。

隨著時間的推移,企業逐漸意識到數據的價值,希望通過已掌握的數據對市場戰略進行評估。以零售業為例,市場營銷體系通常涵蓋市場評價、用戶體驗和品牌價值等多個維度,企業希望從更高的維度發現整個體系的總體規律,通過橫向分析了解用戶的體驗效果,這就需要用到在線聯機分析(Online Analytical Processing, OLAP)。一般來說,單次OLTP處理的數據量比較小,所涉及的表比較有限,一般僅一兩張表,而OLAP的目的是從大量的數據中找出規律,經常用到count、sum和avg等聚合方法,所以對多張表的數據進行連接匯總非常普遍。表1-1給出了OLTP和OLAP的主要區別。

表1-1 OLTP和OLAP的主要區別

雖然傳統數據庫也能執行OLAP,但由于其設計目的是面向事務處理,在執行計劃和查詢優化方面受限于數據規模,無法完全滿足OLAP的要求。另外,企業需求錯綜復雜,可能需要使用跨多個部門的數據源,由于數據庫類型不同,數據抽取時間不同,外部信息來源不同,因此在獲得一份公司整體運營情況的報表時,只有跨部門動用大量的人力進行分析、設計和編碼,才能保證結果的準確性和有效性。這樣的處理方式效率低、時效性差。所以,為了訪問和整合業務數據,使數據保持一致、可靠、及時和隨時可用,企業需要將事務處理和數據分析的環境分離開,數據倉庫的理論和解決方案應運而生。數據倉庫與數據庫相比有如下優勢。

(1)整合多個來源的數據,實現企業的中心視圖,并且可以使用單一的查詢引擎呈現數據。

(2)維護數據歷史記錄,支持對歷史數據的分析。

(3)將分析處理與事務性數據庫分離,從而提高兩個系統的性能。

以下為數據倉庫的發展史。

(1)1983年,Teradata發布了第一款專門為決策支持而設計的DBC/1012數據庫系統。

(2)1988年,IBM的Barry Devlin和Paul Murphy發表了An Architecture for a Business and Information System,提出了企業數據倉庫的概念。

(3)1990年,由Ralph Kimball創立的Red Brick Systems推出了專門用于數據倉庫的數據庫管理系統Red Brick Warehouse。

(4)1991年,Bill Inmon出版了Building the Data Warehouse,說明了建立數據倉庫的原因、數據倉庫的價值,并提出建設數據倉庫的指導性意見。

(5)1996年,Ralph Kimball出版了The Data Warehouse Toolkit,提供了進行數據模型優化的詳細指導意見,討論了通用的維度設計技術,優化決策支持系統的數據架構。

初期的數據倉庫主要用于管理企業中多個數據庫實例,后來逐漸演變出由獨立軟硬件構成的數據倉庫一體機,但其成本較高且擴展性有限。后期又出現了分布式數據倉庫,一方面,它基于分庫分表,在邏輯上把數據分成不同的模塊,存放在不同的數據庫中;另一方面,它通過大規模并行處理(Massively Parallel Processing, MPP)架構提供更好的擴展性,以應對海量數據的查詢,在一定程度上解決了擴容問題。21世紀初是數據倉庫高速發展的時期,IBM、Oracle、Teradata等公司提供了從硬件、軟件到實施的數據倉庫建設整體方案,同時也出現了很多并購活動,例如,Oracle收購了Hyperion,SAP收購了Business Objects,IBM收購了Cognos、Netezza等。

隨著數據倉庫的蓬勃發展,企業的數據環境逐漸發展為以數據庫為基礎構建業務處理系統和以數據倉庫為基礎構建分析系統的統一體。數據倉庫作為企業數據管理系統的中心樞紐,通過整合來自交易系統、ERP、CRM的數據提供報告和分析,如圖1-1所示。

圖1-1 以數據倉庫為中心的企業數據環境

但是,數據倉庫出現的目的并不是取代數據庫,事實上,兩者相輔相成,能夠滿足企業不同的業務需求,表1-2給出了數據庫與數據倉庫的區別。

表1-2 數據庫與數據倉庫的區別

主站蜘蛛池模板: 临泽县| 台北县| 应用必备| 利津县| 双牌县| 宁陕县| 怀远县| 博罗县| 顺昌县| 潜江市| 尼木县| 徐州市| 库尔勒市| 奈曼旗| 太湖县| 淮阳县| 曲靖市| 永寿县| 汾阳市| 左贡县| 留坝县| 海南省| 丹阳市| 浙江省| 维西| 绥江县| 新沂市| 敦化市| 丹江口市| 蓬溪县| 沁阳市| 梅州市| 临潭县| 石林| 县级市| 玉屏| 泾阳县| 紫金县| 疏附县| 游戏| 宁远县|