摘要:聯(lián)機分析處理(OLAP),是商業(yè)智能的一種分析工具之一。而該文所述的智能分析方法是一種基于OLAP的分析方法,這種分析方法的特征在于采用了MDX(Multi Dimensional Expressions,多維表達語言)語言;使用MDX來處理多維數(shù)據(jù)的分析;利用MDX快速處理OLAP數(shù)據(jù)庫的能力來實現(xiàn)基于屬性度量值的自動報表分析,從而找出對報表總額貢獻率最高的幾個維度成員組合;通過使用循環(huán)遍歷多個維度,使用遞歸技術(shù)實現(xiàn)單個維度的上下鉆取分析及維度間的連接分析。
關(guān)鍵詞:OLAP;商業(yè)智能;智能分析方法
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2012)17-4199-03
商業(yè)智能通常被理解為將企業(yè)中現(xiàn)有的數(shù)據(jù)轉(zhuǎn)化為知識,幫助企業(yè)做出明智的業(yè)務經(jīng)營決策的工具。這些數(shù)據(jù)包括來自企業(yè)業(yè)務系統(tǒng)的訂單、庫存、交易賬目、客戶和供應商等來自企業(yè)所處行業(yè)和競爭對手的數(shù)據(jù)以及來自企業(yè)所處的其他外部環(huán)境中的各種數(shù)據(jù)。
為了將數(shù)據(jù)轉(zhuǎn)化為知識,需要利用數(shù)據(jù)倉庫、聯(lián)機分析處理(OLAP)工具和數(shù)據(jù)挖掘等技術(shù)。因此,從技術(shù)層面上講,商業(yè)智能不是什么新技術(shù),它只是數(shù)據(jù)倉庫、OLAP和數(shù)據(jù)挖掘等技術(shù)的綜合運用。
目前的數(shù)據(jù)處理主要分成兩大類:聯(lián)機事務處理OLTP、聯(lián)機分析處理OLAP。OLTP是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的主要應用,主要是基本的、日常的事務處理。OLAP是數(shù)據(jù)倉庫系統(tǒng)的主要應用,支持復雜的分析操作,側(cè)重決策支持,并且提供直觀易懂的查詢結(jié)果。
OLAP是使分析人員、管理人員或執(zhí)行人員能夠從多角度對信息進行快速、一致、交互地存取,從而獲得對數(shù)據(jù)的更深入了解的一類軟件技術(shù)。OLAP的目標是滿足決策支持或者滿足在多維環(huán)境下特定的查詢和報表需求,它的技術(shù)核心是"維"這個概念。
“維”是人們觀察客觀世界的角度,是一種高層次的類型劃分,也叫“維度”。“維”一般包含著層次關(guān)系,這種層次關(guān)系有時會相當復雜。通過把一個實體的多項重要的屬性定義為多個維,使用戶能對不同維上的數(shù)據(jù)進行比較,所比較的數(shù)據(jù)叫做度量值。因此OLAP也可以說是多維數(shù)據(jù)分析工具的集合。
OLAP的基本多維分析操作有鉆取、切片和切塊、以及旋轉(zhuǎn)等。
OLAP有多種實現(xiàn)方法,該文介紹的智能分析方法是其中之一。
1現(xiàn)狀 隨著信息技術(shù)的發(fā)展,每天都有海量的數(shù)據(jù)生成,各種數(shù)據(jù)之間的高度關(guān)聯(lián)性使得數(shù)據(jù)分析人員傾向于在多維數(shù)據(jù)庫OLAP里面對數(shù)據(jù)進行分析。由于已經(jīng)對原始數(shù)據(jù)進行了壓縮聚合等處理,使得多維數(shù)據(jù)庫無論是在時間還是空間方面的數(shù)據(jù)存儲處理分析能力都比關(guān)系數(shù)據(jù)庫優(yōu)秀。盡管如此,現(xiàn)階段分析人員對多維數(shù)據(jù)庫的操作只限于簡單的查詢分析,而且在分析的過程中往往要依賴于分析人員的主觀判斷,需要分析人員決定分析哪些屬性的哪些成員。
現(xiàn)實中的一個問題是假定已知報表總額的某個度量值有所變化,任務是找出對該度量值變化貢獻率(貢獻率:關(guān)于該度量值的一個維度的一個成員占這個維度的所有成員的比重乘以該維度下屬成員的數(shù)目)最高的幾個維度成員。前面已經(jīng)提到,現(xiàn)階段分析人員只能對多維數(shù)據(jù)庫進行簡單的查詢分析且往往包含人為的主觀分析。為了完成上述任務,他們的可能做法是手動處理數(shù)據(jù)立方體的所有輸入維度,對每個維度進行查詢分析并手動地選擇結(jié)果并將起返回。這個過程是相當耗費人力和時間的。因此提出一種新的方法自動處理上述問題成為迫切。
基于OLAP的智能分析方法是針對商業(yè)智能系統(tǒng)度量值變化貢獻率判斷問題,特提出的一種方法。
2技術(shù)方案原理 如圖1,以數(shù)據(jù)立方體作為輸入。對數(shù)據(jù)立方體的所有維度進行遍歷,每次處理一個維度(假定有n個維度)。Di表示維度i,Vijk表示在第i個維度的第j個層次的第k個變量。在第i個維度上,先通過向下鉆取提取維度下的第一層成員,然后選取貢獻率滿足條件(這里的條件是設定的某個閥值)的成員Vi1k并存儲這些節(jié)點,然后以Vi1k這些成員為基礎,向下鉆取下一層成員Vi2k,再判斷是否滿足指定的閥值,假設滿足條件的話,則存儲Vi2k,并在Vi2k的基礎上繼續(xù)向下鉆取。遞歸的終止條件是在某一層的所有成員的貢獻率低于指定閥值。該維度處理完畢,得到的結(jié)果是貢獻率滿足一定閥值的各個維度各個層次各個成員的集合N1。然后存儲N1。
第二輪的執(zhí)行過程為:將集合N1中某個維度i的所有層次的所有成員與其他維度j(Vj≠1)的所有層次所有成員進行鏈接得到集合N2,里面的成員為Vimn*V