聯機分析處理OLAP(On-Line Analytical
Processing)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
Wisdom Guo
什麼是OLAP?
聯機分析處理OLAP(On-Line Analytical Processing)是數據倉庫系統的主要應用,支持複雜的分析操作,側重決策支持,並且提供直觀易懂的查詢結果。典型的應用就是複雜的動態的報表系統。OLAP的特點一般有: 1.實時性要求不是很高,很多應用的頂多是每天更新一下數據; 2.數據量大,因爲OLAP支持的是動態查詢,所以用戶也許要通過將很多數據的統計後才能得到想要知道的信息,例如時間序列分析等等,所以處理的數據量很大; 3.因爲重點在於決策支持,所以查詢一般是動態的,也就是說允許用戶隨時提出查詢的要求。所以在OLAP中通過一個重要概念“維”來搭建一個動態查詢的平臺(或技術),供用戶自己去決定需要知道什麼信息。
OLTP和OLAP的區別 及OLAP簡介
聯機分析處理 (OLAP) 的概念最早是由關係數據庫之父E.F.Codd於1993年提出的,他同時提出了關於OLAP的12條準則。OLAP的提出引起了很大的反響,OLAP作爲一類產品同聯機事務處理 (OLTP) 明顯區分開來。
當今的數據處理大致可以分成兩大類:聯機事務處理OLTP(on-line transaction processing)、聯機分析處理OLAP(On-Line Analytical Processing)。OLTP是傳統的關係型數據庫的主要應用,主要是基本的、日常的事務處理,例如銀行交易。OLAP是數據倉庫系統的主要應用,支持複雜的分析操作,側重決策支持,並且提供直觀易懂的查詢結果。下表列出了OLTP與OLAP之間的比較。
OLTPOLAP用戶操作人員,低層管理人員決策人員,高級管理人員功能日常操作處理分析決策DB 設計面向應用面向主題數據當前的, 最新的細節的, 二維的分立的歷史的, 聚集的, 多維的集成的, 統一的存取讀/寫數十條記錄讀上百萬條記錄工作單位簡單的事務複雜的查詢用戶數上千個上百個DB 大小100MB-GB100GB-TB
OLAP是使分析人員、管理人員或執行人員能夠從多角度對信息進行快速、一致、交互地存取,從而獲得對數據的更深入瞭解的一類軟件技術。OLAP的目標是滿足決策支持或者滿足在多維環境下特定的查詢和報表需求,它的技術核心是"維"這個概念。
“維”是人們觀察客觀世界的角度,是一種高層次的類型劃分。“維”一般包含着層次關係,這種層次關係有時會相當複雜。通過把一個實體的多項重要的屬性定義爲多個維(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中對"立方塊"的"旋轉"、"切塊"、"切片"是產生多維數據報表的主要技術。
HOLAP表示基於混合數據組織的OLAP實現(Hybrid OLAP)。如低層是關係型的,高層是多維矩陣型的。這種方式具有更好的靈活性。
還有其他的一些實現OLAP的方法,如提供一個專用的SQL Server,對某些存儲模式(如星型、雪片型)提供對SQL查詢的特殊支持。
OLAP工具是針對特定問題的聯機數據訪問與分析。它通過多維的方式對數據進行分析、查詢和報表。維是人們觀察數據的特定角度。例如,一個企業在考慮產品的銷售情況時,通常從時間、地區和產品的不同角度來深入觀察產品的銷售情況。這裏的時間、地區和產品就是維。而這些維的不同組合和所考察的度量指標構成的多維數組則是OLAP分析的基礎,可形式化表示爲(維1,維2,……,維n,度量指標),如(地區、時間、產品、銷售額)。多維分析是指對以多維形式組織起來的數據採取切片(Slice)、切塊(Dice)、鑽取(Drill-down和Roll-up)、旋轉(Pivot)等各種分析動作,以求剖析數據,使用戶能從多個角度、多側面地觀察數據庫中的數據,從而深入理解包含在數據中的信息。
根據綜合性數據的組織方式的不同,目前常見的OLAP主要有基於多維數據庫的MOLAP及基於關係數據庫的ROLAP兩種。MOLAP是以多維的方式組織和存儲數據,ROLAP則利用現有的關係數據庫技術來模擬多維數據。在數據倉庫應用中,OLAP應用一般是數據倉庫應用的前端工具,同時OLAP工具還可以同數據挖掘工具、統計分析工具配合使用,增強決策分析功能。
Note:
數據倉庫中的數據進行組織是爲了支持分析,而不象在聯機事務處理系統 (OLTP) 中那樣是爲處理實時事務。
一些概念
什麼是OLTP?
聯機事務處理系統(OLTP),也稱爲面向交易的處理系統,其基本特徵是顧客的原始數據可以立即傳送到計算中心進行處理,並在很短的時間內給出處理結果。也稱爲實時系統(Real time System)。衡量聯機事務處理系統的一個重要性能指標是系統性能,具體體現爲實時響應時間。我們通常講的業務系統都是基於OLTP的,主要的關係數據庫代表爲Oracle,Sybase,DB2,SQLServer,MySQL等等。
OLTP系統的主要特點
1、事務處理
2、面向應用
3、反映當前情況
什麼是數據倉庫?
數據倉庫就是面向主題的、集成的、穩定的、不同時間的數據集合,用以支持經營管理中的決策制定過程。目的是解決在信息技術(IT) 發展中存在的擁有大量數據、然而有用信息貧乏(Data rich-Information poor)的問題。數據倉庫就其本質仍然是基於關係數據庫的,其與OLTP系統最大的不同是系統的目的的不同。主要的關係數據庫代表爲Oracle,Sybase,DB2,SQLServer,SybaseIQ,Terradat,MySQL等等。
數據倉庫的特點
1、面向主題
2、集成性—企業數據框架
3、歷史性、穩定性
什麼是OLAP?
OLAP是使分析人員、管理人員能夠從多種角度對從原始數據中轉化出來的、能夠真正爲用戶所理解的、並真實反映數據維特性的信息,進行快速、一致、交互地訪問,從而獲得對數據的更深入瞭解的一類軟件技術。OLAP採用了新的數據處理引擎大大加強了對海量數據的聚合和訪問要求,同時滿足了不同層次數據的訪問。主要的OLAP代表爲SybaseIQ,MSOLAP,ESSbase等。
核心——維也稱多維視圖,數據立方(Data Cube)
目標——多維分析
OLAP的特點
1、靈活、動態
2、多角度、多層次的視角
3、快速
OLTP系統和數據倉庫系統的區別?
雖然OLTP系統和數據倉庫系統都存儲於關係數據庫中,但兩者的主要區別是使用目的的不同,數據倉庫系統的建設只是爲了隔離業務系統、整合各個不同的數據源、形成一個統一的數據中心、以提供決策支持。究其實質,數據庫對於兩者的處理並無太大的區別,只是對數據倉庫部分增加了一些優化措施或者沒有。如Oracle新增的各種分區支持、位圖索引、平行操作、物化視圖等等;Sybase公司爲數據倉庫的SybaseIQ產品,提供了類似位圖索引的方式極大的優化了查詢速度;SQLServer2000對於數據倉庫和OLTP系統的處理區別不大。OLTP系統和數據倉庫系統的差別很大程度上取決爲了不同需要而進行的系統設計。總的說來兩者實質物理結構是一致的,但目的是不同的。
數據倉庫和OLAP的區別?
雖然數據倉庫和聯機分析處理 (OLAP) 這兩個術語有時可互換使用,但它們卻適用於通常稱爲決策支持系統或業務智能系統的不同組件。這些類型的系統的組件包括一些數據庫和應用程序,用於爲分析人員提供支持組織機構決策制定所需的工具。
數據倉庫本質上仍然是一個關係數據庫,包含那些通常表示某個組織機構業務歷史的數據。通過分析這些歷史數據,可以支持對分散的組織單元進行從策略計劃到性能評估的多級業務決策。對數據倉庫中的數據進行組織是爲了支持分析,而不象在聯機事務處理系統 (OLTP) 中那樣是爲處理實時事務。
OLAP 技術使數據倉庫能夠快速響應重複而複雜的分析查詢,從而使數據倉庫能有效地用於聯機分析。OLAP 的多維數據模型和數據聚合技術可以組織並彙總大量的數據,以便能夠利用聯機分析和圖形工具迅速對數據進行評估。當分析人員搜尋答案或試探可能性時,在得到對歷史數據查詢的回答後,經常需要進行進一步查詢。OLAP 系統可以快速靈活地爲分析人員提供實時支持。
初步MDX
MDX(Multi Dimensional Expression)多維表達式是支持SQL SERVER 2005 Analysis Services(SSAS)的腳本語言。要學習MDX,首先應該瞭解SSAS中多維數據集的一些基本概念,下面我就主要給大家介紹一下MDX的一些基礎概念。
維度(dimension)
我們平時看到的一個平面有2個座標軸,一個是行,一個是列,維度就類似於這個座標軸。而多維就是指有多個維度,也就是說有多個座標軸。常用的有維度有:時間維度、部門維度等。
層次結構(hierarchy)
層次結構主要用來表示一個維度中的層次或結構情況,時間維度的層次結構可以是"年、月、日"或"年、半年、季、月"等。層次結構不是多維數據集中通用的概念,而是Microsoft在SQL SERVER 2005才推出的。在傳統多維數據集中,一個維度只有一個默認的層次結構,所以就沒有把這個概念專門提出來。而在SQL SERVER 2005中,因爲要實現一個維度支持多種層次結構的功能,所以才引入了這個概念。
級別(level)
層次結構中的某一層,例如時間維度的層次結構是"年、月、日",那麼"年"、"月"、"日"都是該層次結構下的一個級別。
成員(member)
一個級別下具體的成員數據,例如"月"級別下的成員是"1月"、"2月"、"3月"……
維度、層次結構、級別、成員的圖示:
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />