OLAP(on-Line Analysis Processing)是使分析人員、管理員或執行人員能夠從多角度對資訊進行快速、一致、互動地存取,從而獲得對資料的更深入瞭解的一類軟體技術。
OLAP的目標是滿足決策支援或者滿足在多維環境下特定的查詢和報表需求,它的技術核心是"維"這個概念。
“維”(dimension)是人們觀察客觀世界的角度,是一種高層次的類型劃分。“維”一般包含著層次關係,這種層次關係有時會相當複雜。通過把一個實體的多項重要的屬性定義為多個維(dimension),使使用者能對不同維上的資料進行比較。因此OLAP也可以說是多維資料分析工具的集合。
OLAP的基本多維分析操作有切入(roll up和drill down)、切片(slice)和切塊(dice)、以及旋轉(pivot)、drill across、drill through等。
* 切入是改變維的層次,變換分析的粒度。它包括向上切入(roll up)和向下切入(drill down)。roll up是在某一維上將低層次的細節資料概括到高層次的摘要資料,或者減少維數;而drill down則相反,它從摘要資料深入到細節資料進行觀察或增加新維。
* 切片和切塊是在一部分維上選定值後,關心度量資料在剩餘維上的分布。如果剩餘的維只有兩個,則是切片;如果有三個,則是切塊。
* 旋轉是變換維的方向,即在表格中重新安排維的放置(例如行列互換)。
OLAP有多種實現方法,根據儲存資料的方式不同可以分為ROLAP、MOLAP、HOLAP。
ROLAP表示基於關聯式資料庫的OLAP實現(Relational OLAP)。以關聯式資料庫為核心,以關係型結構進行多維資料的表示和儲存。ROLAP將多維資料庫的多維度結構劃分為兩類表:一類是事實表,用來儲存資料和維關鍵字;另一類是維表,即對每個維至少使用一個表來存放維的層次、成員類別等維的描述資訊。維表和事實表通過主關鍵字和外關鍵字聯絡在一起,形成了"星型模式"。對於層次複雜的維,為避免冗餘資料佔用過大的儲存空間,可以使用多個表來描述,這種星型模式的擴充稱為"雪花模式"。特點是將細節資料保留在關係型資料庫的事實表中,彙總後的資料也儲存在關係型的資料庫中。這種方式查詢效率最低,不推薦使用。
MOLAP表示基於多維資料群組織的OLAP實現(Multidimensional OLAP)。以多維資料群組織方式為核心,也就是說,MOLAP使用多維陣列儲存資料。多維資料在儲存中將形成"立方塊(Cube)"的結構,在MOLAP 中對"立方塊"的"旋轉"、"切塊"、"切片"是產生多維資料報表的主要技術。特點是將細節資料和彙總後的資料均儲存在cube中,所以以空間換效率,查詢時效率高,但產生cube時需要大量的時間和空間。
HOLAP表示基於混合資料群組織的OLAP實現(Hybrid OLAP)。如低層是關係型的,高層是多維矩陣型的。這種方式具有更好的靈活性。特點是將細節資料保留在關係型資料庫的事實表中,但是彙總後的資料儲存在cube中,彙總時需要比ROLAP更多的時間,查詢效率比ROLAP高,但低於MOLAP。