- 該博客爲數據挖掘系列博客的第十四部分:相關知識。
- 該博客主要介紹數據挖掘的一些其他的相關知識,包括但不限於數據庫、數據倉庫、OLAP模型等。
文章目錄
數據倉庫
由何而來
- 隨着數據庫技術和計算機網絡的發展成熟,以數據處理爲基礎的相關技術得到巨大的發展。
- 20世紀80年代中期,“數據倉庫”(Data Warehouse,DW)這個名詞首先出現在被稱爲“數據倉庫之父”W.H.Inmon的 Building Data Warehouse 一書中。
怎麼定義
W.H.Inmon把數據倉庫定義爲“一個面向主題的、集成的、穩定的、隨時間變化的數據的集合,以用於支持管理決策過程”。
- 面向主題(Subject Oriented)
主題是指用戶使用數據倉庫進行決策時所關心的重點領域,也就是在一個較高的管理層次上對信息系統的數據按照某一具體的管理對象進行綜合、歸類所形成的分析對象。 - 集成性(Integrate)
數據倉庫中存儲的數據一般從企業原來已建立的數據庫系統中提取出來,但並不是原有數據的簡單拷貝,而是經過了抽取、篩選、清理、轉換、綜合等工作得到的數據。 - 穩定性(Non-Volatile)
相比於操作型數據庫系統一般只存儲短期數據且隨時可以被插入、更新、刪除和訪問所帶來的不穩定性,數據倉庫中的數據大多表示過去某一時刻的數據,主要用於查詢分析,穩定性較好。 - 隨時間而變化(Change Over Time)
數據倉庫大多關注的是歷史數據,其中數據是批量載入的,即定期從操作型應用系統中接收新的數據內容,這使得數據倉庫中的數據總是擁有時間維度。
從數據庫到數據倉庫
- 傳統的數據庫技術是以單一的數據資源,即數據庫爲中心,進行OLTP(聯機事務處理)、批處理、決策分析等各種數據處理工作,主要劃分爲兩大類:操作型處理和分析型處理。
- 操作型處理又稱事務處理,是指對操作型數據庫的日常操作,通常是對一個或一組記錄的查詢和修改,主要是爲企業的特定應用服務的,注重響應時間、數據的安全性和完整性。
- 分析型處理則用於管理人員的決策分析,經常要訪問大量的分析型歷史數據。
- 正所謂一心難以二用,爲了提高兩個系統的性能,操作型處理和分析型處理的分離稱爲必然。
數據倉庫 | 操作型數據庫 |
---|---|
面向主題 | 面向應用 |
容量巨大 | 容量較小 |
數據是綜合提煉的 | 數據是詳細的 |
保存歷史的數據 | 保存當前的數據 |
數據一般不可更新 | 數據可更新 |
操作需求是臨時決定的 | 操作需求是事先可知的 |
一個操作存取一個數據集合 | 一個操作存取一個記錄 |
系統組成
數據倉庫系統通常指一個數據庫環境,而不是指一件產品。數據倉庫系統的一般體系結構如圖所示。整個數據倉庫系統分文源數據層、數據存儲與管理層、OLAP(聯機分析處理)服務器層和前端分析工具層。
- 抽取工具(ETL)
- ETL是Extract、Transform、Load三個單詞的首字母縮寫,即抽取、轉換和裝載。
- 用於把數據從各種各樣的存儲環境中提取出來,進行必要的轉化、整理,再存放到數據倉庫內。
- 數據集市
- 數據集市面向企業中的某個部門(或某個主題),是從數據倉庫中劃分出來的,可以是邏輯上的,也可以是物理上的。
- 數據集市只存放某個主題所需的信息,其目的是減少數據處理量,使信息的利用更加快捷和靈活。
- 元數據
- 元數據是關於數據的數據,在數據倉庫中元數據位於數據倉庫的上層,是描述數據倉庫內數據的結構、位置和建立方法的數據。
- 通過元數據進行數據倉庫的管理和通過元數據來使用數據倉庫。
- 按照用途對元數據進行分類是最常見的分類方法,可將其分成兩類:管理元數據和用戶元數據。
發展歷程
批處理即席查詢分析建模持續更新和流程互動基於事件的觸發
用武之地
- 決策支持
- 客戶分類與評價
- 市場自動化
OLAP
如何定義
- OLAP(OnLine Analytical Processing,聯機分析處理)是使用多維結構爲分析提供對數據的快速訪問的一種最新技術。OLAP的源數據通常存儲在關係數據庫的數據倉庫中。
- (OLAP委員會的定義)OLAP是使分析人員、管理人員或執行人員能夠從多角度對信息進行快速、一致、交互的存取,從而獲得對數據的更深入瞭解的一類軟件技術。
有何作用
OLAP的目的旨在處理髮現企業趨勢和影響企業發展的關鍵因素而提供進行數據組織和查詢的工具。
特性在哪
- 多維性:OLAP是面向主題的多維數據分析技術。
- 可理解性或可分析性:爲OLAP分析設計的數據倉庫或數據集市可以處理與應用程序和開發人員相關的任何業務邏輯和統計分析,同時使它對於目標用戶而言足夠簡單。
- 交互性:用戶可以在分析中定義新的專用計算,並可以以任何希望的方式報告數據。
- 快速性:指OLAP系統應當通過使用各種技術,儘量提高對用戶的反應速度。
OLAP和OLTP的區別
比較項 | OLAP | OLTP |
---|---|---|
特性 | 信息處理 | 操作處理 |
用戶 | 高層管理人員 | 操作人員 |
功能 | 支持決策需要 | 支持日常操作 |
面向 | 數據分析 | 事務處理 |
驅動 | 分析驅動 | 事務驅動 |
數據量 | 一次處理的數據量大 | 一次處理的數據量小 |
數據 | 歷史數據 | 當前數據 |
彙總 | 綜合提煉性數據 | 細節性數據 |
視圖 | 導出數據 | 原始數據 |
數據倉庫與OLAP的關係
- 數據倉庫是一個包含企業歷史數據的大規模數據庫,這些歷史數據主要用於對企業的經營決策提供分析和支持。
- OLAP服務工具利用多維數據集和數據聚集技術對數據倉庫中的數據進行處理和彙總,用聯機分析和可視化工具對這些數據進行評價,將複雜的分析查找結果快速地返回用戶。
- 兩者關係如下圖所示
多維數據模型
如何定義
多維數據模型是將數據看作數據立方體形式,滿足用戶從多角度多層次進行數據查詢和分析的需要而建立起來的基於事實和維的數據庫模型。
相關概念
- 粒度(Granularity)
- 指多維數據集中數據的詳細程度和級別。
- 數據越詳細,粒度越小,級別就越低;數據綜合度越高,粒度越大,級別就越高。
- 維和維表
- 維(Dimension)是人們觀察數據的特定角度,是考慮問題的一類屬性。此類屬性的集合構成一個維度(或維),如時間維,地理維等。
- 維表是存放維數據的表。維表中的數據具有維層次結構,包含維屬性和維成員。
- 維層次、維屬性和維成員
- 人們從一個維的角度觀察數據,還可以根據細節程度的不同形成多個描述層次,這個描述層次稱爲維層次。
- 一個維是通過一組屬性來描述的。
- 維的每一個取值稱爲該維的一個維成員。
- 度量或事實
- 度量(Measure)是多維數據集中的信息單元,即多維空間中的一個單元,用以存放數據,也稱爲事實(Fact)。
- 度量通常是數值型數據並具有可加性。
- 度量所在的表稱爲事實表,事實表中存放的事實數據通常包含大量的數據行。
- 度量是所分析的多維數據集的核心,它是最終用戶瀏覽多維數據集時重點查看的數值型數據。
- 多維數據集
- 多維數據集可以用一個多維數組來表示,它是維和度量列表的組合表示。
- 一個多維數組可以表示爲:
(維1,維2,,維n,度量列表)
基本操作
- 切片
- 定義一:在多維數據集的某一維上選定一個維成員的操作稱爲切片(Slice)。
- 定義二: 選定多維數據集的一個兩維子集的方法稱爲切片。
- 切塊
- 定義一:在多維數據集(維1,維2,,維n,度量列表)中通過對兩個或多個維執行選擇得到子集的操作稱爲切塊(Dice)。
- 定義二:選定多維數據集的一個三維子集的方法稱爲切塊。
- 旋轉
旋轉(又稱轉軸,Pivot)是一種視圖操作,即改變一個報告或頁面顯示的維方向,可以得到不同視角的數據,即轉動數據的視角以提供數據的替代表示。 - 上卷
上卷操作通過維的概念分層向上攀升或者通過維歸約在數據立方體上進行聚集。 - 下鑽
下鑽是上卷的逆操作,它由不太詳細的數據到更詳細的數據,使用戶在多層數據中能通過導航信息而獲得更多的細節數據。
下鑽可以沿維的概念分層向下或引入新的維或維的層次來實現。
實現途徑
- 多維數據模型的物理實現有多種途徑,主要有采用多維數據庫(Multi-Dimension DataBase,MDDB)、關係數據庫以及兩種相結合的方法。
- 針對不同的數據組織方式,對應的OLAP系統分別稱爲ROLAP(Relational OLAP,基於關係型數據庫的OLAP),MOLAP(Multi-dimensional OLAP,基於多維數據庫的OLAP)和HOLAP(Hybrid OLAP,基於關係型數據庫與多維數據庫的混合OLAP)。
數據倉庫的維度建模
建模流程
- 數據倉庫的建模首先要將現實的決策分析環境抽象成一個概念數據模型。
- 然後將概念模型邏輯化,建立邏輯數據模型。
- 最後,將邏輯數據模型向數據倉庫的物理模型轉化。
建模方法
構建數據倉庫概念模型主要有E-R(實體-關係)建模和多維建模兩種方法。
- E-R建模:E-R建模方法產生E-R圖,也稱爲實體建模法。其基本策略是將問題領域的對象分成由一個個實體,以及實體與實體之間的關係組成。它是數據庫設計的基本方法。
- 多維建模:多維建模方法產生E-R圖,也稱爲維度建模法。
多維數據模型
常用的基於關係數據庫的多維數據模型有星形模型、雪花模型和事實星座模型。
星形模型
- 星形模型(Star Schema)由一個事實表和一組維表組成,每個維表都有一個維主鍵,所有,所有這些維組合成事實表的主鍵,換言之,事實表主鍵的每個元素都是維表的外鍵。
- 星形模型的特點:
- 維度表只與事實表關聯,維度表彼此之間沒有任何聯繫
- 每個維度表中的主碼都只能是單列的,同時該主碼被放置在事實數據表中,作爲事實數據表與維表連接的外碼
- 星形模式是以事實表爲核心,其他的維度表圍繞這個核心表呈星形分佈。
雪花模型
- 雪花模型(Snowflake Schema)是對星形模型的擴展,每一個維表都可以向外連接多個詳細類別表。
- 星形模型雖然是一個關係模型,但是它不是一個規範化的模型,在星形模型中,維表被故意地非規範化了,雪花模型對星形模型的維表進一步標準化,對星形模型中的維表進行了規範化處理。
- 雪花模型的特點:
- 某個維表不與事實表直接關聯,而是與另一個維表關聯
- 可以進一步細化查看數據的粒度
- 維表和與其相關聯的其他維表是靠外碼關聯的
- 以事實表爲核心
比較項目 | 星形模型 | 雪花模型 |
---|---|---|
行數 | 多 | 少 |
可讀性 | 易 | 難 |
表數量 | 少 | 多 |
搜索維的時間 | 快 | 慢 |
事實星座模型
在一個多主題的複雜數據倉庫中可能存放多個事實表,此時就會出現多個事實表共享某一個或多個維表的情況,這既是事實星座模型(Fact Constellations Schema)。