蔣步星:自助報表難自助,敏捷BI欠敏捷
這里有點標題黨,為了對仗把題目寫成這樣。其實自助報表和敏捷BI深究起來是一回事,都是希望業務人員自己能完成數據分析和呈現,叫得通俗些是自助報表,洋氣一些就是敏捷BI了。
經營分析軟件中大都會提供豐富的固定報表,能夠處理較復雜的計算需求,但畢竟死板。業務經營中常常會有臨時性的數據分析需求,傳統手段一般提交給技術部門去實現,這樣顯然周期長效率低,有時獲得結果時已經失去意義了。如果能讓業務人員自己做分析和呈現,那無疑會極大地提高決策效率,這就是敏捷BI產品主打的目標。
問題是,這個目標能達到嗎?
如果用于分析的基礎數據事先已經準備好,然后使用這些數據制作交互式的報表或圖形并組合出管理看板(Dashboard),目前許多敏捷BI產品的功能都還不錯,界面也比較友好,業務人員一般都能夠操作起來,這也是敏捷BI在演示階段能吸引住用戶的主要原因。不過,在已經獲取了相關數據時,敏捷BI能做的許多事用Excel也能做得很好(美觀程度要差一些),在很多場合下再專門上一套敏捷BI系統的必要性并不大,或者說Excel就是足夠好用的敏捷BI產品了。
而且,大多數時候,數據并沒有準備好,獲取數據本身就是靈活分析中最關鍵的步驟。它是后續動作的基礎,也是幾乎所有敏捷BI產品(如果Excel也算的話也可包括在內)都不夠“敏捷”的環節。
關系數據庫是當前數據存儲的事實標準,特別是有分析需求的帶業務含義的結構化數據。從數據庫取獲取數據要用SQL語句,實際上發明SQL的初衷就是想讓業務人員能用來查詢數據,所以它很象英語。確實,對于單個表的常規查詢(過濾、計算列、分組匯總)問題并不大,業務人員即使不會寫,也容易做個可視化的界面輔助“編輯”出來。
但是,有意義的查詢經常是多表關聯的,比如取出存儲余額10萬以上的本地儲戶,獲得北京打到上海的電話記錄,按月統計合同額、回款額、發票額,….。關系代數對數據表關聯的處理方式是業務人員很難理解的,表間關系是個網狀結構,要指定關聯字段,還可能涉及到自關聯遞歸關聯等復雜情況。關聯表較多或層級較深時連技術人員都很難掌握,三五個關聯表的數據關系就足以使業務人暈掉,這時候界面再炫麗操作再流暢都無濟于事了。
怎么辦?只能由技術人員事先準備數據,把關聯表做成邏輯或物理的單表,這就是所謂的“數據建模”。一旦有新的關聯需求,就需要技術人員重新建模。這種搞法,“自助”和“敏捷”就無從談起了。
糟糕的是,這個問題還是理論上的,只要數據庫的數據組織和關聯描述方式不變,或者說只要仍在關系代數的體系下,這件事就無解!敏捷BI產品在界面環節無論如何努力都是徒勞。
敏捷BI雖然是個新詞,但涉及的內容并不新鮮,以前的OLAP產 品也是瞄這個目標去的,可以說敏捷BI就是OLAP換個馬甲后再加強了呈現能力。應用OLAP產品時也一樣碰到這個問題,也一樣無法解決,也只能是事先準備好死板的CUBE,有新關聯需求時再重建新CUBE。有個別公司產品能根據數據類型做一些自動關聯,但碰到同維關聯(很常見)或自關聯時仍然沒有辦法。國內BI界當時有個詞叫shelfware,就是用來形容這種中看不中用的OLAP產品。廠家人員開玩笑說賣的不是software,而是買來就被扔進柜子不再動的shelfware。在演示階段讓用戶產生極大的期望以為真能讓業務人員自己分析,實際用起來完全不是那回事,結果都會淪為報表工具在用(報表工具對“淪”字表示不爽)。這是購買OLAP或現在敏捷BI產品的一個大坑!
不過,也不是完全沒有辦法。雖然無法在當前數據庫理論體系下通用地解決這個問題,我們卻可以在工程方面通過行業化的手段來緩解,這也是敏捷BI產品的合理出路。用事先獲得的行業知識可以把數據項之間的關聯關系固化到程序界面中,業務用戶在選擇某些數據項時,程序已經知道這些數據項之間的最常見關系,就會大概率地建立出正確的關聯。比如我們知道通信業務中一般都用電話號碼把其它信息串起來,也知道手機號中已包含有一些業務信息。利用這些知識可以簡化關聯路徑的尋找,有了行業知識后的敏捷BI產品就可能真地“敏捷”地應對業務人員的關聯需求了。
類似地,現代敏捷BI產品一般都還有業務人員制作管理看板(dashboard)的功能。顯然,用戶要的不會只是在一個界面上擺上幾個固定不變且毫無關系的圖表,而會要求這些圖表之間可以聯動,并且有統一的參數來控制。這又是另一種關聯:圖表之間的關系,圖表與參數的關聯。讓業務人員去理解這種抽象的關系是不現實的,實現一個通用的看板制作功能恐怕也只能給程序員去用了。而如果有行業知識,就可以事先知道行業內常用的圖表間關聯以及參數,直接做死,業務用戶不必關心抽象問題,只負責擺放即可。
但是,這需要了解每個行業甚至每個用戶的數據特征和術語習慣,而這些知識換個行業甚至用戶就很大可能性不再適用了。這樣,敏捷BI不再是一個通用產品,而是一個服務型的解決方案。
這就對了!
所以,實施BI項目,國內廠商比國外廠商的實際效果要好,因為能提供定制化服務;而對BI技術不是特別熟悉的行業集成商能做得更好,因為他們有深刻的行業和用戶知識。國外品牌看著是很炫,但廠商沒能力提供本地化服務,又因為集成性差也難以讓第三方代勞,結果實施效果大都很差,也就是再進一步詮釋shelfware而已。