標籤:des style http io ar 使用 sp strong on
前面的一篇文章——資料倉儲的多維資料模型中已經簡單介紹過多維模型的定義和結構,以及事實表(Fact Table)和維表(Dimension Table)的概念。多維資料模型作為一種新的邏輯模型賦予了資料新的組織和儲存形式,而真正體現其在分析上的優勢還需要基於模型的有效操作和處理,也就是OLAP(On-line Analytical Processing,線上分析處理)。
資料立方體
關於資料立方體(Data Cube),這裡必須注意的是資料立方體只是多維模型的一個形象的說法。立方體其本身只有三維,但多維模型不僅限於3D 模型,可以組合更多的維度,但一方面是出於更方便地解釋和描述,同時也是給思維成像和想象的空間;另一方面是為了與傳統關係型資料庫的二維表區別開來,於是就有了資料立方體的叫法。所以本文中也是引用立方體,也就是把多維模型以三維的方式為代表進行展現和描述,其實上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將不複存在,也就沒有優勢可言。
資料展現方式
基於多維模型的資料群組織讓資料的展示更加直觀,它就像是我們平常看待各種事物的方式,可以從多個角度多個層面去發現事物的不同特性,而OLAP正是將這種尋常的思維模型應用到了資料分析上。
查詢效率
多維模型的建立是基於對OLAP操作的最佳化基礎上的,比如基於各個維的索引、對於一些常用查詢所建的視圖等,這些最佳化使得對百萬千萬甚至上億數量級的運算變得得心應手。
分析的靈活性
我們知道多維資料模型可以從不同的角度和層面來觀察資料,同時可以用上面介紹的各類OLAP操作對資料進行彙總、細分和選取,這樣提高了分析的靈活性,可以從不同角度不同層面對資料進行細分和匯總,滿足不同分析的需求。
是不是覺得其實OLAP並沒有想象中的那麼複雜,一旦多維資料模型建成後,在上面做OLAP其實是一件很cool的事情。
出處:http://webdataanalysis.net/web-data-warehouse/data-cube-and-olap/
資料立方體----維度與OLAP