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

1 BI系统的简述

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

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

  • Framework

开源框架,这是在商业BI系统中所没有的。我们可以使用它们来构建自己的BI工具,或者增强和扩展我们的BI解决方案。

  • Stand-alone Tools

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

  • BI Suit

在统一的架构下提供了多种BI系统的特性的工具集合。就目前的情况看,不管是商业软件还是开源软件,还没有任何一个套件提供了完整的端到端的BI解决方案。这些开源的BI Suit是通过连接多个其他的组件和工具的方式形成套件的,由于BI系统涉及到的工具是非常多的,所以整合一套完整的BI解决方案是很困难的。

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)

官方站点

【转帖】四种BI 开源工具介绍-SpagoBI,openI,JasperSoft,Pentaho的更多相关文章

  1. sentinel的四种流控规则介绍

    sentinel的四种流控规则介绍 今天的内容我们主要围绕四个点进行展开介绍. 流控模式 :关联.链路 流控效果 :Warm Up.排队等待 这四点具体是什么意思呢? 首先启动项目:cloud-ali ...

  2. Android查缺补漏(IPC篇)-- Bundle、文件共享、ContentProvider、Messenger四种进程间通讯介绍

    本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8387752.html 进程间通讯篇系列文章目录: Android查缺补漏(IP ...

  3. Vue 封装axios(四种请求)及相关介绍(十三)

    Vue 封装axios(四种请求)及相关介绍 首先axios是基于promise的http库 promise是什么? 1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的 ...

  4. Hive四种数据导入方式介绍

    问题导读 1.从本地文件系统中通过什么命令可导入数据到Hive表? 2.什么是动态分区插入? 3.该如何实现动态分区插入? 扩展: 这里可以和Hive中的三种不同的数据导出方式介绍进行对比? Hive ...

  5. 十四种Java开发工具点评

    在计算机开发语言的历史中,从来没有哪种语言象Java那样受到如此众多厂商的支持,有如此多的开发工具,Java菜鸟们如初入大观园的刘姥姥,看花了眼,不知该何种选择.的确,这些工具各有所长,都没有绝对完美 ...

  6. 013-HQL中级3-Hive四种数据导入方式介绍

    Hive的几种常见的数据导入方式这里介绍四种:(1).从本地文件系统中导入数据到Hive表:(2).从HDFS上导入数据到Hive表:(3).从别的表中查询出相应的数据并导入到Hive表中:(4).在 ...

  7. activity的四种加载模式介绍

      四种加载模式的介绍: a) Standard : 系统默认模式,一次跳转即会生成一个新的实例:    b) SingleTop : 和 standard 类似,唯一的区别就是当跳转的对象是位于栈顶 ...

  8. android:Activity四种启动模式简单介绍

    Activity启动模式 能够依据实际的需求为Activity设置相应的启动模式,从而能够避免创建大量反复的Activity等问题 Activity有四种载入模式 1.standard(默认启动模式, ...

  9. 页面中CSS的四种引入方式的介绍与比较

    转自:https://blog.csdn.net/qq_38689666/article/details/79039392 一:行内式 <p style="color:red" ...

随机推荐

  1. C++函数模版

    如果对于两种不同类型的数值进行比较,可能会写出以下的代码: int compare(const string &v1, const string &v2) { if (v1 < ...

  2. Ajax跨域请求ashx文件与Webservice文件

    前台页面: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1 ...

  3. 制作DIP Package及DIP焊盘制作,不规则焊盘制作

    DIP的焊盘制作: 1.启动Pad Designer. 2.New一个焊盘,取一个名字.圆形通孔长方形pad4_0r2_3cir1_5md,圆形通孔正方形pad4_0sq2_4md,圆形通孔圆形pad ...

  4. Win2012R2的一个Bug---安装群集后可能引发的软件崩溃问题及相应补丁

    如标题,笔者查阅资料发现微软声称安装故障转角色后就可能发生上述描述问题,但不止于SSMS崩溃.建议使用win2012R2的朋友安装补丁. 笔者在部署win2012R2+Sql2014 cluster时 ...

  5. 个性二维码开源专题<前背景>

    //设置图片资源 private Image imgAgo; public override void SetParam() { base.SetParam(); // 读取前背景 string _i ...

  6. swoole

    http://www.swoole.com/wiki/index/prid-1-p-project/road_map.html

  7. Atitit. 构造ast 语法树的总结attilax v2 q0f

    Atitit. 构造ast 语法树的总结attilax v2 q0f 1. Ast结构树形1 2. ast view (自是个160k的jar )2 2.1. 多条语句ast结构2 2.2. 变量定义 ...

  8. paip.解决 数据库mysql增加列 字段很慢添加字段很慢

    paip.解决 数据库mysql增加列 字段很慢添加字段很慢 #环境如下: mysql5.6    数据仅仅3w alter table xxx add column yyy int default ...

  9. paip.汉字简化大法总结

    paip.汉字简化大法总结 作者Attilax  艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/attilax ...

  10. paip.信用卡账单处理分类bug o21

    paip.信用卡账单处理分类bug o21 cmb 惠众04年度10/12    insure gdb 零售利息    itrst gdb    2013-10-5    97.5    int   ...