登錄

聯(lián)機(jī)分析處理

百科 > 信息技術(shù) > 聯(lián)機(jī)分析處理

1.什么是聯(lián)機(jī)分析處理

聯(lián)機(jī)分析處理的概念最早是由關(guān)系數(shù)據(jù)庫(kù)之父愛(ài)德華·庫(kù)德(E·F·Codd)博士于1993年提出的,是一種用于組織大型商務(wù)數(shù)據(jù)庫(kù)和支持商務(wù)智能的技術(shù)。OLAP 數(shù)據(jù)庫(kù)分為一個(gè)或多個(gè)多維數(shù)據(jù)集,每個(gè)多維數(shù)據(jù)集都由多維數(shù)據(jù)集管理員組織和設(shè)計(jì)以適應(yīng)用戶檢索和分析數(shù)據(jù)的方式,從而更易于創(chuàng)建和使用所需的數(shù)據(jù)透視表和數(shù)據(jù)透視圖。

庫(kù)德同時(shí)提出了關(guān)于OLAP的12條準(zhǔn)則。OLAP的提出引起了很大的反響,OLAP作為一類產(chǎn)品同聯(lián)機(jī)事務(wù)處理(OLTP) 明顯區(qū)分開(kāi)來(lái)。庫(kù)德提出OLAP的12條準(zhǔn)則來(lái)描述OLAP系統(tǒng):

  • 準(zhǔn)則1 OLAP模型必須提供多維概念視圖
  • 準(zhǔn)則2 透明性準(zhǔn)則
  • 準(zhǔn)則3 存取能力推測(cè)
  • 準(zhǔn)則4 穩(wěn)定的報(bào)表能力
  • 準(zhǔn)則5 客戶/服務(wù)器體系結(jié)構(gòu)
  • 準(zhǔn)則6 維的等同性準(zhǔn)則
  • 準(zhǔn)則7 動(dòng)態(tài)的稀疏矩陣處理準(zhǔn)則
  • 準(zhǔn)則8 多用戶支持能力準(zhǔn)則
  • 準(zhǔn)則9 非受限的跨維操作
  • 準(zhǔn)則10 直觀的數(shù)據(jù)操縱
  • 準(zhǔn)則11 靈活的報(bào)表生成
  • 準(zhǔn)則12 不受限的維與聚集層次

當(dāng)今的數(shù)據(jù)處理大致可以分成兩大類:聯(lián)機(jī)事務(wù)處理OLTP、聯(lián)機(jī)分析處理OLAP。OLTP是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)的主要應(yīng)用,主要是基本的、日常的事務(wù)處理,例如銀行交易。OLAP是數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)的主要應(yīng)用,支持復(fù)雜的分析操作,側(cè)重決策支持,并且提供直觀易懂的查詢結(jié)果。下表列出了OLTP與OLAP之間的比較。

OLTPOLAP
用戶操作人員,低層管理人員決策人員,高級(jí)管理人員
功能日常操作處理分析決策
DB 設(shè)計(jì)面向應(yīng)用面向主題
數(shù)據(jù)當(dāng)前的, 最新的細(xì)節(jié)的, 二維的分立的歷史的, 聚集的, 多維的集成的, 統(tǒng)一的
存取讀/寫數(shù)十條記錄讀上百萬(wàn)條記錄
工作單位簡(jiǎn)單的事務(wù)復(fù)雜的查詢
用戶數(shù)上千個(gè)上百個(gè)
DB 大小100MB-GB100GB-TB

2.聯(lián)機(jī)分析處理的發(fā)展背景

隨著數(shù)據(jù)庫(kù)技術(shù)的廣泛應(yīng)用,企業(yè)信息系統(tǒng)產(chǎn)生了大量的數(shù)據(jù),如何從這些海量數(shù)據(jù)中提取對(duì)企業(yè)決策分析有用的信息成為企業(yè)決策管理人員所面臨的重要難題。傳統(tǒng)的企業(yè)數(shù)據(jù)庫(kù)系統(tǒng)(管理信息系統(tǒng))即聯(lián)機(jī)事務(wù)處理系統(tǒng)(On-LineTransactionProcessing,簡(jiǎn)稱OLTP)作為數(shù)據(jù)管理手段,主要用于事務(wù)處理,但它對(duì)分析處理的支持一直不能令人滿意。因此,人們逐漸嘗試對(duì)OLTP數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行再加工,形成一個(gè)綜合的、面向分析的、更好的支持決策制定的決策支持系統(tǒng)(DecisionSupportSystem,簡(jiǎn)稱DSS)。

企業(yè)目前的信息系統(tǒng)的數(shù)據(jù)一般由數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)管理,但決策數(shù)據(jù)庫(kù)和運(yùn)行操作數(shù)據(jù)庫(kù)在數(shù)據(jù)來(lái)源、數(shù)據(jù)內(nèi)容、數(shù)據(jù)模式、服務(wù)對(duì)象、訪問(wèn)方式、事務(wù)管理乃至無(wú)力存儲(chǔ)等方面都有不同的特點(diǎn)和要求,因此直接在運(yùn)行操作的數(shù)據(jù)庫(kù)上建立DSS是不合適的。數(shù)據(jù)倉(cāng)庫(kù)(Data Warehouse)技術(shù)就是在這樣的背景下發(fā)展起來(lái)的。數(shù)據(jù)倉(cāng)庫(kù)的概念提出于20世紀(jì)80年代中期,20世紀(jì)90年代,數(shù)據(jù)倉(cāng)庫(kù)已從早起的探索階段走向?qū)嵱秒A段。業(yè)界公認(rèn)的數(shù)據(jù)倉(cāng)庫(kù)概念創(chuàng)始人恩門(Inmon)在《Building the Data Warehouse》一書(shū)中對(duì)數(shù)據(jù)倉(cāng)庫(kù)的定義是:“數(shù)據(jù)倉(cāng)庫(kù)是支持管理決策過(guò)程的、面向主題的、集成的、隨時(shí)間變化的持久的數(shù)據(jù)集合”。構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)的過(guò)程就是根據(jù)預(yù)先設(shè)計(jì)好的邏輯模式從分布在企業(yè)內(nèi)部各處的OLTP數(shù)據(jù)庫(kù)中提取數(shù)據(jù)并對(duì)經(jīng)過(guò)必要的變換最終形成全企業(yè)統(tǒng)一模式數(shù)據(jù)的過(guò)程。當(dāng)前數(shù)據(jù)倉(cāng)庫(kù)的核心仍是RDBMS管理下的一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)。數(shù)據(jù)倉(cāng)庫(kù)中數(shù)據(jù)量巨大,為了提高性能,RDBMS一般也采取一些提高效率的措施:采用并行處理結(jié)構(gòu)、新的數(shù)據(jù)組織、查詢策略、索引技術(shù)等等。

包括聯(lián)機(jī)分析處理(On-LineAnalyticalProcessing,簡(jiǎn)稱OLAP)在內(nèi)的諸多應(yīng)用牽引驅(qū)動(dòng)了數(shù)據(jù)倉(cāng)庫(kù)技術(shù)的出現(xiàn)和發(fā)展;而數(shù)據(jù)倉(cāng)庫(kù)技術(shù)反過(guò)來(lái)又促進(jìn)了OLAP技術(shù)的發(fā)展。聯(lián)機(jī)分析處理的概念最早由關(guān)系數(shù)據(jù)庫(kù)之父E·F·Codd于1993年提出的。Codd認(rèn)為聯(lián)機(jī)事務(wù)處理(OLTP)已不能滿足終端用戶對(duì)數(shù)據(jù)庫(kù)查詢分析的要求,結(jié)構(gòu)化查詢語(yǔ)言(SQL)對(duì)大數(shù)據(jù)庫(kù)的簡(jiǎn)單查詢也不能滿足用戶分析的需求。用戶的決策分析需要對(duì)關(guān)系數(shù)據(jù)庫(kù)進(jìn)行大量計(jì)算才能得到結(jié)果,而查詢的結(jié)果并不能滿足決策者提出的需求。因此,Codd提出了多維數(shù)據(jù)庫(kù)和多維分析的概念,即OLAP。OLAP委員會(huì)對(duì)聯(lián)機(jī)分析處理的定義為:使分析人員、管理人員或執(zhí)行人員能夠從多種角度對(duì)從原始數(shù)據(jù)中轉(zhuǎn)化出來(lái)的、能夠真正為用戶所理解的、并真實(shí)反映企業(yè)維特性的信息進(jìn)行快速、一致、交互地存取,從而獲得對(duì)數(shù)據(jù)的更深入了解的一類軟件技術(shù)。OLAP的目標(biāo)是滿足決策支持或多維環(huán)境特定的查詢和報(bào)表需求,它的技術(shù)核心是“維”這個(gè)概念,因此OLAP也可以說(shuō)是多維數(shù)據(jù)分析工具的集合。

3.聯(lián)機(jī)分析處理的特點(diǎn)

在過(guò)去的二十年中,大量的企業(yè)利用關(guān)系型數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)和管理業(yè)務(wù)數(shù)據(jù),并建立相應(yīng)的應(yīng)用系統(tǒng)來(lái)支持日常業(yè)務(wù)運(yùn)作。這種應(yīng)用以支持業(yè)務(wù)處理為主要目的,被稱為聯(lián)機(jī)事務(wù)處理(OLTP,On-line Transaction Processing)應(yīng)用,它所存儲(chǔ)的數(shù)據(jù)被稱為操作數(shù)據(jù)或者業(yè)務(wù)數(shù)據(jù)。

隨著市場(chǎng)競(jìng)爭(zhēng)的日趨激烈,近年來(lái)企業(yè)更加強(qiáng)調(diào)決策的及時(shí)性和準(zhǔn)確性,這使得以支持決策管理分析為主要目的的應(yīng)用迅速崛起,這類應(yīng)用被稱為聯(lián)機(jī)分析處理,它所存儲(chǔ)的數(shù)據(jù)被稱為信息數(shù)據(jù)。

聯(lián)機(jī)分析處理的用戶是企業(yè)中的專業(yè)分析人員及管理決策人員,他們?cè)诜治鰳I(yè)務(wù)經(jīng)營(yíng)的數(shù)據(jù)時(shí),從不同的角度來(lái)審視業(yè)務(wù)的衡量指標(biāo)是一種很自然的思考模式。例如分析銷售數(shù)據(jù),可能會(huì)綜合時(shí)間周期、產(chǎn)品類別、分銷渠道、地理分布、客戶群類等多種因素來(lái)考量。這些分析角度雖然可以通過(guò)報(bào)表來(lái)反映,但每一個(gè)分析的角度可以生成一張報(bào)表,各個(gè)分析角度的不同組合又可以生成不同的報(bào)表,使得IT人員的工作量相當(dāng)大,而且往往難以跟上管理決策人員思考的步伐。

聯(lián)機(jī)分析處理的主要特點(diǎn),是直接仿照用戶的多角度思考模式,預(yù)先為用戶組建多維的數(shù)據(jù)模型,在這里,維指的是用戶的分析角度。例如對(duì)銷售數(shù)據(jù)的分析,時(shí)間周期是一個(gè)維度,產(chǎn)品類別、分銷渠道、地理分布、客戶群類也分別是一個(gè)維度。一旦多維數(shù)據(jù)模型建立完成,用戶可以快速地從各個(gè)分析角度獲取數(shù)據(jù),也能動(dòng)態(tài)的在各個(gè)角度之間切換或者進(jìn)行多角度綜合分析,具有極大的分析靈活性。這也是聯(lián)機(jī)分析處理在近年來(lái)被廣泛關(guān)注的根本原因,它從設(shè)計(jì)理念和真正實(shí)現(xiàn)上都與舊有的管理信息系統(tǒng)有著本質(zhì)的區(qū)別。

事實(shí)上,隨著數(shù)據(jù)倉(cāng)庫(kù)理論的發(fā)展,數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)已逐步成為新型的決策管理信息系統(tǒng)的解決方案。數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)的核心是聯(lián)機(jī)分析處理,但數(shù)據(jù)倉(cāng)庫(kù)包括更為廣泛的內(nèi)容。

概括來(lái)說(shuō),數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)是指具有綜合企業(yè)數(shù)據(jù)的能力,能夠?qū)Υ罅科髽I(yè)數(shù)據(jù)進(jìn)行快速和準(zhǔn)確分析,輔助做出更好的商業(yè)決策的系統(tǒng)。它本身包括三部分內(nèi)容:

  • 數(shù)據(jù)層。實(shí)現(xiàn)對(duì)企業(yè)操作數(shù)據(jù)的抽取、轉(zhuǎn)換、清洗和匯總,形成信息數(shù)據(jù),并存儲(chǔ)在企業(yè)級(jí)的中心信息數(shù)據(jù)庫(kù)中。
  • 應(yīng)用層。通過(guò)聯(lián)機(jī)分析處理,甚至是數(shù)據(jù)挖掘等應(yīng)用處理,實(shí)現(xiàn)對(duì)信息數(shù)據(jù)的分析。
  • 表現(xiàn)層。通過(guò)前臺(tái)分析工具,將查詢報(bào)表、統(tǒng)計(jì)分析、多維聯(lián)機(jī)分析和數(shù)據(jù)發(fā)掘的結(jié)論展現(xiàn)在用戶面前。

從應(yīng)用角度來(lái)說(shuō),數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)除了聯(lián)機(jī)分析處理外,還可以采用傳統(tǒng)的報(bào)表,或者采用數(shù)理統(tǒng)計(jì)人工智能等數(shù)據(jù)挖掘手段,涵蓋的范圍更廣;就應(yīng)用范圍而言,聯(lián)機(jī)分析處理往往根據(jù)用戶分析的主題進(jìn)行應(yīng)用分割,例如:銷售分析、市場(chǎng)推廣分析、客戶利潤(rùn)率分析等等,每一個(gè)分析的主題形成一個(gè)OLAP應(yīng)用,而所有的OLAP應(yīng)用實(shí)際上只是數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)的一部分。

4.聯(lián)機(jī)分析處理的實(shí)現(xiàn)方式

同樣是仿照用戶的多角度思考模式,聯(lián)機(jī)分析處理有三種不同的實(shí)現(xiàn)方法:

  • 關(guān)系聯(lián)機(jī)分析處理(ROLAP,Relational OLAP)
  • 多維聯(lián)機(jī)分析處理(MOLAP,Multi-Dimensional OLAP)
  • 前端展示聯(lián)機(jī)分析處理(Desktop OLAP)

其中,前端展示聯(lián)機(jī)分析需要將所有數(shù)據(jù)下載到客戶機(jī)上,然后在客戶機(jī)上進(jìn)行數(shù)據(jù)結(jié)構(gòu)/報(bào)表格式重組,使用戶能在本機(jī)實(shí)現(xiàn)動(dòng)態(tài)分析。該方式比較靈活,然而它能夠支持的數(shù)據(jù)量非常有限,嚴(yán)重地影響了使用的范圍和效率。因此,隨著時(shí)間的推移,這種方式已退居次要地位,在此不作討論。

以下就ROLAP和MOLAP的具體實(shí)施方法進(jìn)行討論:

1、關(guān)系型聯(lián)機(jī)分析處理的具體實(shí)施方法

顧名思義,關(guān)系型聯(lián)機(jī)分析處理是以關(guān)系型數(shù)據(jù)庫(kù)為基礎(chǔ)的。唯一特別之處在于聯(lián)機(jī)分析處理中的數(shù)據(jù)結(jié)構(gòu)組織的方式。

例如,假設(shè)我們要進(jìn)行產(chǎn)品銷售的財(cái)務(wù)分析,分析的角度包括時(shí)間、產(chǎn)品類別、市場(chǎng)分布、實(shí)際發(fā)生與預(yù)算四方面內(nèi)容,分析的財(cái)務(wù)指標(biāo)包括:銷售額、銷售支出、毛利(=銷售額-銷售支出)、費(fèi)用、純利(=毛利-費(fèi)用)等內(nèi)容,則可以建立如下的數(shù)據(jù)結(jié)構(gòu):

聯(lián)機(jī)分析處理

該數(shù)據(jù)結(jié)構(gòu)的中心是主表,里面包含了所有分析維度的外鍵,以及所有的財(cái)務(wù)指標(biāo),可計(jì)算推導(dǎo)的財(cái)務(wù)指標(biāo)不計(jì)在內(nèi),稱之為事實(shí)表(Fact Table)。周圍的表分別是對(duì)應(yīng)于各個(gè)分析角度的維表(Dimension Table),每個(gè)維表除了主鍵以外,還包含了描述和分類信息。無(wú)論原來(lái)的業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)為何,只要原業(yè)務(wù)數(shù)據(jù)能夠整理成為以上模式,則無(wú)論業(yè)務(wù)人員據(jù)此提出任何問(wèn)題,都可以用SQL語(yǔ)句進(jìn)行表連接或匯總(table join and group by)實(shí)現(xiàn)數(shù)據(jù)查詢和解答。(當(dāng)然,有一些現(xiàn)成的ROLAP前端分析工具是可以自動(dòng)根據(jù)以上模型生成SQL語(yǔ)句的)。這種模式被稱為星型模式(Star- Schema),可應(yīng)用于不同的聯(lián)機(jī)分析處理應(yīng)用中。

以下是另一個(gè)采用星型模式的例子,分析的角度和指標(biāo)截然不同,但數(shù)據(jù)結(jié)構(gòu)模式一樣。我們看到的不是表的數(shù)據(jù),而是表的結(jié)構(gòu)。在聯(lián)機(jī)分析處理的數(shù)據(jù)模型設(shè)計(jì)中,這種表達(dá)方式更為常見(jiàn):

聯(lián)機(jī)分析處理

有時(shí)候,維表的定義會(huì)變得復(fù)雜,例如對(duì)產(chǎn)品維,既要按產(chǎn)品種類進(jìn)行劃分,對(duì)某些特殊商品,又要另外進(jìn)行品牌劃分,商品品牌和產(chǎn)品種類劃分方法并不一樣。因此,單張維表不是理想的解決方案,可以采用以下方式,這種數(shù)據(jù)模型實(shí)際上是星型結(jié)構(gòu)的拓展,我們稱之為雪花型模式(snow-flake schema)。

聯(lián)機(jī)分析處理

無(wú)論采用星型模式還是雪花型模式,關(guān)系型聯(lián)機(jī)分析處理都具有以下特點(diǎn)

  • 數(shù)據(jù)結(jié)構(gòu)和組織模式需要預(yù)先設(shè)計(jì)和建立;
  • 數(shù)據(jù)查詢需要進(jìn)行表連接,在查詢性能測(cè)試中往往是影響速度的關(guān)鍵;
  • 數(shù)據(jù)匯總查詢(例如查詢某個(gè)品牌的所有產(chǎn)品銷售額),需要進(jìn)行Group by 操作,雖然實(shí)際得出的數(shù)據(jù)量很少,但查詢時(shí)間變得更長(zhǎng);
  • 為了改善數(shù)據(jù)匯總查詢的性能,可以建立匯總表,但匯總表的數(shù)量與用戶分析的角度數(shù)目和每個(gè)角度的層次數(shù)目密切相關(guān)。例如,用戶從8個(gè)角度進(jìn)行分析,每個(gè)角度有3個(gè)匯總層次,則匯總表的數(shù)目高達(dá)3的8次方。

可以采取對(duì)常用匯總數(shù)據(jù)建立匯總表,對(duì)不常用的匯總數(shù)據(jù)進(jìn)行Group by 操作,這樣來(lái)取得性能和管理復(fù)雜度之間的均衡。

2、多維聯(lián)機(jī)分析處理的具體實(shí)施方法

多維聯(lián)機(jī)分析處理實(shí)際上是用多維數(shù)組的方式對(duì)關(guān)系型數(shù)據(jù)表進(jìn)行處理。下圖是ROLAP與MOLAP的對(duì)比:

聯(lián)機(jī)分析處理

圖中左邊是ROLAP方式,右邊是MOLAP方式,兩者對(duì)應(yīng)的是同一個(gè)三維模型。MOLAP首先對(duì)事實(shí)表中的所有外鍵進(jìn)行排序,并將排序后的具體指標(biāo)數(shù)值一一寫進(jìn)虛擬的多維立方體中。當(dāng)然,虛擬的多維立方體只是為了便于理解而構(gòu)想的,MOLAP實(shí)際的數(shù)據(jù)存儲(chǔ)放在數(shù)據(jù)文件(Data File)中,其數(shù)據(jù)放置的順序與虛擬的多維立方體按x,y,z坐標(biāo)展開(kāi)的順序是一致的(如上圖)。同時(shí),為了數(shù)據(jù)查找的方便,MOLAP需要預(yù)先建立維度的索引,這個(gè)索引被放置在MOLAP的概要文件(Outline)中。

概要文件是MOLAP的核心,相當(dāng)于ROLAP的數(shù)據(jù)模型設(shè)計(jì)。概要文件包括所有維的定義(包括復(fù)雜的維度結(jié)構(gòu))以及各個(gè)層次的數(shù)據(jù)匯總關(guān)系(例如在時(shí)間維,日匯總至月,月匯總至季,季匯總至年),這些定義往往從關(guān)系型維表中直接引入即可。概要文件也包括分析指標(biāo)的定義,因此可以在概要文件中包含豐富的衍生指標(biāo),這些衍生指標(biāo)由基礎(chǔ)指標(biāo)計(jì)算推導(dǎo)出來(lái)(例如ROLAP例子1中的純利和毛利)。概要文件的結(jié)構(gòu)如下圖所示:

聯(lián)機(jī)分析處理

一旦概要文件定義好,MOLAP系統(tǒng)可以自動(dòng)安排數(shù)據(jù)存儲(chǔ)的方式和進(jìn)行數(shù)據(jù)查詢。從MOLAP的數(shù)據(jù)文件與ROLAP的事實(shí)表的對(duì)比可以看出,MOLAP的數(shù)據(jù)文件完全不需要紀(jì)錄維度的外鍵,在維度比較多的情況下,這種數(shù)據(jù)存儲(chǔ)方式大量地節(jié)省了空間。

但是,如果數(shù)據(jù)相當(dāng)稀疏,虛擬的多維立方體中很多數(shù)值為空時(shí),MOLAP的數(shù)據(jù)文件需要對(duì)相關(guān)的位置留空,而ROLAP的事實(shí)表卻不會(huì)存儲(chǔ)這些紀(jì)錄。為了有效地解決這種情況,MOLAP采用了稀疏維和密集維相結(jié)合的處理方式,如下圖:

聯(lián)機(jī)分析處理

上圖的背景是某些客戶只通過(guò)某些分銷渠道才購(gòu)買,但是只要該客戶存在,他在各個(gè)月和各個(gè)地區(qū)內(nèi)均有消費(fèi) (例如,華南IBM只通過(guò)熊貓國(guó)旅定購(gòu)南航機(jī)票,但在華南四省在每個(gè)月均有機(jī)票訂購(gòu))。則時(shí)間和地區(qū)維是密集維,客戶和分銷渠道是稀疏維,MOLAP將稀疏維建成索引文件(Index File),密集維所對(duì)應(yīng)的數(shù)值仍然保留在數(shù)據(jù)文件中,索引文件不存儲(chǔ)空紀(jì)錄。這樣保持了對(duì)空間的合理利用。我們也可以看到,如果所有維都是稀疏維,則 MOLAP的索引文件就退化成ROLAP的事實(shí)表, 兩者沒(méi)有區(qū)別了。

在實(shí)際應(yīng)用中,不可能所有分析的維度都是密集的,也絕少存在所有分析的維度都是稀疏的,因此稀疏維和密集維并用的模式幾乎主導(dǎo)了所有的MOLAP應(yīng)用。而稀疏維和密集維的定義全部集中在概要文件中,因此,只要預(yù)先定義好概要文件,所有的數(shù)據(jù)分布就自動(dòng)確定了。

在這種模式中,密集維的組合組成了的數(shù)據(jù)塊(Data Block),每個(gè)數(shù)據(jù)塊是I/O讀寫的基礎(chǔ)單位(如上圖),所有的數(shù)據(jù)塊組成了數(shù)據(jù)文件。稀疏維的組合組成了索引文件,索引文件的每一個(gè)數(shù)據(jù)紀(jì)錄的末尾都帶有一個(gè)指針,指向要讀寫的數(shù)據(jù)塊。因此,進(jìn)行數(shù)據(jù)查詢時(shí),系統(tǒng)先搜索索引文件紀(jì)錄,然后直接調(diào)用指針指向的數(shù)據(jù)塊進(jìn)行I/O讀寫(如果該數(shù)據(jù)塊尚未駐留內(nèi)存),將相應(yīng)數(shù)據(jù)塊調(diào)入內(nèi)存后,根據(jù)密集維的數(shù)據(jù)放置順序直接計(jì)算出要查詢的數(shù)據(jù)距離數(shù)據(jù)塊頭的偏移量,直接提取數(shù)據(jù)下傳到客戶端。因此,MOLAP 方式基本上是索引搜索與直接尋址的查詢方式相結(jié)合,比起ROLAP的表/索引搜索和表連接方式,速度要快得多。

多維聯(lián)機(jī)分析處理有以下特點(diǎn):

  • 需要預(yù)先定義概要文件;
  • 數(shù)據(jù)查詢采用索引搜索與直接尋址的方式相結(jié)合,不需要進(jìn)行表連接,在查詢性能測(cè)試中比起ROLAP有相當(dāng)大的優(yōu)勢(shì);
  • 在進(jìn)行數(shù)據(jù)匯總查詢之前,MOLAP需要預(yù)先按概要文件中定義的數(shù)據(jù)匯總關(guān)系進(jìn)行計(jì)算,這個(gè)計(jì)算通常以批處理方式運(yùn)行。計(jì)算結(jié)果回存在數(shù)據(jù)文件中,當(dāng)用戶查詢時(shí),直接調(diào)用計(jì)算結(jié)果,速度非???。
  • 無(wú)論是數(shù)據(jù)匯總還是計(jì)算衍生數(shù)據(jù),預(yù)先計(jì)算的方式實(shí)際上是用空間來(lái)?yè)Q時(shí)間。當(dāng)然,用戶也可以選擇動(dòng)態(tài)計(jì)算的方式,用查詢時(shí)間來(lái)?yè)Q取存儲(chǔ)空間。MOLAP可以靈活調(diào)整時(shí)空的取舍平衡。
  • 用戶難以使用概要文件中沒(méi)有定義的數(shù)據(jù)匯總關(guān)系和衍生指標(biāo)。
  • 在大數(shù)據(jù)量環(huán)境下,關(guān)系型數(shù)據(jù)庫(kù)可以達(dá)到TB級(jí)的數(shù)據(jù)量,現(xiàn)有的MOLAP應(yīng)用局限于基于文件系統(tǒng)的處理和查詢方式,其性能會(huì)在100GB級(jí)別開(kāi)始下降,需要進(jìn)行數(shù)據(jù)分區(qū)處理,因此擴(kuò)展性不如ROLAP。因此,MOLAP多數(shù)用于部門級(jí)的主題分析應(yīng)用。

3、其它考慮因素

聯(lián)機(jī)分析處理其他要素包括假設(shè)分析(What-if),復(fù)雜計(jì)算,數(shù)據(jù)評(píng)估等等。這些因素對(duì)用戶的分析效用至關(guān)重要,但是與ROLAP和MOLAP的核心工作原理的不一定有很緊密的關(guān)系,事實(shí)上,ROLAP和MOLAP都可以在以上三方面有所建樹(shù),只不過(guò)實(shí)現(xiàn)的方法迥異。因此,這些因素更取決于各個(gè)廠商為他們的產(chǎn)品提供的外延功能。對(duì)于像IBM的DB2 OLAP Server這樣一個(gè)成熟的產(chǎn)品來(lái)說(shuō),這三方面均有獨(dú)特的優(yōu)勢(shì):

1)假設(shè)分析

假設(shè)分析提出了類似于以下的問(wèn)題:"如果產(chǎn)品降價(jià)5%,而運(yùn)費(fèi)增加8%,對(duì)不同地區(qū)的分銷商的進(jìn)貨成本會(huì)有什么影響?"這些問(wèn)題常用于銷售預(yù)測(cè)、費(fèi)用預(yù)算分配、獎(jiǎng)金制度確定等等。據(jù)此,用戶可以分析出哪些角度、哪些因素的變化將對(duì)企業(yè)產(chǎn)生重要影響;并且,用戶可以靈活調(diào)節(jié)自己手中掌握的資源(例如費(fèi)用預(yù)算等),將它用到最有效的地方中去。 假設(shè)分析要求OLAP系統(tǒng)能夠隨用戶的思路調(diào)整數(shù)據(jù),并動(dòng)態(tài)反映出在調(diào)整后對(duì)其他數(shù)據(jù)的影響結(jié)果。事實(shí)上,進(jìn)入 OLAP的數(shù)據(jù)分兩大類:事實(shí)數(shù)據(jù)和預(yù)算數(shù)據(jù),例如本月實(shí)際發(fā)生的銷售額是事實(shí)數(shù)據(jù),上月對(duì)本月的銷售額估算是預(yù)算數(shù)據(jù)。事實(shí)數(shù)據(jù)一般情況下不容修改,而預(yù)算數(shù)據(jù)則應(yīng)常常進(jìn)行調(diào)整。DB2 OLAP Server通過(guò)詳細(xì)的權(quán)限定義區(qū)分了數(shù)據(jù)的讀寫權(quán)限,允許用戶對(duì)預(yù)算數(shù)據(jù)進(jìn)行更改,系統(tǒng)可以對(duì)其他受影響的數(shù)據(jù)進(jìn)行計(jì)算,以反映出"假如發(fā)生如上情況,將會(huì)引起以下結(jié)果"的結(jié)論。

2)復(fù)雜計(jì)算

分析人員往往需要分析復(fù)雜的衍生數(shù)據(jù),諸如:同期對(duì)比、期初/期末余額、百分比份額計(jì)算、資源分配(按從頂向下的結(jié)構(gòu)圖逐級(jí)分配)、移動(dòng)平均、均方差等等。對(duì)這些要求,DB2 OLAP Server提供豐富的功能函數(shù)以便用戶使用。因?yàn)橹挥性跓o(wú)需編程的環(huán)境下,商業(yè)用戶才能更好地靈活利用這些功能進(jìn)行復(fù)雜的真實(shí)世界模擬。

3)數(shù)據(jù)評(píng)估

數(shù)據(jù)評(píng)估包括兩方面內(nèi)容,有效性評(píng)估和商業(yè)意義評(píng)估。在有效性評(píng)估方面,數(shù)據(jù)抽取、清洗和轉(zhuǎn)換的規(guī)則的定義是至關(guān)重要的。而合理的數(shù)據(jù)模型設(shè)計(jì)能有效防止無(wú)效數(shù)據(jù)的進(jìn)入。例如在ROLAP中,如果維表沒(méi)有采用范式設(shè)計(jì)(normalise design),可能會(huì)接受如下的維表:

機(jī)構(gòu)代碼機(jī)構(gòu)名稱所屬區(qū)縣所屬城市所屬省份
001越秀支行越秀區(qū)廣州廣東
002祖廟支行佛山廣州廣東
003翠屏支行佛山南海廣東
004。。。。。。。。。。。。

顯然,002中顯示的佛山屬于廣州市,與003中顯示的佛山屬于南海市是矛盾的。這顯示出數(shù)據(jù)源有問(wèn)題,但是如果采用星型模式設(shè)計(jì),ROLAP無(wú)法自動(dòng)發(fā)現(xiàn)數(shù)據(jù)源的問(wèn)題!

在類似情況下,MOLAP的表現(xiàn)稍占優(yōu)勢(shì)。因?yàn)镸OLAP需要預(yù)先定義概要文件,而概要文件會(huì)詳細(xì)分析維度的層次關(guān)系,因此生成概要文件時(shí)會(huì)反映數(shù)據(jù)源的錯(cuò)誤。因此,在DB2 OLAP Server中,記錄003會(huì)被拒收,并紀(jì)錄在出錯(cuò)日志中,供IT人員更正。

但是,OLAP對(duì)數(shù)據(jù)源有效性的驗(yàn)證能力畢竟是有限的,因此,數(shù)據(jù)有效性必須從源數(shù)據(jù)一級(jí)和數(shù)據(jù)抽取/清洗/轉(zhuǎn)換處理一級(jí)來(lái)進(jìn)行保障。

對(duì)用戶而言,數(shù)據(jù)的商業(yè)含義評(píng)估更有意義。在商業(yè)活動(dòng)中,指標(biāo)數(shù)值的取值范圍是比較穩(wěn)定的,如果指標(biāo)數(shù)值突然發(fā)生變化,或者在同期比較、同類比較中有特殊表現(xiàn),意味著該指標(biāo)代表的方方面面具有特別的分析意義。普通的OLAP往往需要用戶自己去觀察發(fā)現(xiàn)異常指標(biāo),而DB2 OLAP Server的OLAP Minor(多維數(shù)據(jù)挖掘功能)能為用戶特別地指出哪些條件下的哪些指標(biāo)偏離常值,從而引起用戶的注意和思考。例如:12月份南部的圣誕禮品銷售額不到同期類似區(qū)域(東部、中部、西部)的50%。

綜上所述,無(wú)論ROLAP還是MOLAP,都能夠?qū)崿F(xiàn)聯(lián)機(jī)分析處理的基本功能,兩者在查詢效率,存儲(chǔ)空間和擴(kuò)展性方面各有千秋。IT人員在選擇OLAP系統(tǒng)時(shí),既要考慮產(chǎn)品內(nèi)部的實(shí)現(xiàn)機(jī)制,同時(shí)也應(yīng)考慮假設(shè)分析,復(fù)雜計(jì)算,數(shù)據(jù)評(píng)估方面的功能,為實(shí)現(xiàn)決策管理信息系統(tǒng)打下堅(jiān)實(shí)的基礎(chǔ)。

評(píng)論  |   0條評(píng)論