武俊琢
[摘要]詳細闡述不同的OLAP多維數據結構和多維數據分析的動作,針對OLAP的多維數據分析與數據倉庫的多維數據組織形成相互結合、相互補充的關系進行較為深入的探討。
[關鍵詞]數據倉庫聯機分析處理多維數據分析
中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)1110077-01
一、引言
聯機分析處理(Online Analytical Processing,OLAP)的概念最早是由關系數據庫之父E.F.Codd于1993年提出的,OLAP是針對特定問題的聯機數據訪問和分析。通過對信息(維數據)的多種可能的觀察形式進行快速、穩定一致和交互性的存取,允許管理決策人員對數據進行深入地觀察。OLAP的目標是滿足決策支持或多維環境特定的查詢和報表需求,它的技術核心是“維”這個概念,因此OLAP也可以說是多維數據分析工具的集合。
二、OLAP的多維數據結構
數據在多維空間中的分布總是稀疏的、不均勻的。在事件發生的位置,數據聚合在一起,其密度很大。因此,OLAP系統的開發者要設法解決多維數據空間的數據稀疏和數據聚合問題。事實上,有許多方法可以構造多維數據。
(一)超立方結構。超立方結構指用三維或更多的維數來描述一個對象,每個維彼此垂直。數據的測量值發生在維的交叉點上,數據空間的各個部分都有相同的維屬性。
這種結構可應用在多維數據庫和面向關系數據庫的OLAP系統中,其主要特點是簡化終端用戶的操作。超立方結構有一種變形,即收縮超立方結構。這種結構的數據密度更大,數據的維數更少,并可加入額外的分析維。
(二)多立方結構。在多立方結構中,將大的數據結構分成多個多維結構。這些多維結構是大數據維數的子集,面向某一特定應用對維進行分割,即將超立方結構變為子立方結構。它具有很強的靈活性,提高了數據的分析效率。
一般來說,多立方結構靈活性較大,但超立方結構更易于理解。超立方結構可以提供高水平的報告和多維視圖。多立方結構具有良好的視圖翻轉性和靈活性。多立方結構是存儲稀疏矩陣的一個更有效方法,并能減少計算量。因此,復雜的系統及預先建立的通用應用傾向于使用多立方結構,以使數據結構能更好地得到調整,滿足常用的應用需求。
許多產品結合了上述兩種結構,它們的數據物理結構是多立方結構,但卻利用超立方結構來進行計算,結合了超立方結構的簡化性和多立方結構的旋轉存儲特性。
三、OLAP的多維數據分析
多維數據分析是指對以多維形式組織起來的數據采取切片、切塊、旋轉和鉆取等各種分析動作,以求剖析數據,使最終用戶能從多個角度、多側面地觀察數據倉庫中的數據,從而深入地了解包含在數據中的信息、內涵。多維分析方式迎合了人們的思維模式,因:
(一)切片。定義1:在多維數組的某一維上選定一維成員的動作成為切片,即在多維數組(維1、維2、....維n,變量)中選一維:維i,并取其一維成員(設為“維成員vi”),所得的多維數組的子集(維1,...維成員vi,...,維n,變量)稱為在維i上的一個切片。
按照定義1,一次切片一定是原來的維數減1。所以,所得的切片并不一定是二維的“平面”,其維數取決于原來的多維數據的維數,這樣的切片定義不通俗易懂。下面給出另一個比較直觀的定義。
定義2:選定多維數組的一個二維子集的動作叫做切片,既選定多維數組(維1、維2、....維n,變量)中的兩個維:維i和維j,在這兩個維上取某一區間或者任意維成員,而將其余的維都取定一個維成員,則得到的就是多維數組在維i和維j上的一個二維子集,稱這個二維子集為多維數組在維i和維j上的一個切片,表示為(維i和維j,變量)。
按照定義2,不管原來的維數有多少,數據切片的結果一定是一個二維的“平面”。從另一個角度來講,切片就是在某個或某些維上選定一個維成員,而在某兩個維上取一定區間的維成員或全部維成員。從定義2可知:
1.一個多維數組的切片最終是由該數組中除切片所在平面的兩個維之外的其它維的成員值確定的。
2.維是觀察數據的角度,那么切片的作用或結果就是舍棄一些觀察角度,使人們能在兩個維上來集中觀察數據,因為人的空間想象力有限,所以,對于維數較多的多維數據空間,進行數據切片是十分有意義的。比照定義1,我們可以將切片的這兩個定義聯系起來,對于一個n維數組,按定義1進行的n-2切片的結果,就必定對應于按定義2進行的某一次切片的結果。
(二)切塊。定義1:在多維數組的某一維上選定某一區間的維成員的動作稱為切塊,即限制多維數組在某一維的取值區間。顯然,當這一區間只取一個維成員時,即得到一個切片。
定義2:選定多維數組的一個三維子集的動作稱為切塊,即選定多維數組(維1、維2、....維n,變量)中的三個維:維i、維j、維r,在這三個維上取某一區間或任意的維成員,而將其余的維都取定一個維成員,則得到的就是多維數組在維i、維j、維r上的三維子集,我們稱這個三維子集為多維數組在維i、維j、維r上的一個切塊,表示為(維i、維j、維r,變量)。切塊與切片的作用與目的是相似的。
(三)旋轉。旋轉既是改變一個報告或者頁面的維方向。例如:旋轉可能包含了交換行與列;或是把某一個行維移到列維,或是把頁面顯示中的一個維和頁面外的維進行交換(令其成為新的行或者列的一個)。
(四)鉆取。
鉆取處理是使用戶在數據倉庫的多層數據中,能夠通過導航信息而獲得更多的細節性數據,鉆取一般是指向下鉆取。大多數的OLAP工具可以讓用戶鉆取至一個數據集中有更好細節描述的數據層,而更完整的工具可讓用戶隨處鉆取,即除一般往下鉆取外,隨處鉆取還包括向上鉆取和交叉鉆取。
(五)多視圖模式。人們發現,獲取相同的信息,圖形顯示所帶來的直觀性有時是簡單的數據表所無法提供的。一個OLAP系統,應當采取多種不同的格式顯示數據,使用戶能夠獲得最佳的觀察數據的視角。
四、結語
隨著數據倉庫的發展,OLAP也得到了迅猛的發展。數據倉庫側重于存儲和管理面向決策主題的數據,而OLAP則側重于數據倉庫中的數據分析,并將其轉換成輔助決策信息。OLAP的一個重要特點是多維數據分析,這與數據倉庫的多維數據組織正好形成相互結合、相互補充的關系。將有助于我們解決數據處理中的復雜問題。
參考文獻:
[1]彭木根,數據倉庫技術與實現,電子工業出版社,2002.9.
[2]張維明,數據倉庫原理與應用,電子工業出版社,2000.2.
[3]薩師煊、王珊,數據庫系統概論,高等教育出版社,2005.