數據倉庫的概念
數據倉庫是一個面向主題的、集成的、相對穩定的、反映歷史變化的數據集合,用于支持管理決策。
1.面向主題:不同于操作型數據庫,主題是個抽象概念,是指用戶使用數據倉庫進行決策時所關心的重點方面。涉及業務流程的方方面面,而不像操作型數據庫一樣相互隔離。
2.集成的:操作型數據庫通常與某些特定的應用相關,而數據庫往往相互獨立,他們是異構的。數據倉庫是對原有的分散數據進行了整合,進行了數據類型轉化,消除了數據中的不一致性。
3.相對穩定:數據倉庫是穩定的,由于要做企業分析決策之用,一般情況下將被長期保留,以備日后參考查詢。而說他是相對穩定的是因為,數據倉庫要保存歷史信息,以便反映某一事物的變化情況,作為分析決策的原始資料,所以數據倉庫必須維護歷史信息,所以他是相對穩定的。Write once, read many times.
4.反映歷史變化:以支持分析決策,由過去的發展歷程總結出規律,從而對未來作出合理的預測。
數據倉庫環境
1.ETL:數據抽取、轉化和載入
2.OLAP:OnLine Analytical Processing Engine
3.DSS:決策支持系統
4.客戶分析與報表工具
5.其他數據收集和數據輸出工具
數據倉庫的構架
數據倉庫大體可以分為四個層次:
數據源、數據管理與存儲層、OLAP服務器和前端工具。
1.數據源:他是數據倉庫的基礎,位于數據倉庫構架的最底層,是數據倉庫的數據源泉。包括各個業務處理子系統的信息。
2.數據管理與存儲層:是數據倉庫的核心。數據倉庫如何高效管理數據是區別與面向操作數據庫的主要標準。完成按照主題管理數據,聚合數據存放于多維數據庫中。
3.OLAP服務器:對數據進行有效集成,按多維模型予以組織。
4.前端工具:主要包括各種報表工具、查詢工具、數據挖掘工具等。
有關ETL
數據進入數據倉庫的過程一般都要經過抽取(extracted)、轉化(transformed)和載入(loaded)三個過程,這個過程被簡稱為ETL。一般使用現有工具來實現ETL的過程。
1.E:數據抽取。在數據抽取的同時,數據不能被修改。可以抽取的文件格式為:數據庫對象,比如表可以整個地從源系統中導出。比如,MS SQL Server 2000的bcp "select * from Northwind..customers" queryout "D:temp.txt"? -c -p -U"sa" -P"sa"。抽取過程為動態抽取,即目標有變化才抽取,不做無謂的工作而影響效率。一種實現的辦法就是加時間戳;另一種方法就是分別在不同的表中進行描述。
2.T:數據轉化。即將數據從一個系統轉移到另外一個系統中。順序為:源系統 -> staging database -> 數據倉庫 -> data mart。有三種方式:a.flat files(無范式) b.區分操作 c.使用交換分區。
3.L:數據輸入
其他
數據倉庫不一定要用數據庫來實現
數據倉庫不滿足第三范式,并且不滿足范式,他只含有“鍵(key)”。(第一范式:有主鍵,主觀上形象的看,是符合常理的分類或組織;第二范式:滿足第一范式,并且所有除主鍵之外的列都與所有的主鍵有關系;第三范式:滿足第二范式,并且所有除主鍵之外的列相互之間沒有關系)