四个开源商业智能平台比较(五)
lumi 问JPivot能否单独使用,不能,根据其主页上的描述, JPivot is a JSP custom tag library that renders an OLAP table and let users perform typical OLAP navigations like slice and dice, drill down and roll up. It uses Mondrian as its OLAP Server. JPivot also supports XMLA datasource access.
换句话说,它必须使用一个OLAP的服务器做后台,大多数选择Mondrian,当然,JPivot也支持XMLA的数据源,我不太清楚除了SQLServer外还有谁是的。
要使用JPivot就必须使用多维数据表,我想你们公司应该是普通OLTP的数据表,那么就需要ETL工具了,工作量恐怕也非常之大。
JPivot在展示向上钻取和向下钻取的功能需求时是否比较方便?
是的,非常的方便,JPivot是一个JSP custom tag,你要需要指定数据源和写一个xml的描述文件就可以了,它本身是很简单,问题是前面的步骤。
你 说你们的SQL有40M我一点也不惊讶,我们公司小的也差不多有10多M,从20多个表取数据,如果什么都选的话,会有50多M,顺便问一句,你计算出有 40多M是用的P6SPY吗?我是用这计算的,用TOAD格式化的时候没有死机,其实这个大小很平常的,不过速度倒是差到了不行,最近我当了回DBA把 oracle优化了一下,硬盘空间只给我30G,没空间你叫我怎么做优化,我们公司developer用的机器是512M内存跑oracle, eclipse ,tomcat,toad,这种配置的确让我很无奈。不过报表最后速度还算可以接受,大概1分钟不到可以Run出一个Excel的报表6 worksheet,每个worksheet数据大概在6K到2W左右,哦,对了,我们还使用了线程,run excel的时候,是弹出一个单独的窗口来run的。
普通的报表跟BI的报表是完全不一样的,所以不知道还有什么能帮你的,希望你早日脱离苦海,也祝我自己早日脱离苦海。阿弥陀佛
这次要比较的是四个平台的体系结构,
首先看openI的体系结构:
RDL是Report Define Language
openI具有一个BI应有的大部分特性了,
report : jasperreport ,JFreeChart
olap : mondrian + JPivot
data mining: weka
它的各层衔接的非常的紧,好像用了eigenbase做数据管理,不是很清楚这部分,openI在做数据挖掘的时候它没有调度器,它的Portlet Interface 主要是指在用JPivot的时候JPivot可以到处使用
openI没有自己的开发专属工具,入门门槛也相对较低。
JasperSoft
JasperSoft最重要的就是它的报表,但是它支持输出的格式很多,管理的方式也很多,也用了eigenbase做数据管理。
有比较完善的权限控制,用的acegi,
支持多种数据源,只要有JDBC驱动。
它的产品已经形成了一个产品线,最著名当然还是它的JasperReport。
你可以看到它为了更好的管理各种报表和数据,有自己专属的展现平台JasperServer,这个平台是 06/26/2006才创建的,完全是JasperSoft为了实现BI而迈出的重要一步。jasper没有数据挖掘。
有任务调度器,用了quartz。
有自己专属的ETL: JasperETL
它有自己的OLAP SERVER : jasperAnalysis
展示层用到了AJAX和applet, 也有DashBoard。
查询语句支持SQL, Hibernate (HQL), XPath (XML), EJBQL, MDX(多维查询语言,OLAP专用,SQLSERVER用的是XMLA)
SpagoBI
spagoBI平台厉害很多,也复杂了很多。
它的各个组件之间模块化很好,Plugin加载,来看一下它的各个组件:
report : BirtReportDriver , BirtReportEngine , JasperReportDriver ,JasperReportEngine
GEO : GeoDriver , GeoEngine(用地图显示数据和查询的)
OLAP : JPivotDriver , JPivotEngine
QBE : QbeDriver, QbeEngine (以前学Hibernat的时候记得总是说QBE功能很弱,不知道这个这么说 )
Data Mining : WekaDriver , WekaEngine
Security : ExoPortalSecurityProvider
Booklet (小册子) : BookletsComponent: it is a component for booklets generation.主要包括文件上传,工作流,OpenOffice支持。
它还有文档管理,用的是apache的JackRabbit,有搜索功能,用的lucene.不愧是做cms,portlet,workflow出身的,技术就是牛。
spagoBI的使用的工具也比较多:
Report : Bird , JasperReport
ETL : Octupus 和 talend (talend是官方合作伙伴,顺便说一句,官方主页好像打不开,www.talend.com ,我是直接在sf.net上搜索然后下载下来的)
OLAP : Mondrian 和 JPivot
Data Mining : Weka
Portal : eXoPortal
它 的展现层也使用了AJAX特性,另外它在DashBoard也使用了openlaszlo,(一个用Java code 生成Flash的框架,主页是http://www.openlaszlo.org/。新版的4.0好像也要支持生成DHTML) 所以spagoBI的DashBoard看上去很爽.
spagoBI的ETL是非常之牛的。你可以看到它下面的数据处理层是单独分出来的,至于为什么牛,我在后面ETL部分会专门提到的。
还有一些很细节的东西,想BIPortlet,BIMessage , Notify ,Schedule , Workflow ,Rule Engine ,Profiling ,Analytical Document 我会在后面尽量把我知道的说一下。
pentaho
pentaho的体系结构跟spagoBI非常相像,我甚至都没看出来有上面很大的区别,
不过pentaho喜欢把自己的东西称作solution,以下引用自pentaho的whitepaper:
pentaho BI 平台不同于传统的BI产品。它是一个以流程为中心的,面向解决方案的(Solution)的框架,具有商业智能(BI)组件,使得公司可以开发商业智能问题的完整解决方案
pentaho一样把数据处理层看的很重要,多种数据显示方式,甚至有RSS输出。
pentaho是有各种开源组件组成的。
ETL : Kettle (界面上显示的是pentaho Data Integration ,previously Kettle)
Report : Pentaho Report (它也支持Birt 和 JasperReport 的集成 ,还有专门的文档)
OLAP : Mondrian 和 JPivot (Mondrian已经加入了pentaho , 估计pentaho跟JPivot有仇,双方互看对方不爽,所以JPivot没有加入pentaho,呵呵,看玩笑)
Platform : Pentaho Planform
Data Mining: Weka (Weka也加入了pentaho)
下一篇介绍他们的roadmap ,你一定会发现惊奇的事情的。