前 言
數據挖掘涉及數據庫技術、人工智能、統計學、機器學習、知識發現等多個學科的領域。隨著信息技術的高速發展、數據量的飛速增長,數據挖掘已經在各行各業有了較為廣泛的應用。
Microsoft SQL Server 2012是集成了數據挖掘技術的第5版的SQL Server。SQL Server數據挖掘是業界部署最廣泛的數據挖掘服務器,由于其可伸縮性大,容易獲得,使用也較為簡便,政府機構、企事業單位、學術人員和科學家也開始采用或轉而使用SQL Server進行數據挖掘。IBM SPSS Statistics是全世界最早的統計分析軟件,其主要功能包括統計學分析運算、數據挖掘、預測分析等,由于其具有數據分析深入、使用方便、功能齊全等諸多優點,被廣泛應用于自然科學、技術科學、社會科學的各個領域。
Microsoft SQL Server Analysis Services(SSAS)是本書的核心內容,Excel的數據分析與挖掘,也是基于SSAS的服務引擎在進行。使用本書時,可以先學習數據挖掘基本理論;接下來學習Excel 2010數據分析與挖掘、SQL Server 2012數據挖掘、SPSS Statistics數據分析與挖掘;然后再通過完成教程設計的實驗內容,真正地理解數據挖掘理論,掌握數據挖掘的實踐技能。
本書結合作者多年從事數據挖掘教學、開發數據挖掘項目的經驗,從實際出發,以實用的例子,系統地介紹了數據挖掘。全書分為三個部分,共10章。
第1部分由第1~3章組成,包括商業智能的概念和發展、數據挖掘和數據倉庫的基本概念以及它們之間的關系;數據倉庫的基本概念和設計步驟,并介紹了聯機分析技術的分類和特點,以及回歸分析、關聯規則、聚類分析、決策樹分析等數據挖掘常用分析方法的概念和算法。
第2部分由第4~9章組成,包括Excel 2010數據分析和預測的功能、Excel 2010的數據挖掘功能;SQL Server 2012的Analysis Services功能、設置數據源、設置數據源視圖、設置挖掘結構、處理挖掘模型、查看挖掘結果等;Microsoft SQL Server Analysis Services中提供的最常用的6個數據挖掘算法原理與參數;SPSS Statistics的界面和基礎操作;SPSS Statistics在數據挖掘中常用的基礎統計分析方法和高級統計分析方法。
第3部分由第10章組成,包括SQL Server 2012的數據挖掘實驗、SPSS Statistics的數據挖掘實驗。
在內容的選擇、深度的把握上,本書充分考慮到初學者的特點,在內容安排上力求循序漸進,不僅可以作為大專院校教學用書,也可以作為數據挖掘的培訓教材和數據挖掘愛好者的自學用書。
本書由吳思遠任主編,鄒洋、黃梅根、賈玲任副主編。具體編寫分工如下:鄒洋編寫第1~3章,吳思遠編寫第4~6章,黃梅根編寫第7章,賈玲編寫第8~9章,吳思遠和賈玲共同編寫第10章。吳思遠負責全書架構的組織設計,負責統稿。本書的編寫得到重慶郵電大學教務處、重慶郵電大學計算機科學與技術學院以及重慶市教育評估院和中冶賽迪重慶信息技術有限公司的大力支持,在此感謝以上單位對本書所做出的貢獻。
本書為教師提供了配套的教學資源,可從清華大學出版社網站http://www.tup.com.cn下載。
由于作者水平有限,書中難免有疏漏和不足之處,希望廣大讀者給予諒解和指正。
編 者
第2章 數據倉庫與聯機分析
數據倉庫,英文名稱為Data Warehouse,可簡寫為DW或DWH,是為企業所有級別的決策制定過程提供所有類型數據支持的戰略集合。它是單個數據存儲,出于分析性報告和決策支持目的而創建,為需要業務智能的企業,提供指導業務流程改進、監視時間、成本、質量以及控制。而聯機分析處理(OLAP)系統是數據倉庫系統最主要的應用。
本章針對數據倉庫與聯機分析的初學者,主要介紹數據倉庫的基本概念和設計步驟,并介紹了聯機分析技術的分類和特點,幫助建立對數據倉庫和聯機分析的基本認識。
2.1 數 據 倉 庫
2.1.1 數據倉庫的基本概念
1. 數據倉庫的由來和定義
數據倉庫,這一概念是由數據倉庫之父比爾·恩門(Bill Inmon)于1990年提出的。數據倉庫的主要功能是將資訊系統的聯機事務處理(OLTP)經過長時間累積的大量資料,通過數據倉庫理論所特有的資料存儲架構起來,做出系統的分析整理。利用的分析方法包括聯機分析處理(OLAP)、數據挖掘(Data Mining)等,進而將分析結果用于決策支持系統(DSS)、主管資訊系統(EIS)等的創建,幫助決策者快速有效地從大量信息源中分析出對某種決策有參考價值的信息,使得決策擬定者能快速地對外在環境的變動做出應對,幫助建構商業智能(BI)。
數據倉庫之父比爾·恩門在1991年出版的Building the Data Warehouse(《建立數據倉庫》,見圖2.1)一書中所提出的定義被廣泛接受:數據倉庫(Data Warehouse,DW)是一個面向主題的(Subject Oriented)、集成的(Integrated)、相對穩定的(Non-Volatile)、反映歷史變化(Time Variant)的數據集合,用于支持管理決策(Decision Making Support)。
從信息技術上的概念來說,數據倉庫是以關系數據庫、并行處理技術與分布式處理技術以及聯機分析處理等技術為基礎,為了解決擁有大量數據卻缺乏有用信息的現狀而提出的數據處理技術,是一種對不同系統數據實現集成和共享的綜合性的解決方案。
對于傳統數據庫與數據倉庫的關系,可以從兩個方面來理解:首先,數據倉庫用于支持決策,面向分析型數據處理,它不同于企業現有的操作型數據庫;其次,數據倉庫是對多個異構的數據源的有效集成,集成后按照主題進行了重組,并包含歷史數據,而且存放在數據倉庫中的數據一般不再修改。由普通數據庫與數據倉庫的對比關系來看,通常把普通數據庫技術稱為傳統意義上的數據庫技術,其數據處理模式可被劃分為操作型處理和分析型處理(或信息型處理)。普通數據庫技術能夠完成企業的日常事務處理工作,但很難滿足實現決策者制定規劃的要求,也無法滿足數據多樣化處理的要求。隨著用戶需求的日益擴大,分析型處理和操作型處理的分離逐漸成為必然。
圖2.1 《建立數據倉庫》
數據倉庫的出現給企業機構等帶來了巨大的變化。數據倉庫的建立給企業帶來了一些新的工作流程,隨之其他相關流程也會因此而改變。隨著計算機技術、網絡技術的進步和信息化的不斷發展,信息已成為人類社會不可缺少的重要資源。社會的信息化大大加速了信息數據量的增長。面對數據量的不斷增長和應用要求的不斷擴張,數據庫技術的應用和發展也有了更高的價值和作用,促使研究者們嘗試開發能完成事物處理、批處理以及分析處理的各種類型的信息處理任務模式。然而,傳統的數據庫技術往往主要針對操作型數據處理來設計,在數據分析層面上的功能相當有限。因此,對于決策分析,傳統數據庫在業務操作層面上進行分析判斷還存在著很大的局限性。于是,研究者們開始對操作型處理數據庫中的數據進行技術處理,形成一個綜合的、面向分析的環境,使得數據存儲更好地支持決策分析,這就是通常意義下數據倉庫技術的定義。
當前數據倉庫和聯機分析處理的主要研究領域有以下幾方面。
(1) 數據倉庫的建模與設計。
(2) 數據倉庫的體系結構。
(3) 數據清潔和裝載。
(4) 數據刷新和凈化。
(5) 對關系操作符的擴充。
(6) 操作符的有效開發。
(7) 專門的索引技術。
(8) 查詢優化。
2. 數據倉庫的特點
數據倉庫并不是所謂的\"大型數據庫\"。數據倉庫方案建設的目的,是為前端查詢和分析做基礎,由于有較大的冗余,所以需要的存儲也較大。為了更好地為應用服務,已知數據倉庫案例往往有如下幾方面的特點。
1) 效率高
數據倉庫的分析數據一般分為日、周、月、季、年等,可以看出,以日為周期的數據要求的效率最高,要求24小時甚至12小時內,客戶能看到昨天的數據分析。由于有的企業每日的數據量很大,所以好的數據倉庫要求要有高效率的數據分析成果。
2) 數據質量高
數據倉庫提供各種信息,用戶需要的是\"有效\"的數據,但由于數據倉庫流程通常分為多個步驟,包括數據清洗、裝載、查詢、展現等,架構復雜,層次眾多,如果數據源有臟數據或者代碼不嚴謹,就可能導致數據失真,如果客戶看到錯誤的信息,就可能分析得出錯誤的決策,造成損失。因此,好的數據倉庫需要通過技術手段保證良好的數據質量。
3) 擴展性好
有的大型數據倉庫系統的架構設計之所以很復雜,是因為考慮到企業要求數據倉庫系統在未來3~5年內有良好的擴展性,能夠穩定運行,而無須花費太多的精力去重建。實現的途徑主要體現在數據建模的合理性,可在數據倉庫方案中多出一些中間層,使海量數據流有足夠的緩沖,不至于因為數據量的增大影響數據倉庫正常運行。數據倉庫技術可以將企業多年積累的海量數據喚醒,不僅能為企業管理好這些數據,還能挖掘數據潛在的價值,從而成為現代企業運營維護系統的亮點之一。
4) 面向主題
傳統操作型數據庫的數據組織形式是面向事務處理任務,各個業務系統之間各自分離;而數據倉庫中的數據是按照一定的主題域進行組織的。主題是與傳統數據庫的面向應用相對應的,是一個抽象的概念,是對于在較高層次上將企業信息系統中的數據進行綜合、歸類并分析利用的抽象。每一個主題對應一個宏觀的分析領域。數據倉庫排除對于決策無用的數據,提供特定主題的簡明視圖。
3. 數據倉庫的關鍵技術
在數據流程上,根據搜集數據的過程,可將數據倉庫的關鍵技術分為數據提取、數據集成和存儲管理、數據表現、數據挖掘四個方面。
1) 數據提取
數據提取過程是數據進入倉庫的入口。為了OLAP和OLTP系統各自的執行效率,數據倉庫絕大多數都需要一個獨立于聯機事務處理系統的數據環境。抽取過程涉及的數據源一般包括聯機事務處理系統的數據、外部數據源、脫機的數據存儲介質等,數據提取在技術上主要涉及互連、復制、增量、轉換、調度和監控等幾個方面。數據倉庫的數據不需要實時響應,因此數據提取可以定時進行,但多個提取操作執行的時間、互相的順序、成敗對于數據倉庫中信息的有效性則至關重要。數據提取過程涉及數據格式的轉換,理想情況是用戶選定源數據和目標數據的對應關系、格式及類型,會自動生成數據抽取的代碼。但是,目前市場上提供的大多數提取工具支持的數據類型有限,難以支持動態提取功能,這種情況使得提取功能往往不能滿足要求。因此,實際數據倉庫實施過程中往往不一定使用數據提取工具,而是面向具體的主題,編制特定的數據提取算法。算法的正確性和實效性是整個數據倉庫管理、調度和維護的關鍵。經過數據提取后的數據記錄應為格式統一、業務信息完整的數據記錄。
2) 數據集成和存儲管理
數據倉庫遇到的第一個問題是對海量數據的存儲和管理。這里涉及的數據量比傳統的事務處理大得多,且隨著時間推移而積累。從現有的技術和產品來看,只有關系數據倉庫系統可以擔當此任。關系數據倉庫經過30多年的發展,在數據存儲和管理方面已經非常成熟,管理大于16級的數據已經是十分平常的事情。目前,不少關系數據倉庫已經支持數據分割技術,能夠將一個大的數據倉庫分散在多個物理設備中,進一步增強了管理大數據量的擴展能力。
數據倉庫解決的第二個問題是并行處理。在傳統的聯機事務處理應用中,用戶訪問系統的特點是頻繁而短小;而在數據倉庫應用中,用戶訪問系統的特點是稀疏而龐大,每一個查詢或統計都非常復雜,但訪問頻率并不是很高。此時,系統需要有能力將所有的資源調動起來為一個復雜的查詢請求服務,將該請求并行處理。因此,并行處理技術在數據倉庫中比以往更重要。
數據倉庫的第三個問題是查詢的優化。在技術上,針對決策支持的優化涉及數據倉庫技術的索引機制、查詢優化器、連接策略、數據排序和采樣等部分。由于數據倉庫中各類數據表的數據量分布很不均勻,普通查詢優化器所得出的最佳查詢路徑可能不是最優的,因此,面向決策支持的關系數據倉庫都在數據查詢優化器上做了改進,根據索引的特性增加了多重索引的能力。擴充的關系數據倉庫還引入了位圖索引機制,以二進制表示字段的狀態,將查詢過程變為篩選過程,通過單臺計算機的基本操作便可以篩選多個記錄。另外,數據倉庫在應用中會遇到大量的表間連接操作,擴充的關系數據倉庫對連接操作采用了連接索引技術。數據倉庫的查詢常常只需要檢索數據倉庫中的部分記錄,而不必檢索整個數據倉庫,決策支持的數據倉庫還提供了數據采樣的功能,以確保在大容量數據環境下有足夠短的系統響應時間,在精確度允許的范圍內,這一技術可大大地提高系統查詢效率。
數據倉庫的第四個問題是支持多維分析的查詢模式。用戶在使用數據倉庫時的訪問方法與傳統關系數據庫有很大的不同,對數據倉庫的訪問往往不是簡單的表和記錄的查詢,而是基于用戶業務的分析模式,即聯機分析。它的特點是將數據想象成多維的立方體,用戶的查詢相當于在其中的部分維上添加條件,對立方體進行切片、分割,得到的結果則是數值的矩陣或向量,并將其制成圖表或輸入數理統計的算法。數據倉庫的數據可看成實物化的視圖,而基表都在信息源,集成器所要完成的集成工作就是把數據變化反映在數據倉庫所維護的視圖中。絕大多數數據倉庫視圖的維護技術都比常規的數據庫視圖維護技術復雜。例如,即使倉庫和信息源數據都是關系型的,數據倉庫中的視圖也不可能用標準的關系數據庫視圖定義語言(如SQL)在信息源上定義而得到。對給定視圖,當不需要查詢基表即可維護該視圖時,該視圖是自我維護的。數據倉庫中的大多數視圖一般都不是自我維護的,但可在倉庫中存儲部分附加數據而達到自我維護。例如,一個極端情況就是把信息源中的所有數據復制到數據倉庫中,如果需要,可用這些數據重新計算視圖,對于這一問題的研究是要找到用最少的附加數據來實現給定視圖的可自我維護化的方法。
3) 數據表現
數據表現主要在多維分析、數理統計和數據挖掘方面。多維分析是數據倉庫的主要表現形式,由于多維OLAP(MOLAP)系統是專用的,因此,關于多維分析領域的工具和產品大多是關系OLAP(Relational OLAP,ROLAP)工具。在實際工作中,客戶需要通過對數據的統計來驗證他們對某些事物的假設,以進行決策,而數據挖掘強調的不僅僅是驗證人們對數據特性的假設,而是要更主動地尋找并發現蘊藏在數據之中的規律。在決策支持系統中,怎樣建立數據模型、怎樣充分利用系統中存儲的數據資源挖掘出所需的數據,是系統成功建設的難點。
4) 數據挖掘
數據挖掘是決策支持系統中分析技術的更高層次,數據挖掘技術采用人工智能的決策分析方法,按照用戶既定的業務目標,對數據倉庫中浩如煙海的數據進行探索,揭示隱藏其中的規律,并進一步將其模型化。
4. 數據倉庫的用途
現代企業的運營很大程度上依賴于信息系統的支持,以客戶為中心的業務模式需要強大的數據倉庫系統提供信息支持,在業務處理流程中,數據倉庫的作用體現在決策支持、客戶分段與評價以及市場自動化等方面。
1) 決策支持
數據倉庫系統提供各種業務數據,用戶利用各種訪問工具從數據倉庫獲取決策信息,了解業務的運營情況。關鍵性能指標(Key Performance Indicator,KPI)用來量化企業的運營狀況,它可以反映企業在盈利、效率、發展等各方面的表現,決策支持系統為用戶提供 KPI 數據。
構造比較復雜的查詢以便發現潛在的問題和機會,比如銷售渠道規劃、市場評估、競爭對手評估、策略的制定與分析。構造統計模型,對客戶或業務狀況進行分析,甚至利用數據挖掘工具對業務發展和惡意透支進行預測。
2) 客戶分段與評價
以客戶為中心的業務策略,最重要的特征是細分市場,即把客戶或潛在客戶分為不同的類別,針對不同種類的客戶提供不同的產品和服務,采用不同的市場和銷售策略。客戶的分段與評價是細分市場的主要手段。數據倉庫系統中累積了大量的客戶數據可以作為分類和評價的依據,而且數據訪問十分簡單方便,建立在數據倉庫系統之上的客戶分段和評價系統,可以達到事半功倍的效果。客戶分段是以客戶的某個或某幾個屬性進行分類,比如年齡、地區、收入、學歷、消費金額等或它們的組合。客戶評價是建立一個評分模型對客戶進行評分,這樣可以綜合客戶各方面的屬性對客戶做出評價,比如新產品推出前,可以建立一個模型,確定最可能接受新產品的潛在客戶。
3) 市場自動化
決策支持幫助企業制定了產品和市場策略,客戶分段和評價為企業指出了目標客戶的范圍,下一步是對這些客戶展開市場攻勢。市場自動化的最主要內容是促銷管理。促銷管理的功能包括:提供目標客戶的列表,指定客戶接觸的渠道,指定促銷的產品、服務或活動,確定與其他活動的關系。
綜上所述,數據倉庫系統已經成為現代化企業必不可少的基礎設施之一,它是現代企業運營支撐體系的重要組成,是企業對市場需求快速準確響應的有力保證。隨著中國加入 WTO,國際巨頭進軍中國市場,國內企業面臨的競爭將越來越激烈和殘酷,數據倉庫系統是傳統企業迎接挑戰的重要力量。