开源BI系统简述
1. 概述
开源的BI项目在在2005年之前并没有太大的发展,到了2005年才开始呈现繁荣之势,并在2006年蓬勃发展。这些众多的BI项目从规模和对BI系统支撑的完善程度上来说,大体可以分为Framework、Stand-alone Tools和BI Suit三种类型。
l Framework
开源框架,这是在商业BI系统中所没有的。我们可以使用它们来构建自己的BI工具,或者增强和扩展我们的BI解决方案。
l Stand-alone Tools
独立的BI工具,这是开源项目中数量最多的一类。很多工具只侧重BI系统中的某个环节和方面,如ETL、Report、OLAP和Database等等。
l BI Suit
在统一的架构下提供了多种BI系统的特性的工具集合。就目前的情况看,不管是商业软件还是开源软件,还没有任何一个套件提供了完整的端到端的BI解决方案。这些开源的BI Suit是通过连接多个其他的组件和工具的方式形成套件的,由于BI系统涉及到的工具是非常多的,所以整合一套完整的BI解决方案是很困难的。
一个完整的BI解决方案中有多种工具来完成BI系统中各个阶段的工作。
数据抽取、转换和加载工具。优秀的ETL工具应该具有以下特性:
1、 Workflow Management, Job Execution and Scheduling Manager。能方便地定义流程并自动化执行ETL任务。
2、 Centralized Metadata Repository and Management。集中存储和管理符合业界标准的元数据。
3、 Data Profile and Validation。可以检验数据的质量。
4、 High Performance。在大负荷的任务执行中仍然有良好的性能。
5、 Scalable, Platform Independent。具有良好的弹性,支持多种操作系统和数据库系统,能操作多种异构的数据源。
6、 Open Architecture and API。具有开放的架构和易于使用的二次开发接口。
目前较为知名的开源ETL工具有:
1、 KETL,由具有IBM和KPMG背景的Kinetic Networks公司开发,现在已经有三年多的产品应用历史,成功应用于一些产品中,在点击流(ClickStream)分析应用中表现出色。KETL采用Plug-in的架构,使用Java开发。
2、 KETTLE,为一个元数据驱动的ETL工具。已经加入Pentaho。
3、 Clover ETL,为一个基于Java的ETL Framework,可以用来开发自己的ETL应用。
4、 Enhydra Octopus,为一个基于Java的ETL工具,使用JDBC来连接各种数据源,易于使用和部署。曾有人应用于电信网络资源分析系统中。
优秀的报表工具通常具有以下特性:
1、 支持多种数据源。
2、 直观的可视化设计器,简单易用的报表定制功能。
3、 方便的数据访问和格式化,丰富的数据呈现方式。
4、 符合数据呈现的通用标准,能和应用程序很好地进行结合。
5、 易于扩展和部署。
目前较为知名的开源报表工具有:
1、 JasperReports,一个优秀的Java报表工具,始于2001,现在JasperSoft公司持续开发和支持该工具。该工具类似于商业软件Crystal Report,支持PDF、HTML、XLS、CSV和XML文件输出格式,现在是Java开发者最常用的报表工具。
2、 OpenReports,提供基于web的灵活报表解决方案,通过浏览器自动生成动态PDF,XLS,HTMLCSV 和Chart报表,它是用Java开发的,使用JasperReports 作为报表引擎,利用到的开源技术有Hibernate,Veloctiy,Webwork。
3、 JFreeReport,现在是Pentaho的一部分,它是一个优秀的用来生成报表的Java类库。它为Java应用程序提供一个灵活的打印 功能并支持输出到打印机和PDF, Excel, HTML和XHTML, PlainText, XML和CSV文件中。
4、 Eclipse BIRT,是Eclipse下面的一个企业智能和报表 工具,能为J2EE的WEB应用程序创建漂亮醒目的PDF或者HTML格式的报表,它提供了核心的报表功能。
联机分析处理工具。目前开源的OLAP工具也分为MOLAP、ROLAP和HOLAP,优秀的OLAP工具通常有以下特性:
1、 良好的执行性能,能快速地进行分析处理工作。
2、 良好的适用性和可伸缩性。
3、 开放式接口和丰富的API。
目前较为知名的开源OLAP工具有:
1、 Mondrian,是Pentaho的一部分,为一个用Java开发的OLAP服务器,实现了MDX语言、XML解析和JOLAP规范,可以不写SQL就能分析存储于SQL 数据库的庞大数据集,可以封装JDBC数据源并把数据以多维的方式展现出来。
2、 JPivot,是一个JSP 自定制的标签库,可以绘制一个OLAP表格和图表。用户可以执行 典型的OLAP导航,如下钻,切片和方块。它使用Mondrian 作为其OLAP服务器。它使用WCF (Web Component Framework) ,基于XML/XSLT来渲染Web UI组件。JPivot在元数据缓存方面的过于简化的整体性初始化装载的做法将限制它只能处理很小的立方体(Cube)。
开源的数据库也有很多,大多数为关系型数据库,少数为应用于数据仓库环境做了专门的优化工作。Bizgres以PostgreSQL为基础进行了数据仓库环境下的优化,提高了分析查询性能。
下面列出相对成熟和完整,并且有借鉴意义的开源BI套件。
为GreenPlum公司主导的开源项目,和Sun公司达成合作关系。Bizgres为BI应用而对PostgreSQL做了优化,提高了大负荷的并行计算能力,在BI环境中,相对于普通的关系型数据库具有卓越的数据处理性能。Bizgres的数据库平台可以和KETL和JasperReports进行整合,从而形成一个BI套件:
1、 数据库:BI专业数据库Bizgres,或者大型应用中的高性能服务器Bizgres MPP,能比普通关系数据库快20倍
2、 ETL工具:KETL
3、 报表工具:JasperReports
是一个Java开发的Web应用,能对OLAP服务器、关系数据库和数据挖掘服务器进行分析和报表展示,非常易于使用和部署,界面美观友好,后续还将支持数据挖掘和ETL等。Openi主要包括:
1、 OLAP展示:JPivot
2、 报表工具:JFreeChart
3、 分析数据源连接器
是一个以工作流为核心的、强调面向解决方案而非工具组件的BI套件,整合了多个开源项目,目标是和商业BI相抗衡。它包括:
1、 工作流引擎:Shark and JaWE
2、 数据库:Firebird RDBMS
3、 集成管理和开发环境:Eclipse
4、 报表工具:Eclipse BIRT
5、 ETL工具:Enhydra/Kettle
6、 OLAP Server:Mondrian
7、 OLAP展示:JPivot
8、 数据挖掘组件:Weka
9、 应用服务器和Portal服务器:JBoss
10、 单点登陆服务及LDap认证:JOSSO
11、 自定义脚本支持:Mozilla Rhino Javascript脚本处理器
由上可见Pentaho是一个很完善的BI解决方案。Pentaho偏向于与业务流程相结合的BI解决方案,侧重于大中型企业应用。
SpagoBI 集成了Mondrain和JProvit,能够通过OpenLaszlo产生实时报表。SpagoBI使用java开发,不依赖于具体的操作系统,有很强的扩展能力。它主要包括:
1、 报表工具:JasperReports /Eclipse BIRT/ iReport
2、 OLAP Server:Mondrian
3、 OLAP展示:JPivot
4、 数据挖掘组件:Weka
5、 Map引擎:Geo
6、 ETL:BIE
7、 搜索引擎:Lucene
8、 Dashboard:OpenLaszlo
9、 Portal Server:JBoss/ Tomcat/ JOnAS
根据其Roadmap可以看出,SpagoBI将融入更多的BI功能,甚至BI之外的功能。