這段時間,我們項目中采用JPivot+Mondrian架構(gòu)來解決項目中多維分析的需求,在研究過程中發(fā)現(xiàn)該東東有不少的缺點,大概羅列了一下,有如下11點:
1、 JPivot只能用于做OLAP分析,展示多維數(shù)據(jù)報表;對于水平表不能夠?qū)崿F(xiàn)。 處理辦法:使用BirtReport、JarseReport等開源報表來彌補JPivot的天然不足。 2、 JPivot有緩存處理機制,但是其緩存最大數(shù)未知。 3、 JPivot在遇到查詢無結(jié)果集時Mondrian會拋出錯誤信息,JPivot會捕獲這些異常,并且暴露在應(yīng)用前端,并且在不斷地嘗試數(shù)據(jù)庫連接,導(dǎo)致系統(tǒng)崩潰。 處理辦法:加一個錯誤提醒頁面,如果JPivot報出錯誤,則系統(tǒng)直接跳轉(zhuǎn)到錯誤提醒頁面。但是對于Mardrian不斷地嘗試數(shù)據(jù)庫連接問題一時難以解決。 4、 由于JPivot是通過wcf實現(xiàn)的標簽庫,在前端展示效果不美觀,如要改變必須修改大量的源碼。 5、 對于分析查詢結(jié)果不能實現(xiàn)分頁效果,如要改變,必須修改源碼,并且難度很大。 6、 在JPivot基礎(chǔ)上實現(xiàn)數(shù)據(jù)回寫難度大,要盡快安排人員來研究,對于數(shù)據(jù)回寫功能,要能識別是否是聚合數(shù)據(jù),對于聚合是不能回寫的。 7、 JPivot的所有功能操作都是保存在HttpSession 中。當我同時打開了連接jsp頁面,在A.jsp頁面上操作點擊了鉆取和圖表,再打開B.jsp頁面操作點擊行列轉(zhuǎn)換操作,那么在B.jsp頁面中顯示的就是有行列轉(zhuǎn)換和鉆取及圖表顯示效果。 8、 由于Mardrian多維分析是通過MDX多維表達式是實現(xiàn)數(shù)據(jù)邏輯模型描述,必須要定義xml文件,通過Schema來描述立方體的邏輯模型和物理模型的對應(yīng)關(guān)系。對于每個數(shù)據(jù)展現(xiàn)都要有取定義Schema描述,學(xué)習(xí)成本高。 9、 沒有完善的開發(fā)文檔、幫助手冊,遇到問題不能迅速解決。 10、使用JPivot和Mondrian,需要編寫DMX語句及Schema元數(shù)據(jù)模型,要求開發(fā)人員對OLAP數(shù)據(jù)模型、及數(shù)據(jù)倉庫思想、理論認識較高。學(xué)習(xí)成本高,只有相當熟練程度才能達到快速開發(fā)的目的。 11、JPivot、Mondrian沒有可視化的開發(fā)工具。 |
|