【转帖】四种BI 开源工具介绍-SpagoBI,openI,JasperSoft,Pentaho

四种BI 开源工具介绍-SpagoBI,openI,JasperSoft,Pentaho

1 BI系统的简述

从技术角度来讲 BI 包含了 ETL、DW、OLAP、DM等多环节。简单的说就是把交易系统已经发生过的数据,经过ETL工具抽取到主题明确的数据仓库中,OLAP后生成Cube或报表,透过Portal展示给用户,用户 利用这些通过分类、汇集、描述和可视化的数据,支持业务决策。java

这些众多的BI项目从规模和对BI系统支撑的完善程度上来讲,大致能够分为Framework、Stand-alone Tools和BI Suit三种类型。node

  • Framework

开源框架,这是在商业BI系统中所没有的。咱们可使用它们来构建本身的BI工具,或者加强和扩展咱们的BI解决方案。web

  • Stand-alone Tools

独立的BI工具,这是开源项目中数量最多的一类。不少工具只侧重BI系统中的某个环节和方面,如ETL、Report、OLAP和Database等等。数据库

  • BI Suit

在统一的架构下提供了多种BI系统的特性的工具集合。就目前的状况看,不论是商业软件仍是开源软件,尚未任何一个套件提供了完整的端到端的BI解决方案。这些开源的BI Suit是经过链接多个其余的组件和工具的方式造成套件的,因为BI系统涉及到的工具是很是多的,因此整合一套完整的BI解决方案是很困难的。apache

2 BI解决方案中的工具

一个完整的BI解决方案中有多种工具来完成BI系统中各个阶段的工做。浏览器

2.1 ETL工具

数据抽取、转换和加载工具。优秀的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来链接各类数据源,易于使用和部署。曾有人应用于电信网络资源分析系统中。

2.2 报表工具

优秀的报表工具一般具备如下特性:网络

  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格式的报表,它提供了核心的报表功能。

2.3 OLAP工具

联机分析处理工具。目前开源的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)。

2.4 数据库

  开源的数据库也有不少,大多数为关系型数据库,少数为应用于数据仓库环境作了专门的优化工做。Bizgres以PostgreSQL为基础进行了数据仓库环境下的优化,提升了分析查询性能。

3 开源BI套件

下面列出相对成熟和完整,而且有借鉴意义的开源BI套件。

openI

Openi是一个Java开发的Web应用,能对OLAP服务器、关系数据库和数据挖掘服务器进行分析和报表展现,很是易于使用和部署,界面美观友好,后续还将支持数据挖掘和ETL等。Openi主要包括:

  1. OLAP展现:JPivot
  2. 报表工具:JFreeChart
  3. 分析数据源链接器

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主要包括:

  1. JasperServer:为商业用户的互动,特定和预设查询与报告服务器
  2. JasperAnalysis:为商业用户的互动提供OLAP数据分析
  3. JasperETL:开发人员和数据库管理员的高性能的图形数据整合
  4. JasperReports:开发人员所用的Java报表函数库

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 集成了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以外的功能。

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

Pentaho是一个以工做流为核心的、强调面向解决方案而非工具组件的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解决方案,侧重于大中型企业应用。

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)
Platform : Pentaho Planform
Data Mining: Weka  (Weka也加入了pentaho)

官方站点

相关文章
相关标签/搜索