【数据挖掘笔记四】数据仓库和联机分析处理
4.數據倉庫和聯機分析處理
數據倉庫泛化、合并多維空間的數據。構造數據倉庫涉及數據清理、數據集成和數據變換,是數據挖掘的預處理步驟。數據倉庫提供聯系分析處理(OLAP)工具,用于各種粒度的多維數據的交互分析,助力數據泛化和數據挖掘,可以和數據挖掘功能集成,如關聯、聚類、分類和預測,用以加強多個抽象層上的交互知識挖掘。
數據倉庫是數據分析和聯系數據分析處理的重要平臺,并為數據挖掘提供有效平臺,構造數據倉庫和OLAP是知識發現過程的基本步驟。
4.1數據倉庫:基本概念
1)什么是數據倉庫
數據倉庫是一種數據庫,與事務或操作數據庫分別維護。數據倉庫系統將各種應用系統的數據集成在一起,為統一的歷史數據分析提供堅實的平臺,對信息處理提供支持。
數據倉庫是一個面向主題的、集成的、時變的、非易失的數據集合,支持管理者的決策過程。
?? 面向主題的(subject-oriented):數據倉庫圍繞主題,如顧客、供應商、產品和銷售,關注決策者的數據建模與分析,而不是日常操作和事務處理,因此數據倉庫是排除對決策無用的數據,而提供特定主題的視圖。
?? 集成的(integrated):構造數據倉庫將多個異構數據源,如關系數據庫、一般文件和聯機事務處理記錄集成在一起,使用數據清理和數據集成技術,確保命名約定、編碼結構、屬性度量等的一致性。
?? 時變的(time-variant):數據存儲從歷史的角度提供信息,數據倉庫中的關鍵結構都隱式或顯示地包含時間元素。
?? 非易失的(nonvolatile):數據倉庫總是物理地分離存放數據,所存放的數據源于操作環境下的應用數據,這種分離機制,使得數據倉庫不需要事務處理、恢復和并發控制機制,只需要兩種數據訪問操作:數據的初始化裝入和數據訪問。
概言之,數據倉庫是一種語義上一致的數據存儲,作為決策支持數據模型的物理實現,并存放企業戰略決策所需要的信息。數據倉庫是一種體系結構,通過將異構數據源中的數據集成在一起而構建,支持結構化和/或專門的查詢、分析報告和決策制定。
構建和使用數據倉庫的過程即建立數據倉庫(data warehousing)。數據倉庫的構建需要數據集成、數據清理和數據統一。數據倉庫的使用常涉及決策支持技術,使知識工人(如經理、分析人員或主管)通過數據倉庫快捷、方便地得到數據的總體視圖,根據數據倉庫中的信息作出準確的決策。
對于異構數據庫集成來說,集成多個異構的、自治的和分布的數據源并維護是一個挑戰。傳統數據庫對于異構數據庫的集成采用查詢驅動的(query-driven)方法,而數據倉庫用更新驅動(update-driven)方法。
查詢驅動方法:在多個異構數據庫上,建立一個包裝程序和一個集成程序或中介程序,當查詢在客戶站點提交時,首先使用元數據字典對查詢進行轉換,將它轉換成相應異構站點上的查詢;然后,將查詢映射和發送到局部查詢處理器,由不同站點返回的結果被集成為全局回答;該方法需復雜的信息過濾和集成處理,并且與局部數據源上的處理競爭資源,對于頻繁的查詢,特別是需要聚集操作的操作,開銷大。
更新驅動方法:將來自多個異構源的信息預先集成,并存儲在數據倉庫中,供直接查詢和分析;與聯機事務處理數據庫不同,數據倉庫不包含最近的信息;不過數據倉庫為集成的異構數據庫系統帶來了高性能,因為數據被復制、預處理、集成、注釋、匯總,并重新組織到一個語義一致的數據存儲中;數據倉庫的查詢處理不影響在局部數據源上進行的處理;數據倉庫存儲并集成歷史信息,支持復雜的多維查詢。
2)操作數據庫系統與數據倉庫的區別
聯機操作數據庫系統的主要任務是執行聯機事務和查詢處理,即聯機事務處理(Online Transaction Processing,OLTP)。數據倉庫系統在數據分析和決策方面為用戶或知識工人提供服務,可用不同的格式組織和提供數據,滿足不同用戶的不同需求,即聯機分析處理(Online Analytical Processing,OLAP)系統。OLTP和OLAP主要區別:
?? 用戶和系統的面向性:OLTP是面向顧客的,用于事務和查詢處理;OLAP是面向市場的,用于數據分析。
?? 數據內容:OLTP系統管理當前數據,數據瑣碎難用于決策;OLAP系統管理大量歷史數據,提供匯總和聚集機制,并在不同的粒度層上存儲管理信息,用于決策。
?? 數據庫設計:OLTP采用實體-聯系(E-R)數據模型和面向應用的數據庫設計;而OLAP系統通常采用星形或雪花模型和面向主題的數據庫設計。
?? 視圖:OLTP系統主要關注企業或部門內部的當前數據,而不涉及歷史數據或不同單位的數據;OLAP系統是跨越數據庫模式,處理不同單位的信息,以及多個數據庫集成的信息,數據量巨大,OLAP數據也存放在多個存儲介質上。
?? 訪問模式:OLTP系統的訪問主要由短的原子事務組成,需要并發控制和恢復機制;OLAP系統的大部分訪問是讀取操作(大部分數據倉庫存放歷史數據,而不是最新數據),并且是復雜的查詢。
OLTP和OLAP的區別,包括數據庫大小、操作頻繁程度、性能度量等,如下表:
| 特征 | OLTP | OLAP |
| 特性 | 操作處理 | 信息處理 |
| 面向 | 事務 | 分析 |
| 用戶 | 辦事員、DBA、數據庫專業人員 | 知識工人,如經理、主管、分析人員 |
| 功能 | 日常操作 | 長期信息需求、決策支持 |
| DB設計 | 基于E-R,面向應用 | 星形/雪花、面向主題 |
| 數據 | 當前的、確保最新 | 歷史的、跨時間維護 |
| 匯總 | 原始的、高度詳細 | 匯總的、統一的 |
| 視圖 | 詳細、一般關系 | 匯總的、多維的 |
| 工作單元 | 短的、簡單事務 | 復雜查詢 |
| 訪問 | 讀/寫 | 大多為讀 |
| 關注 | 數據進入 | 信息輸出 |
| 操作 | 主碼上索引/散列 | 大量掃描 |
| 訪問記錄數量 | 數十 | 數百萬 |
| 用戶數 | 數千 | 數百 |
| DB規模 | GB到高達TB | ≥TB |
| 優先 | 高性能、高可用性 | 高靈活性、終端用戶自治 |
| 度量 | 事務吞吐量 | 查詢吞吐量、響應時間 |
3)為什么需要分離的數據倉庫
提出問題:為什么不直接在數據庫上進行聯機分析處理,而要單獨去構造獨立的數據倉庫呢?
分離數據庫系統和數據倉庫系統的主要原因有助于提高兩個系統的性能。操作數據庫是為已知的任務和負載設計的,如使用主碼索引和散列,檢索特定的記錄,優化定制的查詢;而數據倉庫系統的查詢是復雜的,涉及大量數據在匯總級的計算,需要特殊的基于多維視圖的數據組織、存取方法和實現方法,如果在操作數據庫上處理OLAP查詢,會大大降低操作任務的性能。
分離的原因還因為操作數據庫支持多事務的并發處理,需并發控制和恢復機制(如加鎖和記日志),以確保一致性和事務的魯棒性;而OLAP只需對匯總和聚集數據記錄進行只讀訪問,如果在數據倉庫系統上加上并發控制和恢復機制,會影響到并行事務的運行,且降低OLTP系統的吞吐量。
由于兩種系統中數據的結構、內容和用戶都不相同,所以需要分離。決策支持整合來自異構源的數據,產生高質量的、純凈的和集成的數據;而操作數據則維護詳細的原始事務數據。
4)數據倉庫:一種多層體系結構
數據倉庫采用三層體系結構:
?? 底層是倉庫數據庫服務器,是一個關系數據庫系統;通過后端工具和實用程序,由操作數據庫或其他外部數據源提取數據放入底層,工具和實用程序進行數據提取、清理和變換,以及裝入和刷新,以更新數據倉庫;數據提取采用信關(gateway)組件,信關由基礎DBMS支持,允許客戶程序產生SQL腳本,包括ODBC、OLE-DB和JDBC;底層還包括元數據庫,存放關于數據倉庫和它內容的信息。
?? 中間層是OLAP服務器,其典型的實現應用關系OLAP(ROLAP)模型(擴充的關系DBMS,將多維數據上的操作映射為標準的關系操作),或使用多維OLAP(MOLAP)模型(專門的服務器,直接實現多維數據和操作)。
?? 頂層是前端客戶層,包括查詢和報告工具、分析工具和/或數據挖掘工具(如趨勢分析、預測等)。
??? 5)數據倉庫模型:企業倉庫、數據集市和虛擬倉庫
從結構的角度看,有三種數據倉庫模型:企業倉庫、數據集市和虛擬倉庫。
?? 企業倉庫(enterprisewarehouse):企業倉庫搜集關于主題的所有信息,跨越整個企業,提供企業范圍內的數據集成,來自一個或多個操作數據庫系統或外部信息提供者,并且是多功能的;通常,包含細節數據和匯總數據,可以在傳統的大型機、超級計算機服務器或并行結構平臺上實現,需要廣泛的商務建模,需多年累積建設。
?? 數據集市(datamart):數據集市包含企業范圍數據的一個子集,對于特定的用戶群是有用,其范圍限定于選定的主題;數據集市可在較低服務器上實現;根據數據源的不同,分為獨立的和依賴的兩類,在獨立的數據集市中,數據來自一個或多個操作數據庫系統或外部信息提供者,或者來自在一個特定的部門或地區局部產生的數據,依賴的數據集市的數據直接來自企業數據倉庫。
?? 虛擬倉庫(virtualwarehouse):虛擬倉庫是操作數據庫上視圖的集合;為有效地處理查詢,只有部分匯總視圖被物化,虛擬倉庫易于建立,但需操作數據庫服務器還有余力。
自頂向下開發企業倉庫是一種系統的解決方案,能最大限度地減少集成問題,不過費用高、周期長且缺乏靈活性;自底向上的配置獨立的數據集市則相對靈活、低花費,不過數據集市的集成也會帶來問題。對于開發數據倉庫系統,建議的方法是以遞增、進化的方式實現數據倉庫,先定義一個高層次的企業數據模型,在不同的主題和可能的應用之間,提供企業范圍的、一致的、集成的數據視圖;其次基于高層次企業數據模型,并行地實現獨立的數據集市和企業數據倉庫,也可通過中心服務器集成不同的數據集市,構造分布數據集市;最后構造一個多層數據倉庫(multitier data warehouse),企業倉庫是所有倉庫數據的唯一管理者,倉庫數據分布在一些依賴的數據集市中。
6)數據提取、變換和裝入
數據倉庫系統使用后端工具和實用程序來加載和刷新它的數據,這些工具和程序包含以下功能:
?? 數據提取:由多個異構的外部數據源收集數據;
?? 數據清理:檢測數據中的錯誤,可能時修訂;
?? 數據變換:將數據由遺產或宿主格式轉換成數據倉庫格式;
?? 裝入:排序、匯總、合并、計算視圖、檢查完整性,并建立索引和劃分;
?? 刷新:傳播由數據源到數據倉庫的更新。
??? 除清理、裝入、刷新和元數據定義工具外,數據倉庫系統還提供一組數據倉庫管理工具。數據清理和數據變換是提高數據質量,從而提高其后的數據挖掘結果質量的重要步驟。
7)元數據庫
元數據是關于數據的數據。在數據倉庫中,元數據是定義倉庫對象的數據。對于給定的數據倉庫的數據名和定義,創建元數據。其他元數據包括對提取數據添加的時間標簽、提取數據的源、被數據清理或集成處理添加的缺失字段等。元數據庫應當包括以下內容:
?? 數據倉庫結構的描述,包括倉庫模式、視圖、維、分層結構、導出數據的定義,以及數據集市的位置和內容。
?? 操作元數據,包括數據血統(遷移數據的歷史和它所用的變換序列)、數據疏通(主動的、檔案的或凈化的)和管理信息(倉庫使用的統計量、錯誤報告和審計跟蹤)。
?? 用于匯總的算法,包括度量和維定義算法,數據所處的粒度、劃分、主題領域、聚集、匯總、預定義的查詢和報告。
?? 由操作環境到數據倉庫的映射,包括源數據庫及其內容,信關描述,數據劃分,數據提取、清理、轉換規則和默認值,數據刷新和凈化規則,以及安全性(用戶授權和存取控制)。
?? 關于系統性能的數據,除刷新、更新和復制周期的定時和調度的規則外,還包括改善數據存取和檢索性能的索引和概要。
?? 商務元數據,包括商務術語和定義,數據擁有者信息和收費策略。
數據倉庫包含不同的匯總層,元數據是其中一種類型。其他類型包括當前的細節數據(幾乎總是在磁盤上)、老的細節數據(通常在三級存儲器上)、稍加匯總的數據和高度匯總的數據(可以也可以不物理地存入倉庫)。
與數據倉庫的其他數據相比,元數據扮演重要的角色,例如元數據用作目錄,幫助決策支持系統分析者對數據倉庫的內容定位;當數據由操作環境到數據倉庫轉換時,元數據作為數據映射的指南;對于匯總的算法將當前細節數據匯總成稍加綜合的數據,或將稍加綜合的數據匯總成高度綜合的數據,元數據也起到指南作用。
元數據應當持久存放和管理(即放在磁盤上)。
4.2數據倉庫建模:數據立方體和OLAP
數據倉庫和OLAP工具基于多維數據模型,這種模型將數據看做數據立方體形式。
1)數據立方體:一種多維數據模型
數據立方體(datacube)允許以多維對數據建模和觀察,由維和事實定義。維是一個單位想要記錄的透視或實體,與之相關聯的表為維表;事實是數值度量的,事實表包括事實的名稱或度量,以及每個相關維表的碼。
數據立方體是多維數據存儲的一種比喻,數據的實際物理存儲可以不同于它的邏輯表示。數據立方體是n維,不限于3D。數據立方體稱做方體(cuboid),給定維的集合,對給定諸維的每個可能的子集產生一個方體,結果形成方體的格,每個方體在不同的匯總級顯示group by數據。方體的格稱做數據立方體,存放在最低層匯總的方體稱做基本方體(basecuboid),放在最高層的匯總稱做頂點方體(apex cuboid)。
2)星形、雪花形和事實星座:多維數據模型的模式
實體-聯系數據模型用于關系數據庫設計,數據庫模式用實體集和它們之間的聯系表示,適用于聯機事務處理;而數據倉庫需要簡明的、面向主題的模式,便于聯機數據分析。
數據倉庫的數據模型是多維數據模型:
a、星形模型starschema
一個大的中心表(事實表),包括大批數據且不冗余,一組小的附屬表(維表),每維一個;維表圍繞中心表。
b、雪花模型snowflakeschema
在星形模式基礎上,對某些維表進一步規范化,將事實表中的數據進一步分解到維表中,維表更多類似雪花。雪花模式的維表是規范化形式,目的是減少冗余,易于維護節省存儲空間;不過和事實表龐大的數據相比,這種空間的節省可以忽略,且執行查詢需要連接更多,影響查詢性能。
c、事實星座
事實星座是多個事實表共享維表。
數據倉庫是面向企業范圍的,適合采用事實星座;數據集市是面向具體某個業務的,適合采用星形或雪花模式。
3)維:概念分層的作用
概念分層(concepthierarchy)定義一個映射序列,將底層概念集映射到較高層、更一般的概念。
形成數據庫模式中屬性的全序或偏序的概念分層稱做模式分層(schema hierarchy)。
通過將給定維或屬性的值離散化或分組來定義概念分層,產生集合分組分層(set-grouping hierarchy),可以在值的組合之間定義全序或偏序。概念分層可由系統用戶、領域專家、知識工程師人工提供,或根據數據分布的統計分析自動產生。概念分層是數據挖掘準備的預處理步驟中重要工作。
4)度量的分類和計算
數據立方體的度量(measure)是一個數值函數,該函數可對數據立方體空間的每個點求值,通過對給定點的各維-值聚集數據,計算該點的度量值。
a、分布的(distributive)
一個聚集函數可用分布方式計算,則是分布。分布計算是指將數據劃分為n個集合,將函數作用于每個集合得到n個聚集值,其結果和將函數用于整體數據得到的結果一樣。如sum()、count()、min()、max()函數。
b、代數的(algebraic)
一個聚集函數能用一個具有M個參數的代數函數計算(M是有界正整數),而每個參數可以用一個分布聚集函數求得,則是代數的。如avt()=sum()/count()。
c、整體的(holistic)
一個聚集函數如果描述它的子聚集所需的存儲沒有一個常數界,則是整體的,包括median()、mode()和rank(),一個度量如果是由整體聚集函數得到的,則它是整體的。
5)典型的OLAP操作
在多維數據模型中,數據組織在多維空間,每維包含由概念分層定義的多個抽象層。部分數據立方體操作可物化視圖,允許交互查詢和分析數據。OLAP操作主要包括:
a、上卷rollup:沿一個維的概念分層向上攀升或通過維歸約在數據體立方體上進行聚集。
b、下鉆drilldown:是上卷的逆操作,沿維的概念分層向下或引入附加的維來實現。
c、切片和切塊slice:在給定的立方體的一個維上進行選擇,導致一個子立方體,是切片;切塊(dice)操作通過在兩個或多個維上進行選擇,定義子立方體。
d、轉軸(pivot):也成旋轉rotate是一種目視操作,轉動數據的視角,提供數據的替代表示。
e、其他OLAP操作:鉆過(drill-across)執行涉及多個事實表的查詢;鉆透(drill-through)操作使用關系SQL機制,鉆透到數據立方體的底層,到后端關系表。
其他OLAP操作還包括列出表中最高或最低N項,以及計算移動平均值、增長率、利潤、內部返回率、貶值、流通轉換和統計功能。
OLAP提供了分析建模機制,包括推導比率、方差等以及計算多個維上度量的計算引擎,能在每一粒度和所有維的交上產生匯總、聚集和分層。OLAP也支持預測、趨勢分析和統計分析函數原型,OLAP引擎是一種強有力的數據分析工具。
6)查詢多維數據庫的星網查詢模型
多維數據庫查詢可以基于星網模型(starnet model)。星網模型從中心點發出的射線組成,其中每一條射線代表一個維的概念分層。概念分層上的每個抽象級成為一個足跡(ftooprint),代表諸如上卷、下鉆等OLAP操作可用的粒度。
通過用較高層抽象值替換底層抽象值,概念分層可用于泛化(generalize)數據;通過用低層抽象值替換高層抽象值,概念分層可特殊化(specialize)數據。
4.3數據倉庫的設計與使用
1)數據倉庫的設計的商務分析框架
數據倉庫有助于提高競爭優勢、提高企業生產力、客戶關系管理等。為設計有效的數據倉庫,要理解和分析商務需求,構造一個商務分析框架。對于數據倉庫的設計,有四種不同的視圖:
a、自頂向下視圖;
b、數據源視圖:用傳統的數據建模技術,如E-R模型;
c、數據倉庫視圖:包括事實表和維表;
d、商務查詢視圖:從用戶的角度透視數據倉庫中的數據。
建立和使用數據倉庫,涉及:
a、商務技巧:理解如何存儲和管理數據;提取程序,數據從操作數據庫轉換到數據倉庫;倉庫刷新軟件,合理地保持數據倉庫中的數據相對于操作數據庫中數據的當前行;
b、技術技巧:根據數據倉庫中的歷史信息得到的結論推導事實,包括發現模式和趨勢,根據歷史推斷趨勢和發現異常或模式漂移的能力;
c、計劃管理技巧;
2)數據倉庫的設計過程
數據倉庫有自頂向下、自底向上以及二者混合的三種設計方法。自頂向下從總體設計和規劃開始,自底向上以實驗和原型開始。
數據倉庫的設計和構造包含以下步驟:規劃、需求研究、問題分析、倉庫設計、數據集成和測試、部署數據倉庫。開發方法有:瀑布式方法和螺旋式方法。瀑布式方法在進行下一步之前,每一步都進行結構的和系統的分析,如瀑布一樣,從一級落到一級。螺旋式方法是功能漸增的系統的快速產生,相繼發布之間的間隔很短,適合數據集市的開發。
數據倉庫的實現目標應當是詳細而明確的、可實現的和可測量的。
3)數據倉庫用于信息處理
數據倉庫工具可分為訪問和檢索工具、數據庫報表工具、數據分析工具和數據挖掘工具。
有三類數據倉庫應用:信息處理、分析處理、數據挖掘。信息處理支持查詢和基本的統計分析;分析處理支持基本的OLAP操作,包括切片和切塊、下鉆和上卷以及轉軸;數據挖掘支持知識發現,找出隱藏的模式和關聯,構造分析模型,進行分類預測,并使用可視化工具提供挖掘結果。
OLAP和數據挖掘的功能是不相交的,OLAP是數據匯總/聚集工具,簡化數據分析;而數據挖掘則是自動地發現隱藏在大量數據中的隱含模式和有趣知識。
4)從聯機分析處理到多維數據挖掘
數據類型包括關系數據、數據倉庫中的數據、事務數據、時間序列數據、空間數據、文本數據和一般文件。多維數據挖掘(又稱探索式多維數據挖掘、聯機分析挖掘或OLAM)把數據挖掘于OLAP集成再一起,在多維數據庫中發現知識。
多維數據挖掘的重要性,基于數據倉庫中數據的高質量、環繞數據倉庫的信息處理基礎設施、基于OLAP的多維數據探索、數據挖掘功能的聯機選擇。
多維數據挖掘強調數據挖掘和OLAP技術的集成。
4.4數據倉庫的實現
數據倉庫包含海量數據,OLAP服務器要在數秒內回答決策支持查詢,因此數據倉庫系統要支持高效的數據立方體計算技術、存取方法和查詢處理技術。
1)數據立方體的有效計算:概述
多維數據分析的核心是有效計算許多維集合上的聚集,即SQL上的group by。每個分組用一個方體表示,分組的集合形成定義數據立方體的方體的格。
compute cube操作在操作指定的維的所有子集上計算聚集,需要很大存儲空間。不包含分組的SQL查詢是0維操作;包含一個分組的SQL查詢是一維操作;在n維上的一個立方體操作等價于一組分組語句,每個對應于n個維的一個子集,立方體操作是分組操作的n維推廣。
對于不同的查詢,聯機分析錘煉需要訪問不同的方體,能提前計算所有的或者至少一部分方體,可以加快響應時間,避免冗余計算,當然是犧牲存儲空間。聚集的預計算,在維較多且維有關聯的概念分層時,存儲需求非常大,造成維災難(curse of dimensionality)。
n維數據立方體的方體總數公式: ,加1是包括虛擬的頂層。給定基本方體,物化有三種選擇:不物化、完全物化、部分物化。不物化就是不預先計算任何非基本方體,查詢的實時計算代價高昂;而完全物化則是預先計算所有方體,需要海量存儲空間;部分物化是有選擇地計算方體集中一個適當的子集來,要考慮三個因素,第一是確定要物化的方體子集或子立方體,第二是在查詢處理時利用物化的方體或子立方體,第三在裝入和刷新時有效地更新物化的方體或子立方體。
有些OLAP產品也采用啟發式方法來進行方體或子立方體的選擇,最佳效果就是所物化的子集,都能被其他所引用,這就提出冰山立方體(iceberg cube)。冰山立方體是一個數據立方體,只存放其聚集值大于某個最小支持閾值的立方體單元。還有一種策略是物化一個外殼立方體(shell cube),預計算數據立方體中少量的維的方體,作臨時查詢用。
2)索引OLAP數據:位圖索引和連接索引
要提高查詢速度,數據倉庫系統除了物化立方體(實際就是聚集預計算,也可以理解為視圖的物化),還可以支持索引結構。支持索引結構有兩種:
a、位圖索引(bitmapindexing),允許在數據立方體中快速搜索。在給定屬性的位圖索引中,屬性域中的每個值v,有一個不同的位向量Bv,如屬性域中包含n個值,則需n位向量,如果給定行在該屬性域中有值v,則位向量值為1,否則為0,適合屬性域值是離散的情況。、
與散列和樹索引相比,位圖索引具有優勢。對于基數較小的值域特別有用,因為比較、連接和聚集操作都簡化成位算術計算,大大減少時間;而且字符串用單個進位表示,降低了空間和IO開銷。對于基數較高的值域,可使用壓縮技術,再用位圖索引。
b、連接索引(joinindexing)在關系數據庫查詢有應用。連接索引登記來自關系數據庫的兩個關系的可連接行,連接索引記錄能夠識別可連接的元組,不比執行開銷較大的連接操作。對于維護來自可連接的關系的外碼(一個關系模式中形成另一個關系模式主碼的屬性集)和與之匹配的主碼的聯系,連接索引比較有用。
3)OLAP查詢的有效處理
物化視圖和構造OLAP索引結構的目的是加快數據立方體查詢處理的速度。給定物化的視圖,查詢按照如下步驟進行:
確定哪些操作應當在可利用的方體上執行;確定相關操作應當使用哪些物化的方體。
4)OLAP服務器結構:ROLAP、MOLAP、HOLAP的比較
用于OLAP處理的數據倉庫服務器的實現包括:
關系OLAP(ROLAP)服務器,介于后端服務器和前端工具之間,使用關系或擴充關系的DBMS存儲并管理數據倉庫數據。
多維OLAP(MOLAP)服務器,基于數組的多維存儲引擎,支持數據的多維視圖;將多維視圖直接映射到數據立方體數組結構,使用數據立方體能對預計算的匯總數據快速索引,如果數據集是稀疏的,應當配合使用稀疏矩陣壓縮技術;MOLAP服務采用兩級存儲表示來處理稠密和稀疏數據集:識別較稠密的子立方體并作為數組結構存儲,而稀疏子立方體使用壓縮技術,提高存儲利用率。
混合OLAP(HOLAP)服務器:混合ROLAP和MOLAP技術。
特殊的SQL服務器。
4.5數據泛化:面向屬性的歸納
數據泛化通過把相對低層的值用較高層的概念替換來匯總數據,或通過減少維數,在涉及較少的維數的概念空間匯總數據。允許數據集在多個抽象層泛化,便于用戶考察數據的一般性質。
數據泛化的形式:概念描述(concept description)產生數據的特征和比較描述。對于復雜的數據類型和聚集以及用于控制與自動處理,涉及到面向屬性的歸納,可用于復雜的數據類型并依賴數據驅動的泛化過程。
1)數據特征的面向屬性的歸納
數據立方體方法基本上是基于數據的物化視圖,通常在數據倉庫中余弦計算。概念描述的面向屬性的歸納(Attribute-Oriented Induction,AOI),是面向查詢的、基于泛化的、聯機的數據分析處理技術。
面向屬性的歸納的基本思想是:首先使用數據庫查詢收集任務相關的數據;接著,通過考察任務相關數據中每個屬性的不同值的個數進行泛化。泛化或者通過屬性刪除,或者通過屬性泛化進行。
面向屬性歸納的基本操作是數據泛化,在初始關系上進行,有兩種方法:屬性刪除(attribute removl)和屬性泛化(attributegeneralization)。
a.屬性刪除:基于如下規則,如果初始工作關系的某個屬性有大量不同的值,但是在該屬性上沒有泛化操作符(如該屬性沒有定義概念分層),或者其較高層概念用其他屬性表示,則可將屬性從工作關系中刪除;
b.屬性泛化:基于如下規則,如果初始工作關系的某個屬性有大量不同的值,并且該屬性上存在泛化操作符的集合,則應當選擇一個泛化操作符,并將它用于該屬性。該規則基于如下理由:使用泛化操作符泛化工作關系中元組或規則的屬性值,將使得規則涵蓋更多的原數據的元組,從而泛化了它所表示的概念。在示例學習中成為沿泛化樹攀升或概念樹攀升。
如何界定屬性有大量不同的值?一種技術就是屬性泛化閾值控制,或者對所有的屬性設置一個泛化閾值,或者對每個屬性設置一個閾值。另一種技術是廣義關系閾值控制,為廣義關系設置一個閾值,如果廣義關系中不同元組的個數超過該閾值,則應進一步泛化,否則不再泛化。
2)面向屬性歸納的有效實現
算法:面向屬性歸納,根據用戶的數據挖掘請求,挖掘關系數據庫中的泛化特征。
輸入:DB,關系數據庫;
????? DMQuery,數據挖掘查詢;
????? a_list,屬性列表(包含屬性ai等);
????? Gen(ai),屬性ai上的概念分層或泛化操作符的集合;
????? a_gen_thresh(ai),每個屬性ai的泛化閾值。
輸出:主廣義關系P。
方法:
?????a.get_task_relevant_data(DMQuery,DB)->W;//工作關系W存放任務相關的數據。
????? b.prepare_for_generalization(W);//實現如下
?????????? a)掃描W,收集每個屬性ai的不同值;(如果W過大,可考察W的樣本)
?????????? b)對于每個屬性ai,根據給定的或默認的屬性閾值,確定ai是否應當刪除;如果不刪除,
???????????? 則計算它的最小期望層次Li,并確定映射對(v,v*),其中v是W中ai的不同值,而v*是v在層Li上的泛化值。
????? c.generalization(W)->P,通過映射中對應的v*替換W中每個值v,累計count并計算所有聚集值,導出主廣義關系P。有兩種實現方法:
?????????? a)對于每個廣義元組,通過二分檢索將它插入主關系P中,如果元組中已在P中,則簡單地增加它的count并相應地處理其他聚集值;否則,將它插入P。
?????????? b)在大部分情況下,由于主關系不同值的個數較少,可以將主關系編碼,作為m維數組,其中m是P中的屬性數,而每個維包含對應的泛化屬性值。如果有的話,數組的每個元素存放對應的count和其他聚集值。廣義元組的插入通過對應的數組元素上的度量聚集進行。
3)類比較的面向屬性歸納
有些場景,可能不只要對單個類做屬性歸納,而是要將一個類和其他可比較的類相區分。類區分或類比較挖掘區分目標類和它的對比類的描述。目標類和對比類必須是可比較的,它們應具有相似的維或屬性。
如何進行類比較:
a.數據收集,通過查詢處理收集數據庫中相關數據,并把它劃分成一個目標類和一個或多個對比類;
b.維相關分析,如果有多個維,則應當在這些類上進行維相關分析,僅選擇與進一步分析高度相關的維,可使用相關性度量或基于熵的度量。
c.同步泛化:泛化在目標類上進行,泛化到用戶或領域專家指定的維閾值控制的層,產生主目標類關系。對比類的概念泛化到與主目標類關系相同的層次,形成主對比類關系。
d.導出比較的表示:結果類比較描述可用表、圖或規則的形式可視化。
與數據立方體相比,數據特征和泛化的面向屬性的歸納方法提供了另一種數據泛化方法,不局限于關系數據,還可以在空間、多媒體、序列以及其他類型的數據集上進行。
4.6小結
1)數據倉庫是面向主題的、集成的、時變的和非易失的有組織的數據集合,支持管理決策制定。數據倉庫和操作數據庫功能不同、數據類型不同,二者要分開維護。
2)數據倉庫采用三層體系結構,底層是數據倉庫服務器,通常是關系數據庫系統,中間層是OLAP服務器,頂層是客戶,包括查詢和報表工具。
3)數據倉庫包含加載和刷新倉庫的后端工具和實用程序,涵蓋數據提取、數據清理、數據變換、裝入、刷新和倉庫管理。
4)數據倉庫元數據是定義倉庫對象的數據。元數據庫提供了關于倉庫結構,數據歷史,匯總使用的算法,從源數據到倉庫形式的映射,系統性能,商務術語和問題等細節。
5)通常,多維數據模型用于企業數據倉庫和部門數據集市的設計。這種模型采用了星形模式、雪花模式或事實星座模式。多維數據模型的核心是數據立方體。數據立方體由大量事實(或度量)和許多維組成。維是一個組織想要記錄的實體或透視,本質上是分層。
6)數據立方體由方體的格組成,每個方體對應于給定多維數據的一個不同級別的匯總。
7)概念分層將屬性或維的值組織成漸進的抽象層,概念分層對于多抽象層上的挖掘是有用的。
8)聯機分析處理(OLAP)可以在使用多維數據模型數據倉庫或數據集市上進行。典型的OLAP操作包括上卷、下鉆(鉆過、鉆透)、切片和切塊、轉軸(旋轉),以及統計操作,如秩評定、計算移動平均值和增長率等。使用數據立方體結構,OLAP操作可以有效地實現。
9)數據倉庫用于信息處理(查詢和報表)、分析處理(允許用戶通過OLAP操作在匯總數據和細節數據之間導航)和數據挖掘(支持知識發現)。基于OLAP的數據挖掘稱為多維數據挖掘(又稱探索式多維數據挖掘、聯機分析挖掘或OLAM)。它強調OLAP挖掘的交互式和探測式特點。
10)OLAP服務器可以是關系OLAP(LOLAP)、多維OLAP(MOLAP)、或混合OLAP(HOLAP)。ROLAP服務器使用擴充的關系DBMS,把多維數據上的OLAP操作映射成標準的關系操作。MOLAP服務器直接把多維數據視圖映射到數組結構。HOLAP是ROLAP和MOLAP的結合,如可以對歷史數據使用ROLAP,而將頻繁訪問的數據放在一個分離的MOLAP存儲中。
11)完全物化是指計算定義數據立方體的格中所有的方體,通常需要過多的存儲空間,特別是當維數和相關聯的概念分層增長時,引起維災難。作為一種替代方案,部分物化是選擇性計算格中的方體子集或子立方體,如冰山立方體,只存放其聚集值大于某個最小支持閾值的立方體單元。
12)使用索引技術,OLAP查詢處理可以更有效地進行。在位圖索引中,每個屬性都有它自己的位圖索引表。位圖索引把連接、聚集和比較操作歸結成位算術運算。連接索引登記來自兩個或多個關系的可連接行,降低了OLAP連接操作的代價。位圖連接索引結合位圖和連接索引方法,可以進一步加快OLAP查詢處理。
13)數據泛化是一個過程,它把數據庫中大量任務相關的數據,從相對較低的概念層抽象到較高的概念層。數據泛化方法包括基于數據立方體的數據聚集和面向屬性的歸納。概念描述是描述性數據挖掘的最基本形式,以簡潔匯總的形式描述給定的任務相關數據集,提供數據的有趣的一般性質。概念或類描述由特征和比較或區分組成。前者匯總并描述稱做目標類的數據集,而后者匯總并將一個稱做目標類數據集于稱做對比類的其他數據集相區別。
14)概念特征化可以使用數據立方體(基于OLAP)的方法和面向屬性的歸納方法實現。都是基于屬性或基于維的泛化的方法。面向屬性歸納方法包含以下技術:數據聚焦、通過屬性刪除或屬性泛化對數據泛化、計數和聚集值累計、屬性泛化控制和泛化數據可視化。
15)概念比較可以用類似于概念特征的方式,使用面向屬性歸納或數據立方體方法進行。可以量化地比較和對比從目標類和對比類泛化的元組。
?
總結
以上是生活随笔為你收集整理的【数据挖掘笔记四】数据仓库和联机分析处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【正一专栏】马蓉到底对王宝强还有啥感情?
- 下一篇: 【数据挖掘知识点三】大数定理与中心极限定