大資料-什麼是OLAP?

OLAP介紹

一、發展背景

60年代,關係資料庫之父E。F。Codd提出了關係模型,促進了聯機事務處理(OLTP)的發展(資料以表格的形式而非檔案方式儲存)。1993年,E。F。Codd提出了OLAP概念,認為OLTP已不能滿足終端使用者對資料庫查詢分析的需要,SQL對大型資料庫進行的簡單查詢也不能滿足終端使用者分析的要求。使用者的決策分析需要對關係資料庫進行大量計算才能得到結果,而查詢的結果並不能滿足決策者提出的需求。因此,E。F。Codd提出了多維資料庫和多維分析的概念,即OLAP。

為了解決大型企業雖然擁有大量業務資料但難以及時有效的提取經營管理者所需要的資訊這一問題,資料倉庫技術應運而生。如何有效的組織大量資料,維護資料的一致性,方便使用者訪問,這只是資料倉庫技術的一個方面。 資料倉庫技術的另一個方面是如何為經營管理人員提供有效的使用資訊,使他們能夠使用資料倉庫系統,對企業的經營管理作出正確的決策,從而為企業帶來經濟效益。要達到這個目的,就要藉助OLAP技術。

OLAP技術主要透過多維的方式來對資料進行分析、查詢和生成報表,它不同於傳統的OLTP處理應用。OLTP應用主要是用來完成使用者的事務處理,如民航訂票系統和銀行的儲蓄系統等,通常要進行大量的更新操作,同時對響應的時間要求比較高。而OLAP系統的應用主要是對使用者當前的及歷史資料進行分析,扶助領導決策,其典型的應擁有對銀行信用卡風險的分析與預測和公司市場營銷策略的制定等,主要是進行大量的查詢操作,對時間的要求不太嚴格。

在資料倉庫應用中,OLAP應用一般是資料倉庫應用的前端工具,同時OLAP工具還可以同資料探勘工具、統計分析工具配合使用,增強決策分析功能。

二、什麼是OLAP?

定義1 :OLAP(聯機分析處理)是針對特定問題的聯機資料訪問和分析。透過對資訊(維資料)的多種可能的觀察形式進行快速、穩定一致和互動性的存取,允許管理決策人員對資料進行深入觀察。

定義2 :OLAP(聯機分析處理) 是使分析人員、管理人員或執行人員能夠從多種角度對從原始資料中轉化出來的、能夠真正為使用者所理解的、並真實反映企業維特性的資訊進行快速、一致、互動地存取,從而獲得對資料的更深入瞭解的一類軟體技術。(OLAP委員會的定義)

OLAP的目標是滿足決策支援或多維環境特定的查詢和報表需求,它的技術核心是“維”這個概念,因此OLAP也可以說是多維資料分析工具的集合。

OLTP與OLAP的區別:

聯機事務處理OLTP(on-line transaction processing)

OLTP是傳統的關係型資料庫的主要應用,主要是基本的、日常的事務處理,例如銀行交易。

聯機分析處理OLAP(On-Line Analytical Processing)

OLAP是資料倉庫系統的主要應用,支援複雜的分析操作,側重決策支援,並且提供直觀易懂的查詢結果。OLAP採用多維報表和統計圖形,查詢提出以及資料輸入直觀靈活,使用者可以方便的逐層細化,切塊,切片,資料旋轉

下表列出了OLTP與OLAP之間的比較:

OLTP

OLAP

使用者

面向操作人員,支援日常操作

面向決策人員,支援管理需要

功能

日常操作處理

分析決策

DB 設計

面向應用,事務驅動

面向主題,分析驅動

資料

當前的,最新的細節的,二維的分立的

歷史的,聚集的,多維的,整合的,統一的

存取

可更新,讀/寫數十條記錄

不可更新,但週期性重新整理,讀上百萬條記錄

工作單位

簡單的事務

複雜的查詢

DB 大小

100MB-GB

100GB-TB

總的來說,OLTP就是面向我們的應用系統資料庫的,OLAP是面向資料倉庫的。

三、相關基本概念

1。維:是人們觀察資料的特定角度,是考慮問題時的一類屬性,屬性集合構成一個維(時間維、地理維等)。

2。維的層次:人們觀察資料的某個特定角度(即某個維)還可以存在細節程度不同的各個描述方面(時間維:日期、月份、季度、年)。

3。維的成員:維的一個取值。是資料項在某維中位置的描述。(“某年某月某日”是在時間維上位置的描述)

4。多維陣列:維和變數的組合表示。一個多維陣列可以表示為:(維1,維2,…,維n,變數)。(時間,地區,產品,銷售額)

5。資料單元(單元格):多維陣列的取值。(2000年1月,上海,膝上型電腦,$100000)

四、OLAP特性

(1)快速性:使用者對OLAP的快速反應能力有很高的要求。系統應能在5秒內對使用者的大部分分析要求做出反應。

(2)可分析性:OLAP系統應能處理與應用有關的任何邏輯分析和統計分析。

(3)多維性:多維性是OLAP的關鍵屬性。系統必須提供對資料的多維檢視和分析,包括對層次維和多重層次維的完全支援。

(4)資訊性:不論資料量有多大,也不管資料儲存在何處,OLAP系統應能及時獲得資訊,並且管理大容量資訊。

五、OLAP多維資料結構

1。超立方結構(Hypercube)

超立方結構指用三維或更多的維數來描述一個物件,每個維彼此垂直。資料的測量值發生在維的交叉點上,資料空間的各個部分都有相同的維屬性。(收縮超立方結構。這種結構的資料密度更大,資料的維數更少,並可加入額外的分析維)。

2。多立方結構(Multicube)

即將超立方結構變為子立方結構。面向某一特定應用對維進行分割, 它具有很強的靈活性,提高了資料(特別是稀疏資料)的分析效率。

六、OLAP多維資料分析

1。切片和切塊(Slice and Dice)

在多維資料結構中,按二維進行切片,按三維進行切塊,可得到所需要的資料。如在“城市、產品、時間”三維立方體中進行切塊和切片,可得到各城市、各產品的銷售情況。

2。鑽取(Drill)

鑽取包含向下鑽取(Drill-down)和向上鑽取(Drill-up)/上卷(Roll-up)操作, 鑽取的深度與維所劃分的層次相對應。

3。旋轉(Rotate)/轉軸(Pivot)

透過旋轉可以得到不同視角的資料。

七、OLAP分類

按照儲存方式:

ROLAP: relational olap,即關係olap。代表產品有Informix Metacube、Microsoft SQL Server OLAP Services。

MOLAP:multidimensional olap,即多維olap。代表產品有Hyperion(原Arbor Software) Essbase、Showcase Strategy等。

HOLAP(混合型olap hybrid olap)

按照處理地點:

Server OLAP:資料在伺服器端的多維分析。代表產品有Microsoft SQL Server OLAP Services。

Client OLAP:把部分資料下載到本地,為使用者提供本地的多維分析。代表產品有Brio Designer,Business Object。

以下是ROLAP、MOLAP與HOLAP三者之間優缺點對比:

優勢

缺點

ROLAP

沒有大小限制

現有的關係資料庫的技術可以沿用。

可以透過SQL實現詳細資料與概要資料的儲存

現有關係型資料庫已經對OLAP做了很多最佳化,包括並行儲存、並行查詢、並行資料管理、基於成本的查詢最佳化、點陣圖索引、SQL 的OLAP擴充套件(cube,rollup)等大大提高ROALP的速度

一般比MDD響應速度慢

不支援有關預計算的讀寫操作

SQL無法完成部分計算

無法完成多行的計算

無法完成維之間的計算

MOLAP

效能好、響應速度快

專為OLAP所設計

支援高效能的決策支援計算

複雜的跨維計算

多使用者的讀寫操作

行級的計算

增加系統複雜度,增加系統培訓與維護費用

受作業系統平臺中檔案大小的限制,難以達到TB 級(只能10~20G)

需要進行預計算,可能導致資料爆炸

無法支援維的動態變化

缺乏資料模型和資料訪問的標準

HOLAP

基於混合資料組織的OLAP實現,如低層是關係型的,高層是多維矩陣型的。這種方式具有更好的靈活。holap結構不應該是molap與rolap結構的簡單組合,而是這兩種結構技術優點的有機結合,能滿足使用者各種複雜的分析請求。

迄今為止,對holap還沒有一個正式的定義

八、OLAP評價準則

準則1 OLAP模型必須提供多維概念模型

準則2 透明性準則

準則3 存取能力準則

準則4 穩定的報表效能

準則5 客戶/伺服器體系結構

準則6 維的等同性準則

準則7 動態稀疏矩陣處理準則

準則8 多使用者支援能力準則

準則9 非受限的跨維操作

準則10 直觀的資料處理

準則11 靈活的報表生成

準則12 非受限的維與維的層次

九、、流行的OLAP工具介紹

OLAP產品:

Hyperion Essbase

Oracle Express

IBM DB2 OLAP Server

Sybase Power dimension

Informix Metacube

Microsoft Plato

Brio

Cognos

Business Object

MicroStrategy

OLAP產品涉及的業務操作:

由外部或內部資料來源批次裝入資料

由業務系統增量裝入資料

沿資料層次彙總資料

對基於業務模型的新資料進行計算

時間序列分析

高複雜的查詢

沿資料層次細化分析

隨機查詢

多個聯機會話(多使用者同時訪問)

1。 Hyperion Essbase

以伺服器為中心的分散式體系結構

有超過100個的應用程式

有300多個用Essbase作為平臺的開發商

具有幾百個計算公式,支援多種計算

使用者可以自己構件複雜的查詢。

快速的響應時間,支援多使用者同時讀寫

有30多個前端工具可供選擇

支援多種財務標準

能與ERP或其他資料來源整合

全球使用者超過1500家

2。 Oracle Express

Oracle DW支援GB~TB數量級

採用類似陣列的結構,避免了連線操作,提高分析效能

提供一組儲存過程語言來支援對資料的抽取

使用者可透過Web和電子表格使用

靈活的資料組織方式,資料可以存放在Express Server內,也可直接在RDB上使用

有內建的分析函式和4GL使用者自己定製查詢

全球超過3000家

3。 IBM DB2 OLAP Server

把Hyperion Essbase的OLAP引擎和DB2的關係資料庫整合在一起。

與Essbase API完全相容

資料用星型模型存放在關係資料庫DB2中

4。 Informix Metacube

採用metacube技術,透過OLE和ODBC對外開放,

採用中間表技術實現多維分析引擎,提高響應時間和分析能力

開放的體系結構可以方便地與其他資料庫及前臺工具進行整合

5。 Sybase Power dimension

資料垂直分割(按“列”儲存)

採用了突破性的資料存取方法————bit-wise索引技術

在資料壓縮和並行處理方面有多到之處

提供有效的預連線(Pro-Jion)技術

十、OLAP發展

應用領域:

市場和銷售分析(Marketing and Sales analysis)

電子商務分析(Clickstream analysis)

基於歷史資料的營銷(Database marketing)

預算(Budgeting)

財務報告與整合(Financial reporting and consolidation)

管理報告(Management reporting)

利益率分析(Profitability analysis)

質量分析(Quality analysis)

OLAP標準APB-1(AQT-Analytical Query Time作為統計指標)

從聯機分析處理到聯機分析挖掘(OLAM/OLAP挖掘)

將聯機分析處理與資料探勘以及在多維資料庫中發現知識整合在一起。

聯機分析挖掘提供在不同的資料子集和不同的抽象層上進行資料探勘的工具。

聯機分析挖掘為使用者選擇所期望的資料探勘功能動態修改挖掘任務提供了靈活性 。

超立方體計算與傳統挖掘演算法的結合

先進行立方體計算,後進行資料探勘

先對多維資料作資料探勘,然後再利用立方體計算演算法對挖掘結果分析

立方體計算與資料探勘同時進行

回溯特性

OLAP基於Web的應用

靜態方法 靜態HTML報表

動態方法 透過HTML模板及元資料動態生成報表

改進方法 使用Java或ActiveX

十一、 OLAP展望

面向物件的聯機分析處理

O3LAP(Object-Oriented OLAP)

物件關係的聯機分析處理

OROLAP (Object Relational OLAP)

分散式聯機分析處理

DOLAP (Distributed OLAP)

時態聯機分析處理

TOLAP (Temporal OLAP)

OLAP基礎

聯機實時分析(OnlineAnalytical Processing, OLAP (/ˈoʊlæp/))技術是快速響應多維分(Multidimensionalanalysis, MDA)的一種解決方案。

首先,解釋下什麼是多維分析:多維分析是一種資料分析過程,在此過程中,將資料分成兩類:維度(dimensions)和度量(metrics/measurements)。維度和度量的概念都出自於圖論(graph theory),維度指能夠描述某個空間中所有點的最少座標(coordinate)數,即空間基數;度量指的是無向圖中頂點(vertices)間的距離。在多維分析領域,維度一般包括欄位值為字元類或者欄位基數值較少且作為約束條件的離散數值型別;而度量一般包括基數值較大且可以參與運算的數值類欄位,一般也稱為指標。

OLAP技術可以看作是廣義概念上的商業智慧(Business Intelligence, BI)的一部分,而傳統的OLAP分析應用通常包含了關係型資料庫(relational database)、商業報告(business reporting)以及資料探勘(data mining)等方面。

下面介紹OLAP分析中兩個重要的基本概念:OLAP cube和維度模型(Dimensional modeling,DM),這兩個概念也是劃分OLAP型別的重要標識。

1。1 OLAP cube

OLAP cube在資料庫理論(database theory)中的定義為:RDBMS關係對映的一種抽象描述(An abstract representation of a projection ofan RDBMS relation)。數學描述如下:

大資料-什麼是OLAP?

OLAP cube可以簡單描述為“多維資料集”。cube,我們可以想象為資料指標根據多維度封裝成的一個立方體結構(以三維空間為例,如果維度數超過3,我們則稱為“Hypercube”),如圖1。1所示,圖中的Time、Products、Cities就是OLAP分析中提取的三個維度,而這個立方體封閉區域所代表的含義就是在這三種維度下,某項指標的度量值,根據上述對映關係可以描述為:

大資料-什麼是OLAP?

在OLAP分析中,我們通常也會對維度指標進行分層組織(Level),即一系列的parent-child關係(Hierarchy);父類維度可以看作是子類維度的聚合。例如:2016年7月是2016年第三季度這個父類維度的子類維度,同時2016年第三季度又可以看作是2016年這個父類維度的子類維度。

1。2 維度模型

維度模型的概念出自於資料倉庫領域,是資料倉庫建設中的一種資料建模方法。維度模型主要由事實表和維度表這兩個基本要素構成。

事實表是維度模型的基本表,用於存放大度量值,術語“事實”代表了一個度量值。舉一個例子:查詢某個客戶在某個機構下某個產品合約賬戶的某個幣種的某個時點餘額,在各維度值(客戶、產品合約、賬戶、機構、幣種、日期)的交點處就可以得到一個度量值。維度值的列表定義了事實表的粒度,同時又確定了度量值的取值範圍。

事實表的一行對應一個度量值,事實表的所有度量值必須具有相同的粒度。而事實可能是半加性質的,也可能是非加性質的,半加性事實表示度量值可以沿著某些維度由子類維度向父類維度進行聚合;非加性事實則完全不能相加,比如狀態事實,對於這種非加性事實,我們只能採用計數或者求平均值,或者打印出全部事實行的方法進行分析。

所有事實表有兩個或者兩個以上的外關鍵字(如圖1。2中FK符號標記的部分),外關鍵字用於連線到維度表的主關鍵字。例如,事實表中的“產品合約關鍵字”總是匹配產品合約這個維度表的一個特定“產品合約關鍵字”。如果事實表中的所有關鍵字都能分別與對應維度表中的主關鍵字正確匹配,就可以說這些表滿足引用完整性的要求。事實表要透過與之相連的維度表進行存取。

大資料-什麼是OLAP?

維度表是事實表不可分割的部分。如圖1。3所示,維度表包含有業務的文字描述。在一個設計合理的維度模型中,維度表會包含許多列或者屬性,我們稱之為維度屬性。對於維度表來說,包含50到100個維度屬性的情形並不少見。維度表傾向於將行數做得相當少(通常少於100萬行),而將列數做得特別大。每個維度用單一的主關鍵字(如圖1。2中PK符號標記的部分)進行定義,主關鍵字是確保同一與之相連的任何事實表之間存在引用完整性的基礎。

大資料-什麼是OLAP?

維度表是進入事實表的入口。豐富的維度屬性給出了豐富的分析切割能力。維度給使用者提供了使用資料倉庫的介面。最好的屬性是文字的和離散的。屬性應該是真正的文字而不應是一些編碼簡寫符號。應該透過用更為詳細的文字屬性取代編碼,力求最大限度地減少編碼在維度表中的使用。

最後簡單說明下維度表和事實表的融合。二者的融合也就是“維度模型”,“維度模型”一般採用“星型模式”或者“雪花模式”,如圖1。4所示為“星型模式”,而“雪花模式”可以看作是“星型模式”的拓展,表現為在維度表中,某個維度屬性可能還存在更細粒度的屬性描述,即維度表的層級關係。

大資料-什麼是OLAP?

1。3 基本分析操作

OLAP允許使用者從多種角度分析多維資料,主要包括以下五種基本操作:上卷(consolidation/roll-up)、下鑽(drill-down)、切片(slice)、切塊(dice)和旋轉(pivot)。

1。3。1 上卷(consolidation/Roll-up)

上卷表示沿著某一維度按照一定的規則(rule)對資料進行聚合(aggregation)操作,沿著某一維度,即按照層級關係從子類維度向父類維度作聚合。

1。3。2 下鑽(Drill-down)

下鑽和上卷正好相反,允許使用者從已聚合的資料集中提取出所關注的細節。下圖表示了從“Outdoor-Schutzausrüstung”這個父類維度中抽取出三個子類維度的下鑽過程。

大資料-什麼是OLAP?

1。3。3 切片(Slice)

切片表示透過選擇某個維度的單一值(value),從OLAP cube中抽取出一個分片的過程。下圖表示了從原始OLAP cube中抽取出time = 2004分片的過程。

大資料-什麼是OLAP?

1。3。4 切塊(Dice)

切塊表示透過選擇多個維度的某些值(或者區間),從OLAP cube中抽取出子cube的過程。下圖表示了從原始OLAP cube中抽取某個維度中多值對應的子cube的過程。

大資料-什麼是OLAP?

1。3。5 旋轉(pivot)

旋轉操作允許使用者透過旋轉(rotate)OLAP cube,重新選擇目標分析維度,通常表現為交換座標軸操作。在下圖中,原始的OLAP cube的X軸是產品名稱,Y軸是地區名稱,Z軸是年份;經過旋轉操作後cube表示了每個產品在不同年份、不同地區的統計情況。

大資料-什麼是OLAP?

1。4 OLAP 與OLTP的區別

大資料-什麼是OLAP?

1。5 OLAP技術路線分類

常見的OLAP系統可以分為以下三類:關係型聯機實時分析系統(Relational-OLAP,ROLAP),多維聯機實時分析系統(Multidimensional-OLAP,MOLAP),混合型聯機實時分析系統(Hybrid-OLAP,HOLAP)。

1。5。1 關係型聯機實時分析(ROLAP)

ROLAP的核心依賴於關係型資料庫,允許使用者使用維度模型進行資料分析,將維度值儲存在維度表中,將度量值儲存在事實表中,透過關係型資料庫訪問資料,使用SQL進行查詢分析。ROLAP的一般使用模式概括如下:根據使用者的需求,對不同維度進行分析後,將分析資料匯入到另一張資料庫表中。

ROLAP的優勢:

(1)處理高基數列具有更好的擴充套件性;

(2)擅長處理非聚合類的原始資料,生態圈內用於原始資料入庫的ETL工具眾多,同時比MOLAP入庫速率更高;

(3)由於資料儲存在關係型資料庫中,所以支援標準SQL介面,查詢便捷;

ROLAP的劣勢:

(1)根據OLAP survey(http://www。olapreport。com/survey。htm)在2001-2006年連續6年的調研顯示,工業界普遍認為ROLAP的效能要低於MOLAP。但也有人提出質疑,爭議包含兩方面:ROLAP的使用者數是MOLAP的7倍多,那麼抱怨產品效能差的比例自然更高;其他因素的影響,上述調研報告並沒有將ROLAP產品和MOLAP產品放在同一個維度模型上進行比較,所以該報告結論並不具有權威性;

(2)處理已聚合的資料,需要使用定製的ETL工具,開發量大且不具有通用性;如果採用原始資料入庫,將非常影響查詢效能,如果想要提升查詢效能,需要將已入庫的原始資料重新聚合後再匯入到新的表中進行查詢分析;

(3)ROLAP的效能很大程度上依賴於使用的關係型資料庫的查詢與快取效能;同時對於所有分析操作,都依賴於SQL語句,對於重計算類的分析模型,轉換後的SQL就會變得複雜,對分析者的SQL語句的調優要求較高,而在某些無法使用SQL的場景下,ROLAP類產品則變得無能為力。

1。5。2 多維聯機實時分析(MOLAP)

MOLAP是OLAP的經典使用模式,所以經常用MOLAP來指代OLAP。MOLAP和ROLAP具有一定的相似性,二者都可以使用維度模型進行資料分析,但是MOLAP並不將資料儲存在維度表或者事實表中,而是對原始資料進行預計算(比如聚合操作),將計算結果儲存在OLAP cube中。

MOLAP的優勢:

(1)由於MOLAP不採用關係型資料庫進行資料儲存,所以必須採用特殊的儲存手段,例如:壓縮儲存、索引(例如點陣圖索引)以及快取技術等,查詢速率更快;

MOLAP的劣勢:

(1)資料匯入較慢,需要使用定製的ETL入庫工具;

(2)由於沒有維度表和事實表,所以對於更新操作以及明細查詢,效率要比ROLAP低很多。

1。5。3 混合型聯機實時分析(HOLAP)

HOLAP充分利用了ROLAP與MOLAP的各自優勢,從縱向角度,既允許使用者將部分資料(比如聚合類資料)使用MOLAP進行儲存,從而獲得更快的查詢效能;又允許部分資料(比如原始資料)使用ROLAP進行儲存,使使用者能夠檢視細粒度資料。從橫向角度,使用MOLAP儲存最近較熱的資料,從而提升查詢效能;而使用ROLAP儲存歷史較冷的資料。

目前,商業類的OLAP產品更偏向於HOLAP,因為大廠既不想丟棄一直使用的關係型資料庫,又想在資料分析能力上獲得進一步提升,所以HOLAP類產品近幾年也是百花齊放。

什麼是OLAP

最近由於很多人問我什麼是OLAP,從而發現目前OLAP對大多數人來說還是個新名詞,這裡我來簡單講講OLAP(聯機分析)。

聯機分析(OLAP)是由關係資料庫之父E。F。Codd於1993年提出的一種資料動態分析模型,它允許以一種稱為多維資料集的多維結構訪問來自商業資料來源的經過聚合和組織整理的資料。以此為標準,OLAP作為單獨的一類產品同聯機事務處理(OLTP)得以明顯區分。

有點深奧是不是?其實並不複雜,OLAP最基本的概念其實只有三個:多維觀察、資料鑽取、CUBE運算。

從動態的多維角度分析資料

我們在平時工作中,會遇到各種問題,在分析問題的時候,同樣的現象,我們會從多個角度去分析考慮,並且有時候我們還會從幾個角度綜合起來進行分析。這就是OLAP分析最基本的概念:從多個觀察角度的靈活組合來觀察資料,從而發現數據內在規律。

OLAP將資料分為兩種特徵,一種為表現特徵,比如一個銷售分析模型中的銷售額、毛利等;還有一種為角度特徵,比如銷售分析中的時間週期、產品型別、銷售模式、銷售區域等。前者是被觀察的物件,OLAP術語稱之為“度量資料”,後者為觀察視角,OLAP術語稱之為“維資料”。

如果建立這樣一個模型,我們就可以根據業務需求,從產品型別角度去觀察各個銷售地區的銷售額資料(以產品型別和銷售地區為維、以銷售額為度量);或者我們還可以從銷售模式的角度去觀察各個銷售地區的銷售額資料(以銷售模式和銷售地區為維、以銷售額為度量)。

對資料進行鑽取,以獲得更為精確的資訊

在分析過程中,我們可能需要在現有資料基礎上,將資料進一步細化,以獲得更為精確的認識。這就是OLAP中資料鑽取的概念。

比如,在銷售分析中,當我們以產品型別和銷售地區為維、以銷售額為度量進行分析的時候,可能希望進一步觀察某類產品的不同銷售模式在各個銷售地區的表現,這時我們就可以在產品大類這個資料維下面,再加上一個銷售模式維,從而獲得相應的資訊。

建立資料CUBE

那麼,要滿足上述運算,需要什麼樣的前提呢?

我們可以想像,和報表不同,OLAP分析所需的原始資料量是非常龐大的。一個分析模型,往往會涉及數百萬條、數千萬條、甚至更多;而分析模型中包含多個維資料,這些維又可以由瀏覽者作任意的提取組合。這樣的結果就是大量的實時運算導致的時間延滯。我們可以設想,一個對於1000萬條記錄的分析模型,如果一次提取4個維度進行組合分析,那麼實際的運算次數將達到4的1000次方的數量:這樣的運算量將導致數十分鐘乃至更長的等待時間。如果使用者對維組合次序進行調整,或者增加減少某些維度的話,又將是一個重新的計算過程。

從上面分析,我們可以得出結論,如果不能解決OLAP運算效率問題的話,OLAP將是一個毫無實用價值的概念。那麼,作為一個成熟產品是如何解決這個問題的呢?這就是OLAP中一個非常重要的技術:資料CUBE預運算。

一個OLAP模型中,度量資料和維資料我們應該實現確定,一旦兩者確定下來,那麼我們可以對資料進行預先的處理,在正式釋出之前,將資料根據維進行最大限度的聚類運算,運算中會考慮到各種維組合情況,運算結果將生成一個數據CUBE,並儲存在伺服器上。這樣,當終端使用者在調閱這個分析模型的時候,就可以直接使用這個CUBE,在此基礎上根據使用者的維選擇和維組合進行復運算,從而達到實時響應的這麼一個效果。

補充說明

上面所說的,是OLAP最基本的概念,除此以外,OLAP通常包括的功能包括資料旋轉(變換觀察維組合順序)、資料切片(過濾無關資料,對指定資料進行重點觀察),以及對資料進行跨行列運算