这段时间,我们项目中采用JPivot+Mondrian架构来解决项目中多维分析的需求,在研究过程中发现该东东有不少的缺点,大概罗列了一下,有如下11点:
1、 JPivot只能用于做OLAP分析,展示多维数据报表;对于水平表不能够实现。 处理办法:使用BirtReport、JarseReport等开源报表来弥补JPivot的天然不足。 2、 JPivot有缓存处理机制,但是其缓存最大数未知。 3、 JPivot在遇到查询无结果集时Mondrian会抛出错误信息,JPivot会捕获这些异常,并且暴露在应用前端,并且在不断地尝试数据库连接,导致系统崩溃。 处理办法:加一个错误提醒页面,如果JPivot报出错误,则系统直接跳转到错误提醒页面。但是对于Mardrian不断地尝试数据库连接问题一时难以解决。 4、 由于JPivot是通过wcf实现的标签库,在前端展示效果不美观,如要改变必须修改大量的源码。 5、 对于分析查询结果不能实现分页效果,如要改变,必须修改源码,并且难度很大。 6、 在JPivot基础上实现数据回写难度大,要尽快安排人员来研究,对于数据回写功能,要能识别是否是聚合数据,对于聚合是不能回写的。 7、 JPivot的所有功能操作都是保存在HttpSession 中。当我同时打开了连接jsp页面,在A.jsp页面上操作点击了钻取和图表,再打开B.jsp页面操作点击行列转换操作,那么在B.jsp页面中显示的就是有行列转换和钻取及图表显示效果。 8、 由于Mardrian多维分析是通过MDX多维表达式是实现数据逻辑模型描述,必须要定义xml文件,通过Schema来描述立方体的逻辑模型和物理模型的对应关系。对于每个数据展现都要有取定义Schema描述,学习成本高。 9、 没有完善的开发文档、帮助手册,遇到问题不能迅速解决。 10、使用JPivot和Mondrian,需要编写DMX语句及Schema元数据模型,要求开发人员对OLAP数据模型、及数据仓库思想、理论认识较高。学习成本高,只有相当熟练程度才能达到快速开发的目的。 11、JPivot、Mondrian没有可视化的开发工具。 |
|