1. 程式人生 > >資料倉庫與聯機分析處理

資料倉庫與聯機分析處理

本文為《資料探勘:概念與技術》中“資料倉庫與聯機分析處理”的閱讀筆記。


資料倉庫與聯機分析處理

ETL:用來描述將資料從來源端經過抽取(extract)轉換(transform)載入(load)至目的端的過程。

  • 資料倉庫提供聯機分析處理(OLAP)工具,用於各種粒度的多維資料的互動分析,有利於有效的資料泛化和資料探勘。
  • 資料立方體,是一種用於資料和OLAP以及OLAP操作(如上卷、下鑽、切片和切塊)的多維資料模型。

資料倉庫:基本概念

什麼是資料倉庫

資料倉庫是一個面向主題的、整合的、時變的、非易失的資料集合,支援管理者的決策過程。

  • 面向主題的:資料倉庫關注決策者的資料建模和分析,而不是單位的日誌操作和事務處理。資料倉庫通常排除對於決策無用的資料,提供特定主題的簡明檢視。
  • 整合的:通常構造資料倉庫是將多個異構資料來源,如關係資料庫、一般檔案和聯機事務處理記錄整合在一起。
  • 時變的:資料倉庫的關鍵結構都隱式或顯式地包含時間元素。
  • 非易失的:資料倉庫總是物理地分離存放資料,不需要事務處理、恢復和併發控制機制,通常只需要資料訪問操作:資料的初始化裝入和資料訪問。

操作資料庫系統與資料倉庫的區別

  • 聯機操作資料庫系統的主要是執行聯機事務和查詢處理,稱為聯機事務處理(Online Transaction Processing,OLTP)系統。
  • 資料倉庫系統在資料分析和決策方面為使用者或“知識工人”提供服務,這種系統可以用不同的格式組織和提供資料,以便滿足不同使用者的形形色色的需求,稱作聯機分析處理(Online Analytical Processing,OLAP)系統。

主要區別如下:

  1. 使用者和系統的面向性: OLTP是面向顧客的,用於專業人員的事務和查詢處理;OLAP是面向市場的,用於知識工人的資料分析。
  2. 資料內容:OLTP系統管理當前資料;OLAP系統管理大量歷史資料,提供彙總和聚集機制,使資料更容易用於有根據的決策。
  3. 資料庫設計:OLTP系統採用實體-聯絡(ER)資料模型和麵嚮應用的資料庫設計;OLAP系統通常採用星形或雪花模型和麵向主題的資料庫設計。
  4. 檢視:OLTP系統主要關注一個企業或部門內部的當前資料,而不涉及歷史資料或不同單位的資料;OLAP系統還處理來自不同單位的資訊,以及由多個數據庫整合的資訊。由於資料量巨大,OLAP資料存放在多個儲存介質上。
  5. 訪問模式:OLTP系統的訪問主要由短的原子食物組成,該系統需要併發控制和恢復機制;OLAP系統的訪問大部分是 只讀操作(存放的是歷史資料,不是最新資料),儘管許多情況是複雜的查詢。
    在這裡插入圖片描述

為什麼需要分離的資料倉庫

  • 操作資料庫是為已知的任務和負載設計的,檢索特定的記錄,優化“定製的”查詢。資料倉庫的查詢通常是複雜的,涉及大量資料在彙總級的計算,可能需要特殊的基於多維檢視的資料組織、存取方法和實現方法。
  • 操作資料庫支援多事務的併發處理,需要併發控制和恢復機制,以確保一致性和事務的魯棒性。OLAP查詢只需要對彙總和聚集資料記錄進行只讀訪問。
  • 資料倉庫與操作資料庫分離是由於這兩種系統中的資料的結構、內容和用法都不相同。

資料倉庫:一種多層體系結構

  • 底層是倉庫資料庫伺服器。
  • 中間層是OLAP伺服器
  • 頂層是前段客戶層
    在這裡插入圖片描述

資料倉庫模型:企業倉庫、資料集市和虛擬倉庫

從結構的角度來看,有三種資料倉庫模型

  • 企業倉庫
  • 資料集市
  • 虛擬倉庫

資料提取、變換和裝入

  • 資料提取:由多個異構的外部資料來源收集資料。
  • 資料清理:檢測資料中的錯誤,可能時訂正它們。
  • 資料變換:將資料由遺產或宿主格式轉換層資料倉庫格式。
  • 裝入:排序、彙總、合併、計算檢視、檢查完整性,並建立索引和劃分。
  • 重新整理:傳播由資料來源到資料倉庫的更新。

元資料庫

元資料是關於資料的資料。在資料倉庫中,元資料是定義倉庫物件的資料。元資料庫應當包括以下內容:

  • 資料倉庫結構的描述
  • 操作元資料,包括資料血統、資料流通、管理資訊
  • 用於彙總的演算法
  • 由操作環境到資料倉庫的對映
  • 系統性能的資料
  • 商務元資料

資料倉庫建模:資料立方體與OLAP

資料倉庫和OLAP工具基於多維資料模型,這種模型將資料看做資料立方體形式。

資料立方體:一種多維資料模型

  • 資料立方體允許以多維對資料建模和觀察,它由維和事實定義。
  • 維是一個單位想要記錄的透視或實體。
  • 每個維都可以有一個與之相關聯的表,該表稱為維表,它進一步描述維。
  • 通常,多維資料模型圍繞注入銷售這樣的中心主題組織,主題用事實表表示,事實是數值度量的。
  • 存放最低層彙總的方體稱作基本方體(base cuboid),0-D方體存放最高層的彙總,稱為頂點方體(apex cuboid),頂點方體通常用all標記。

星型、雪花型和事實星座:多維資料模型的模式

最流行的資料倉庫的資料模型是多維資料模型,這種模型可以是星型模型雪花模型事實星座模式

星型模式

  • 最常見的模式範型,其中資料倉庫包括:
  • 一個大的中心表(事實表),它包含大批資料並且不含冗餘
  • 一組小的附屬表(維表),每維一個。
  • -每維只用一個表表示,而每個表包含一組屬性。
  • 一個維表中的屬性可能形成一個層次(全序)或格(偏序)。
    在這裡插入圖片描述
    雪花模式
  • 雪花模式是星型模式的變種,其中某些維表被規範化,因而把資料進一步分解到附加的表中。
    在這裡插入圖片描述
    事實星座
  • 複雜的應用可能需要多個事實表共享維表,這種模式可以看做星型模式的彙集,因此稱作星系模式或事實星座。
  • 對於資料倉庫,通常使用事實星座模式,因為它能對多個相關的主題建模。資料集市是資料倉庫的一個子集,它針對選定的主題,流行採用星型或雪花模式,因為他們都適合對單個主題建模。
    在這裡插入圖片描述

維:概念分層的作用

概念分層定義一個對映序列,將低層概念集對映到較高層、更一般的概念。
在這裡插入圖片描述

  • 形成資料庫模式中屬性的全序或偏序的概念分層稱做模式分層
    在這裡插入圖片描述
  • 資料探勘系統應當為使用者提供靈活性,允許使用者根據他們的特殊需要裁剪預定義的分層,也可以通過將給定維或屬性的值離散化或分組來定義概念分層,產生集合分組分層

度量的分類和計算

  • 資料立方體空間的多維點可以用維-值對的集合來定義。
  • 資料立方體度量(measure)是一個數值函式,該函式可以對資料立方體空間的每個點求值。
  • 度量根據所用的聚集函式可以分為三類:分佈的、代數的和整體的。
    • 分散式的:如果將資料劃分為n個集合,將函式用於每一部分,得到n個聚集值。如果將函式用於n個聚集值得到的結果與將函式用於整個資料集得到的結果一樣,這該函式可以用分佈方式計算。
    • 代數的:一個聚集函式如果能用一個具有M個引數的代數函式計算,而每個引數都可以用一個分佈聚集函式求得,則它是代數的。
    • 整體的:一個聚集函式如果描述它的子聚集所需的儲存沒有一個常數界,則它是整體的。也就是不存在一個具有M個引數的代數函式進行這一計算。

典型的OLAP操作

在"在OLAP中,如何使用概念分層",在多維資料模型中,資料組織在多維空間,每維包含由概念分層定義的多個抽象層。

OLAP操作

  • 上卷(roll-up):上卷操作(也稱為上鑽(drill-up)操作)通過沿一個維的概念分層向上攀升或者通過維歸約在資料立方體上進行聚集。

  • 下鑽(drill-down):下鑽是上卷的逆操作,它由不太詳細的資料到更詳細的資料。下鑽可以通過沿維的概念分層向下或引入附加的維來實現。

  • 切片和切塊

    • 切片(slice)操作在給定的立方體的一個維上進行選擇,導致一個子立方體。
    • 切塊(dice)操作通過在兩個或多個維上進行選擇,定義子立方體。
  • 轉軸(pivot):轉軸(又稱旋轉(rotate))是一種目視操作,它轉動資料的視角,提供資料的替代表示。
    在這裡插入圖片描述
    其他OLAP操作:

  • 鑽過(drill-across)執行涉及多個事實表的查詢。

  • 鑽透(drill-through)操作使用關係SQL機制,鑽透到資料立方體的底層,到後端關係表。

查詢多維資料庫的星網查詢模型

  • 多維資料庫查詢可以基於星網模型(starnet model)。
  • 星網模型由從中心點發出的射線組成,其中每一條射線代表一個維的概念分層。
  • 概念分層上的每個“抽象級”稱為一個足跡(footprint),代表諸如上卷、下鑽等OLAP操作可用的粒度。
  • 通過用較高層抽象值替換低層抽象值,概念分層可以用於泛化資料。
  • 通過用低層抽象值替換高層抽象值,概念分層也可以特殊化資料。

資料倉庫的設計與使用

“如何設計資料倉庫?如何使用資料倉庫?資料倉庫和OLAP與資料探勘有何聯絡?”

資料倉庫的設計的商務分析框架

關於資料倉庫的設計,必須考慮四種不同的檢視:

  • 自頂向下檢視:使得我們可以選擇資料倉庫所需的相關資訊。
  • 資料來源檢視:揭示被操作資料庫系統收集、儲存和管理的資訊。
  • 資料倉庫檢視:包括事實表和維表。
  • 商務查詢檢視:是從終端使用者的角度透視資料倉庫中的資料。

資料倉庫的設計過程

資料倉庫可以使用自頂向下方法、自底向上方法、或二者結合的混合方法設計。

  • 自頂向下:由總體設計和規劃開始。
  • 自底向上:以實現和原型開始。
  • 混合方法:一個組織既能利用自頂向下方法的規劃性和戰略性特點,又能保持像自底向上方法一樣快速實現和立即應用。

一般而言,資料倉庫的設計過程包含以下步驟:

  • 選取待建模的商務處理
  • 選擇商務處理的粒度
  • 選取用於每個事實表記錄的維
  • 選取將安放在每個事實表記錄中的度量

資料倉庫用於資訊處理

有三類資料倉庫應用:

  • 資訊處理:支援查詢和基本的統計分析,並使用交叉表、表、圖表或圖進行報告。
  • 分析處理:支援基本的OLAP操作,包括切片與切塊、下鑽、上卷和轉軸。
  • 資料探勘:支援知識發現,包括找出隱藏的模式和關聯,構造分析模型,進行分類和預測,並使用視覺化工具提供挖掘結果。

資料探勘的涵蓋面要比簡單的OLAP操作寬的多,因為它不僅執行資料彙總和比較,而且執行關聯、分類、預測、聚類、時間序列分析和其他資料分析任務。

從聯機分析處理到多維資料探勘

  • 資料探勘對關係資料、資料倉庫的資料、事務資料、時間序列資料、空間資料、文字資料和一般資料進行挖掘。
  • 多維資料探勘(又稱探索式多維資料探勘、聯機分析挖掘或OLAM)把資料探勘與OLAP整合在一起,在多維資料庫中發現知識。

多維資料探勘特別重要的原因:

  • 資料倉庫中資料的高質量
  • 環繞資料倉庫的資訊處理基礎設施
  • 基於OLAP的多維資料探索
  • 資料探勘功能的聯機選擇

資料倉庫的實現

資料立方體的有效計算:概述

compute cube操作與維災難

  • 多維資料分析的核心是有效計算許多維集合上的聚集。用SQL的術語,這些聚集稱為分組(group-by)。
  • 每個分組可以用一個方體表示,而分組的集合構成資料立方體。
  • 頂點方體或0-D方體表示分組為空的情況,基本方體是最低泛化的方體。
  • 對於n維立方體,包括基本方體總共有2^n個方體。
  • 大多數OLAP產品都藉助於多維聚集的預計算。
  • 如果資料立方體的所有方體都預先計算,所需的儲存空間可能爆炸,特別是當立方體包含許多維時。當許多維都具有相關聯的概念分層,具有多層時,儲存需求甚至更多,這個問題稱作維災難。
  • 預計算並物化由資料立方體可能產生的所有方體是不現實的,更合理的選擇是部分物化。

部分物化:方體的選擇計算

  • 部分物化:有選擇的計算整個可能的方體集中一個適當的子集。我們也可以計算立方體的一個子集,它只包含滿足使用者指定的某種條件(如每個單元的元組計數大於某個閾值)的那些單元,這種情況我們稱為子立方體。
  • 冰山立方體(iceberg cube):一個數據立方體,它只存放其聚集值大於某個最小支援度閾值的立方體單元。
  • 外殼立方體(shell cube):預計算資料立方體的只有少量維(例如3到5維)的方體。

索引OLAP資料:點陣圖索引和連線索引

  • 為了提供有效的資料訪問,大部分資料倉庫系統支援索引結構和物化檢視。
  • 點陣圖索引(bitmap indexing):record_ID列表的一種代替表示。如果給定的屬性域包含n個值,則點陣圖索引中每項需要n個位(即n維向量)。如果資料表給定行上該屬性值為v,則在點陣圖索引的對應行,表示該值的位為1,該行的其他位均為0。
    • 對於基數較小的值域特別有用,因為比較、連線和聚集操作都簡化為位算術運算,大大減少了處理時間。
    • 由於字串可以用單個二進位表示,點陣圖索引顯著降低了空間和IO開銷。
    • 對於基數較高的值域,可以使用壓縮技術。
      在這裡插入圖片描述
      在這裡插入圖片描述
  • 連線索引(join indexing):連線索引登記來自關係資料庫的兩個關係的可連線行。
    • 與傳統的索引將給定列上的值對映到具有該值的行的列表上不同。
    • 連線索引記錄能夠識別可連線的元組,而不必執行開銷很大的連線操作。
    • 連線索引可以跨越多維,形成複合連線索引。
    • 為進一步加快查詢處理,我們可以將連線索引與點陣圖索引整合,形成點陣圖連線索引。
      在這裡插入圖片描述

OLAP查詢的有效處理

給定物化的檢視,查詢處理應按如下步驟進行:

  • 確定哪些操作應當在可利用的方體上執行。
  • 確定相關操作應當使用哪些物化的方體。
    在這裡插入圖片描述

OLAP伺服器結構:ROLAP、MOLAP、HOLAP的比較

用於OLAP處理的資料倉庫伺服器的實現包括:

  • 關係OLAP(ROLAP)伺服器:使用關係的或擴充關係的DBMS儲存並管理資料倉庫資料,而OLAP中介軟體支援其餘部分。具有比MOLAP更好的可伸縮性。
  • 多維OLAP(MOLAP)伺服器:通過基於陣列的多維儲存引擎,將多維檢視直接對映到資料立方體陣列結構。如果資料集是稀疏的,儲存利用率會很低,應當使用稀疏矩陣壓縮技術。
  • 混合OLAP(HOLAP)伺服器:結合ROLAP和MOLAP技術,得益於ROLAP較大的可伸縮性和MOLAP的快速計算。
  • 特殊的SQL伺服器:一些資料庫供應商實現了特殊的SQL伺服器,提供高階查詢語言和查詢處理,在只讀環境下,在星型和雪花型模式上支援SQL查詢。

資料如何存放在ROLAP結構中:

  • 與基本方體相關聯的事實表稱為基本事實表。
  • 基本事實表存放的資料所處的抽象級由給定的資料立方體的模式的連線鍵指出。
  • 聚集資料也能存放在事實表中,這種表稱為彙總事實表。

資料泛化:面向屬性的歸納

  • 資料泛化通過把相對低層的值用較高層概念替換來彙總資料,或通過減少維數,在涉及較少維數的概念空間彙總資料。
  • 概念通常指資料的彙集。概念描述產生資料的特徵和比較描述。
  • 當被描述的概念涉及物件類時,有時也稱概念描述為類描述
  • 特徵提供給定資料彙集的簡潔彙總,而概念或類的比較也稱作區分,提供兩個或多個數據集合的比較描述。
  • 與資料立方體方法相比,資料特徵和泛化的面向屬性的歸納方法提供了另一種資料泛化方法,用於複雜的資料型別並依賴資料驅動的泛化過程。
  • 不侷限與關係資料
  • 不需要預先計算資料立方體
  • 可以把自動分析加入這種歸納過程,自動過濾不相關或不重要的屬性。
  • 不能有效支援下鑽到比被泛化的關係提供的抽象層還深的層。

資料特徵的面向屬性的歸納

基本思想:

  • 首先使用資料庫查詢收集任務相關的資料(資料聚焦)
  • 通過考察任務相關資料中每個屬性的不同值的個數進行泛化(通過屬性刪除或通過屬性泛化進行)。
  • 聚集通過合併相同的廣義元組,並收集它們對應的計數值進行。

屬性刪除:如果初始工作關係的某個屬性有大量不同的值,但是在該屬性上沒有泛化操作符,或者它的較高層概念用其他屬性表示,則應當將該屬性從工作關係中刪除。
屬性泛化:如果初始工作關係的某個屬性有大量不同的值,並且該屬性上存在泛化操作符的集合,則應當選擇一個泛化操作符,並將它用於該屬性。

多大才算“屬性具有大量不同值”,控制泛化過程的方法:

  • 屬性泛化閾值控制:對所有的屬性設定一個泛化閾值,或對每個屬性設定一個閾值。
  • 廣義關係閾值控制:為廣義關係設定一個閾值。

這兩種技術可以順序使用,先用屬性泛化閾值控制技術泛化每個屬性,然後使用關係閾值控制進一步壓縮廣義關係。
泛化過程將導致相同元組的分組,這些相同的元組合併成一個,同時累計它們的計數值。

面向屬性歸納的有效實現

演算法的有效性分析如下:

  • 演算法的第1步基本上是關係查詢,把任務相關的資料收集到工作關係W中。其有效性依賴與所用的查詢處理方法。
  • 第2步收集初始關係上的統計量。最多需要掃描一次該關係。計算開銷依賴與每個屬性的不同值的數量,小於初始關係的元組個數|W|。可使用工作關係的一個樣本得到統計量。
  • 第3步匯出主關係P。所有廣義元組的時間複雜度為O(N)。
    在這裡插入圖片描述

類比較的面向屬性歸納

  • 類區分或比較挖掘區分目標類和它的對比類的描述。
  • 目標類和對比類必須是可比較的,意指它們具有相似的維或屬性。

如何進行類比較?

  • 資料收集:通過查詢處理收集資料庫中相關資料,並把它劃分成一個目標類和一個或多個對比類。
  • 維相關分析:如果有多個維,則應當在這些類上進行維相關分析,僅選擇與進一步分析高度相關的維。
  • 同步泛化:泛化在目標類進行,產生主目標類關係。對比類的概念泛化到與主目標類關係相同的層次,形成主對比類關係。
  • 匯出比較的表示:結果類比較描述可以用表、圖或規則的形式視覺化。

原文連結