从技术角度来讲 BI 包含了 ETL、DW、OLAP、DM等多环节。简单的说就是把交易系统已经发生过的数据,经过ETL工具抽取到主题明确的数据仓库中,OLAP后生成Cube或报表,透过Portal展示给用户,用户 利用这些通过分类、汇集、描述和可视化的数据,支持业务决策。java
这些众多的BI项目从规模和对BI系统支撑的完善程度上来讲,大致能够分为Framework、Stand-alone Tools和BI Suit三种类型。node
开源框架,这是在商业BI系统中所没有的。咱们可使用它们来构建本身的BI工具,或者加强和扩展咱们的BI解决方案。web
独立的BI工具,这是开源项目中数量最多的一类。不少工具只侧重BI系统中的某个环节和方面,如ETL、Report、OLAP和Database等等。数据库
在统一的架构下提供了多种BI系统的特性的工具集合。就目前的状况看,不论是商业软件仍是开源软件,尚未任何一个套件提供了完整的端到端的BI解决方案。这些开源的BI Suit是经过链接多个其余的组件和工具的方式造成套件的,因为BI系统涉及到的工具是很是多的,因此整合一套完整的BI解决方案是很困难的。apache
一个完整的BI解决方案中有多种工具来完成BI系统中各个阶段的工做。浏览器
数据抽取、转换和加载工具。优秀的ETL工具应该具备如下特性:缓存
目前较为知名的开源ETL工具备:服务器
优秀的报表工具一般具备如下特性:网络
目前较为知名的开源报表工具备:架构
联机分析处理工具。目前开源的OLAP工具也分为MOLAP(多维型)、ROLAP(关系型)和HOLAP(混合型),优秀的OLAP工具一般有如下特性:
目前较为知名的开源OLAP工具备:
开源的数据库也有不少,大多数为关系型数据库,少数为应用于数据仓库环境作了专门的优化工做。Bizgres以PostgreSQL为基础进行了数据仓库环境下的优化,提升了分析查询性能。
下面列出相对成熟和完整,而且有借鉴意义的开源BI套件。
Openi是一个Java开发的Web应用,能对OLAP服务器、关系数据库和数据挖掘服务器进行分析和报表展现,很是易于使用和部署,界面美观友好,后续还将支持数据挖掘和ETL等。Openi主要包括:
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主要包括:
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 集成了Mondrain和JProvit,可以经过OpenLaszlo产生实时报表。SpagoBI使用java开发,不依赖于具体的操做系统,有很强的扩展能力。它主要包括:
根据其Roadmap能够看出,SpagoBI将融入更多的BI功能,甚至BI以外的功能。
SpagoBI架构:
spagoBI平台功能很强大,也很复杂。
它的各个组件之间模块化很好,Plugin加载,来看一下它的各个组件:
report : BirtReportDriver , BirtReportEngine , JasperReportDriver ,JasperReportEngine;
GEO : GeoDriver , GeoEngine(用地图显示数据和查询的);
OLAP : JPivotDriver , JPivotEngine;
QBE : QbeDriver, QbeEngine ;
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;
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是很是之牛的。你能够看到它下面的数据处理层是单独分出来的。
Pentaho是一个以工做流为核心的、强调面向解决方案而非工具组件的BI套件,整合了多个开源项目,目标是和商业BI相抗衡。它包括:
由上可见Pentaho是一个很完善的BI解决方案。Pentaho偏向于与业务流程相结合的BI解决方案,侧重于大中型企业应用。
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)
Platform : Pentaho Planform
Data Mining: Weka (Weka也加入了pentaho)