第6期:我們需要怎樣的OLAP?
被狹義化的OLAP
OLAP是商業智能應用中重要的組成部分,這個詞從字面上理解是在線分析的意思,也就是由用戶,特別是業務人員,面對數據進行各種分析操作。
但是,現在的OLAP概念被嚴重狹義化了。說到OLAP,基本上僅指多維分析,也就是針對一個事先建設好的數據立方體,按指定維度層次進行匯總并呈現成表格或圖形,再輔以鉆取、聚合、旋轉、切片等操作以變換維度層次及匯總范圍。多維分析的基本思路認為,直接觀察大范圍統計值過于粗略,無法精確定位問題,需要剝繭抽絲似地對可能有問題的大范圍統計值一步步鉆取到更細層次,以達到分析目的。
更廣義的OLAP過程
多維分析就是在線分析的全部嗎?
我們來考察這樣一種數據分析過程。
任何一個行業中有多年工作經驗的從業人員一般都會對自己從事的業務產生一些猜測,如:
股票分析師會猜測滿足某種條件的股票容易上漲;
公司經理對哪些銷售員擅長對付難度大的客戶心里會有數;
班主任也大概知道偏科同學的成績都有什么特征;
…
這些猜測是預測的基礎。業務系統運行一段時間后會積累出大量數據,這些猜測就很可能被這些積累的數據驗證,證實了則可作為一種規律性的結論,用于指導下一步的動作,證偽了則再重新猜測。
這才是在線分析應該做的事情!基本的動作就是猜測和驗證,其目的是從歷史數據中找到規律或支撐某些結論的論據。而在線分析軟件要做的事情,就是幫助業務人員針對數據去驗證猜測。
這里需要注意的是,這些猜測都是由有經驗的業務人員做出的,而不是軟件系統!之所以需要在線,是由于許多猜測都是業務人員看到了某個中間結果后臨時想出來的。不可能也不需要事先設計端到端的完整路徑,也就是無法建模。而且由于其臨時性,業務人員在驗證猜測時也無法借助技術人員的能力。
技術上,就是需要讓業務人員有能力對數據進行靈活交互式的查詢和計算。比如結合上面舉的例子,用戶要完成的計算可能是這樣的:
這個月內連漲3天的股票,第4天還繼續上漲的比率有多大?
哪些半年不出單的客戶在更換了銷售人員后半年就出單了?
語文和數學成績都在前10名的學生,英語成績排名是怎樣的?
…
多維分析的局限
顯然,上述計算都可以由歷史數據計算出來,但是,用多維分析技術能實現嗎?
恐怕不能!
多維分析在技術上有兩個不足:一是立方體要事先準備,業務用戶沒有臨時設計和改造立方體的能力,一旦有新的分析需求則必須重建立方體;二是立方體上可實施的分析動作單調,只有鉆取、聚合、切片、旋轉等少數幾種,難以完成多步驟的復雜計算行為。近年來流行的敏捷BI產品都有多維分析功能,在操作的流暢性和界面的炫麗度都較早期OLAP產品有較大的提升,但本質功能并沒有變,該不能算的還是不能算。
多維分析確實能夠得到一些有益的信息,比如經常舉的例子,成本過高時可以精確定位出到底是哪個部門和業務造成的。但是,多維分析卻得不到前述例子中我們希望從數據中獲得的規律性結論,而畢竟有了規律性結論才能預測并指導工作。從這個意義上講,把在線分析僅僅理解成多維分析是不完整的。
我們需要怎樣的OLAP?
用于規律發現(更確切地說是規律驗證)的OLAP軟件應當是什么樣的呢?
前面說過,從技術上講,規律驗證可以看成是一種針對數據的查詢和計算過程,其關鍵點在于這種過程可以由業務人員自由定義,無須技術人員參與。結合當前的應用環境,我們認為這種OLAP應當具體這樣兩種功能:
1. 關聯查詢
分析的***步是獲取數據。許多企業都有建設好的數據倉庫,可由業務人員自行查詢。這里強調關聯的意義在于,絕大多數軟件都不能很好地讓業務人員實現帶有關聯的查詢需求,必須事先由技術人員建模消除關聯(類似多維分析的立方體建設),而業務人員的需求常常超過事先建模的范圍,又必須求助于技術人員,這樣就使在線分析的基礎不存在了。
2. 交互計算
有了數據后就是計算。這種計算的特點在于要根據上一步的結果臨時決定下一步動作,不能事先設計程序,所以必須是交互式的,很象計算器的模式。另外,這里需要計算的數據都是批量的結構化數據,而非簡單的數值,區別于普通數值計算器,可以把這個功能形象地稱為數據計算器。Excel在一定程度上就擁有這種能力,使得它事實上成為應用最廣泛的桌面BI工具。不過Excel對于多層次數據和有規則操作支持還不夠好,難以完成前述例子中的計算過程。
那么,該如何妥善地提供這兩個功能呢?這不是一兩句話能解釋清楚的,需要仔細分析現有技術手段的細節,找出問題所在后加以改進,我們將在后續文章中會陸續涉及。