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