數據立方體與OLAP

數據立方體

關於數據立方體(Data Cube),其實只是多維模型的一個形象的說法。立方體其本身只有三維,但多維模型不僅限於三維模型,可以組合更多的維度,但一方面是出於更方便地解釋和描述,同時也是給思維成像和想象的空間;另一方面是爲了與傳統關係型數據庫的二維表區別開來,於是就有了數據立方體的叫法。所以本文中也是引用立方體,也就是把多維模型以三維的方式爲代表進行展現和描述,其實上Google圖片搜索“OLAP”會有一大堆的數據立方體圖片,這裏我自己畫了一個:


OLAP

OLAP(On-line Analytical Processing,聯機分析處理)是在基於數據倉庫多維模型的基礎上實現的面向分析的各類操作的集合。可以比較下其與傳統的OLTP(On-line Transaction Processing,聯機事務處理)的區別來看一下它的特點:

OLAP與OLTP

數據處理類型 OLTP OLAP
面向對象 業務開發人員 分析決策人員
功能實現 日常事務處理 面向分析決策
數據模型 關係模型 多維模型
數據量 幾條或幾十條記錄 百萬千萬條記錄
操作類型 查詢、插入、更新、刪除 查詢爲主

OLAP的類型

首先要聲明的是這裏介紹的有關多維數據模型和OLAP的內容基本都是基於ROLAP,因爲其他幾種類型極少接觸,而且相關的資料也不多。
MOLAP(Multidimensional)
即基於多維數組的存儲模型,也是最原始的OLAP,但需要對數據進行預處理才能形成多維結構。
ROLAP(Relational)
比較常見的OLAP類型,這裏介紹和討論的也基本都是ROLAP類型,可以從多維數據模型的那篇文章的圖中看到,其實ROLAP是完全基於關係模型進行存放的,只是它根據分析的需要對模型的結構和組織形式進行的優化,更利於OLAP。
HOLAP(Hybrid)
介於MOLAP和ROLAP的類型,我的理解是細節的數據以ROLAP的形式存放,更加方便靈活,而高度聚合的數據以MOLAP的形式展現,更適合於高效的分析處理。

另外還有WOLAP(Web-based OLAP)、DOLAP(Desktop OLAP)、RTOLAP(Real-Time OLAP),具體可以參開維基百科上的解釋——OLAP

OLAP的基本操作

我們已經知道OLAP的操作是以查詢——也就是數據庫的SELECT操作爲主,但是查詢可以很複雜,比如基於關係數據庫的查詢可以多表關聯,可以使用COUNT、SUM、AVG等聚合函數。OLAP正是基於多維模型定義了一些常見的面向分析的操作類型,使這些操作顯得更加直觀。
OLAP的多維分析操作包括:鑽取(Drill-down)、上卷(Roll-up)、切片(Slice)、切塊(Dice)以及旋轉(Pivot),下面還是以上面的數據立方體爲例來逐一解釋下:


鑽取(Drill-down):在維的不同層次間的變化,從上層降到下一層,或者說是將彙總數據拆分到更細節的數據,比如通過對2010年第二季度的總銷售數據進行鑽取來查看2010年第二季度4、5、6每個月的消費數據,如上圖;當然也可以鑽取浙江省來查看杭州市、寧波市、溫州市……這些城市的銷售數據。

上卷(Roll-up):鑽取的逆操作,即從細粒度數據向高層的聚合,如將江蘇省、上海市和浙江省的銷售數據進行彙總來查看江浙滬地區的銷售數據,如上圖。
切片(Slice):選擇維中特定的值進行分析,比如只選擇電子產品的銷售數據,或者2010年第二季度的數據。
切塊(Dice):選擇維中特定區間的數據或者某批特定值進行分析,比如選擇2010年第一季度到2010年第二季度的銷售數據,或者是電子產品和日用品的銷售數據。每次沿其中一維進行分割稱爲分片,沿多維進行的分片稱爲分塊。
旋轉(Pivot):即維的位置的互換,就像是二維表的行列轉換,如圖中通過旋轉實現產品維和地域維的互換。

OLAP的優勢

首先必須說的是,OLAP的優勢是基於數據倉庫面向主題、集成的、保留歷史及不可變更的數據存儲,以及多維模型多視角多層次的數據組織形式,如果脫離的這兩點,OLAP將不復存在,也就沒有優勢可言。
1)數據展現方式
基於多維模型的數據組織讓數據的展示更加直觀,它就像是我們平常看待各種事物的方式,可以從多個角度、多個層面去發現事物的不同特性,而OLAP正是將這種尋常的思維模型應用到了數據分析上。
2)查詢效率
多維模型的建立是基於對OLAP操作的優化基礎上的,比如基於各個維的索引、對於一些常用查詢所建的視圖等,這些優化使得對百萬、千萬、甚至上億數量級的運算變得得心應手。
3)分析的靈活性
我們知道多維數據模型可以從不同的角度和層面來觀察數據,同時可以用上面介紹的各類OLAP操作對數據進行聚合、細分和選取,這樣提高了分析的靈活性,可以從不同角度、不同層面對數據進行細分和彙總,滿足不同分析的需求。

是不是覺得其實OLAP並沒有想象中的那麼複雜,一旦多維數據模型建成後,在上面做OLAP其實是一件很cool的事情。

轉載自“網站數據分析->數據立方體和OLAP

發佈了66 篇原創文章 · 獲贊 6 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章