前段时间看了下pentahoBI开源方案,对其架构的灵活性很是佩服,其中工作流(流程)的重要性在这个项目里面被提到前所未有的高度。接触过几个商业BI项目,感觉做的东西很零散,有哪儿做哪儿,很少形成一套整体的,可扩展性的,灵活的框架。现在JAVA实现的BI开源项目很多了,但.net领域的好象还没见过,失败,有朋友了解吗?顺便问问....,基于这个原因,开个帖子抛转引点玉,大家谈谈一些各自所了解的开源BI项目特点吧:)
支持BI的开源工具数量众多,但是大多数的工具都是偏重某方面的。例如,CloverETL偏重ETL,JPivot偏重多维分析展现,Mondrian是OLAP服务器。而Bee、Pentaho和SpagoBI等项目则针对商务智能问题提供了完整的解决方案。
ETL 工具
ETL开源工具主要包括CloverETL和Octupus等。
(1)CloverETL是一个Java的ETL框架,用来转换结构化的数据,支持多种字符集之间的转换(如ASCII、UTF-8和 ISO-8859-1等);支持JDBC,同时支持dBase和FoxPro数据文件;支持基于XML的转换描述。
(2)Octupus是一个基于Java的ETL工具,它也支持JDBC数据源和基于XML的转换定义。Octupus提供通用的方法进行数据转换,用户可以通过实现转换接口或者使用Jscript代码来定义转换流程。
OLAP服务器
(1)Lemur主要面向HOLAP,虽然采用C++编写,但是可以被其他语言的程序所调用。Lemur支持基本的操作,如切片、切块和旋转等基本操作。
(2)Mondrian面向ROLAP包含4层:表示层、计算层、聚集层、存储层。
● 表示层:指最终呈现在用户显示器上的以及与用户之间的交互,有许多方法来展现多维数据,包括数据透视表、饼、柱、线状图。
● 计算层:分析、验证、执行MDX查询。
● 聚集层:一个聚集指内存中一组计算值(cell),这些值通过维列来限制。计算层发送单元请求,如果请求不在缓存中,或者不能通过旋转聚集导出的话,那么聚集层向存储层发送请求。聚合层是一个数据缓冲层,从数据库来的单元数据,聚合后提供给计算层。聚合层的主要作用是提高系统的性能。
● 存储层:提供聚集单元数据和维表的成员。包括三种需要存储的数据,分别是事实数据、聚集和维。
OLAP客户端
JPivot是JSP风格的标签库,用来支持OLAP表,使用户可以执行典型的OLAP操作,如切片、切块、上钻、下钻等。JPivot使用Mondrian服务器,分析结果可以导出为Excel或PDF文件格式。
数据库管理系统
主要的开源工具包括MonetDB、MySQL、MaxDB和PostgreSQL等。这些数据库都被设计用来支持BI环境。MySQL、MaxDB和PostgreSQL均支持单向的数据复制。BizGres项目的目的在于使PostgreSQL成为数据仓库和BI的开源标准。BizGres为BI环境构建专用的完整数据库平台。
完整的BI开源解决方案
1.Pentaho 公司的Pentaho BI 平台
它是一个以流程为中心的、面向解决方案的框架,具有商务智能组件。BI 平台是以流程为中心的,其中枢控制器是一个工作流引擎。工作流引擎使用流程定义来定义在 BI 平台上执行的商务智能流程。流程可以很容易被定制,也可以添加新的流程。BI 平台包含组件和报表,用以分析这些流程的性能。BI 平台是面向解决方案的,平台的操作是定义在流程定义和指定每个活动的 action 文档里。这些流程和操作共同定义了一个商务智能问题的解决方案。这个 BI 解决方案可以很容易地集成到平台外部的商业流程。一个解决方案的定义可以包含任意数量的流程和操作。
BI平台包括一个 BI 框架、BI 组件、一个 BI 工作台和桌面收件箱。BI 工作台是一套设计和管理工具,集成到Eclipse环境。这些工具允许商业分析人员或开发人员创建报表、仪表盘、分析模型、商业规则和 BI 流程。Pentaho BI 平台构建于服务器、引擎和组件的基础之上,包括J2EE 服务器、安全与权限控制、portal、工作流、规则引擎、图表、协作、内容管理、数据集成、多维分析和系统建模等功能。这些组件的大部分是基于标准的,可使用其他产品替换之。
2.ObjectWeb
该项目近日发布了SpagoBi 1.8版本。SpagoBi 是一款基于Mondrain+JProvit的BI方案,能够通过OpenLaszlo产生实时报表,为商务智能项目提供了一个完整开源的解决方案,它涵盖了一个BI系统所有方面的功能,包括:数据挖掘、查询、分析、报告、Dashboard仪表板等等。SpagoBI使用核心系统与功能模块集成的架构,这样在确保平台稳定性与协调性的基础上又保证了系统具有很强的扩展能力。用户无需使用SpagoBI的所有模块,而是可以只利用其中的一些模块。
SpagoBI使用了许多已有的开源软件,如Spago和Spagosi等。因此,SpagoBI集成了Spago的特征和技术特点,使用它们管理商务智能对象,如报表、OLAP分析、仪表盘、记分卡以及数据挖掘模型等。SpagoBI支持BI系统的监控管理,包括商务智能对象的控制、校验、认证和分配流程。SpagoBI采用Portalet技术将所有的BI对象发布到终端用户,因此BI对象就可以集成到为特定的企业需求而已经选择好的Portal系统中去。
3.Bee项目
该项目是一套支持商务智能项目实施的工具套件,包括ETL工具和OLAP 服务器。Bee的ETL工具使用基于Perl的BEI,通过界面描述流程,以 XML形式进行存储。用户必须对转换过程进行编码。Bee的ROLAP 服务器保证多通SQL 生成和强有力的高速缓存管理(使用MySQL数据库管理系统)。ROLAP服务器通过SOAP应用接口提供丰富的客户应用。Web Portal作为主要的用户接口,通过Web浏览器进行报表设计、展示和管理控制,分析结果可以以Excel、PDF、PNG、PowerPoint、text和XML等多种形式导出。
Bee项目的特点在于:
● 简单快捷的数据访问;
● 支持预先定义报表和实时查询;
● 通过拖拽方式轻松实现报表定制;
● 完整报表的轻松控制;
● 以表和图进行高质量的数据展示。
----------------------------
http://www.chinabi.net/blog/user1/105/archives/2007/1376.html
一、Pentaho BI 平台介绍
Pentaho BI 平台不同于传统的BI 产品,它是一个以流程为中心的,面向解决方案(Solution)的框架。其目的在于将一系列企业级BI产品、开源软件、API等等组件集成起来,方便商务智能应用的开发。它的出现,使得一系列的面向商务智能的独立产品如Jfree、Quartz等等,能够集成在一起,构成一项项复杂的、完整的商务智能解决方案。
Pentaho BI 平台,Pentaho Open BI 套件的核心架构和基础,是以流程为中心的,因为其中枢控制器是一个工作流引擎。工作流引擎使用流程定义来定义在BI 平台上执行的商业智能流程。流程可以很容易的被定制,也可以添加新的流程。BI 平台包含组件和报表,用以分析这些流程的性能。目前,Pentaho的主要组成元素包括报表生成、分析、数据挖掘和工作流管理等等。这些组件通过J2EE、WebService、SOAP、HTTP、Java、JavaScript、Portals等技术集成到Pentaho平台中来。Pentaho的发行,主要以Pentaho SDK的形式进行。
Pentaho SDK共包含五个部分:Pentaho平台、Pentaho示例数据库、可独立运行的Pentaho平台、Pentaho解决方案示例和一个预先配制好的Pentaho网络服务器。其中Pentaho平台是Pentaho平台最主要的部分,囊括了Pentaho平台源代码的主体;Pentaho数据库为Pentaho平台的正常运行提供的数据服务,包括配置信息、Solution相关的信息等等,对于Pentaho平台来说它不是必须的,通过配置是可以用其它数据库服务取代的;可独立运行的Pentaho平台是Pentaho平台的独立运行模式的示例,它演示了如何使Pentaho平台在没有应用服务器支持的情况下独立运行;Pentaho解决方案示例是一个Eclipse工程,用来演示如何为Pentaho平台开发相关的商业智能解决方案。
Pentaho BI 平台构建于服务器,引擎和组件的基础之上。这些提供了系统的J2EE 服务器,安全,portal,工作流,规则引擎,图表,协作,内容管理,数据集成,分析和建模功能。这些组件的大部分是基于标准的,可使用其他产品替换之。Pentaho服务器组件是整套系统的基础,
下面做个简要介绍。
二、Pentaho服务器组件
Pentaho服务器由一个BI 平台和传送最终用户BI 能力的库组成。服务器运行于一个
J2EE 兼容的web 服务器(如Apache,JBOSS AS,WebSphere,WebLogic 和Oracle AS)
上。Pentaho 服务器使得BI 平台的很多功能以一种一致的,熟悉的外观和行为展示给用户。例如,一个组件产生了用户可以访问的报表列表,另一个以日历的方式列出了任务相关的最终期限,第三个显示了用户需要完成的当前任务。每个组件产生的内容
和每个用户的角色相关。Pentaho 服务器包含用于报表,分析,商业规则,email 和桌面通知以及工作流的引擎和组件。这些组件被集成在一起,用于解决商业智能问题。
在一个解决方案(Solution)中,每个子系统的行为,相互作用和用户交互被解决方案(Solution)定义文档的一个集合所定义。解决方案(Solution)定义文档是XML 文档,它包含:
业务流程的定义(XPDL标准)
活动的定义,这些活动按需作为部分流程执行,或被web 服务调用,其包含以下定义:
数据源,查询,报表模板,传送和通知规则,商业规则,仪表盘和分析视图。
以上所有的项之间的关系
服务器中的组件依赖于一个解决方案(Solution)引擎,可获得可用解决方案(Solution)
文档,安全支持,报表,工作流项,数据,和审计信息。在服务器上可以执行多于一个的解决方案(Solution)。解决方案(Solution)定义文档可从一个服务器复制到另一个,并可被自由分发。服务器包含如下部分:
高级系统管理的基础设施。这包括系统监控(SMNP)服务,使用报表,Web 服务支持,配置确认工具,和诊断工具。
高级流程性能报表和分析的系统和组件。这包括工作流任务上涉及到的工作流项目,单独任务,employees 和services 上属性的切片和切块(slice-and-dice),what-if 和数据挖掘能力。
支持Enterprise Application Integration (EAI),用于和operational 应用live集成,以及Extract, Transform, and Load (ETL) 能力,用于创建数据仓库和数据集市。
三、Pentaho软件层次结构
Pentaho平台是Pentaho运行系统中的核心部分,它本身是一个Web应用,部署于一个J2EE兼容的应用服务器上。它又作为Solution的服务器存在着,是Solution中各个Action序列的解释执行者。Pentaho平台大致可分为三个层次:界面层、核心层和插
件层。界面层是外部用户访问Pentaho服务的接口,主要包含三个部分:UDDI、Web页面、Navigation Component。UDDI为外部应用程序或Web Service访问Pentaho服务提供接口;Web页面则为用户通过浏览器访问Pentaho服务提供接口;Navigation Component实质上是一组Servelet,它主要用于显示当前部署在Pentaho平台上的Solution中所包含的
各个Action序列,用户可在其中选择需要执行的Action序列。
核心层主要由Solution Engine和它的Runtime环境组成。Solution Engine实质上是一个解释执行Action序列描述文件的解释器,它接收来自用户界面的请求,这个请求通常是要求执行Solution中的某个Action序列。Solution Engine连同其Runtime环境就负责解释执行这些Action序列。解释执行过程中,出于调试和性能分析的需要,引入了一个Audit机制,该机制类似一个日志记录系统,记录Pentaho平台运行过程中的一些动态过程。Solution Engine和Audit机制的运行都需要访问许多相关的数据资源,这些数据资源被称为"资源库",也就是图中的各个Repository。
插件层主要包括了集成到Pentaho平台中的各种BI产品,如Quartz、Jfree等等。从图3中可以看出,插件层又可分为两类模块,一类叫作Component模块,这种模块是插件层与核心层的接口模块,它们将各种不同的插件的功能以一个统一的接口提供给上层使用,起到一个功能抽象的作用。另一类则是形形色色的BI插件的具体实现,这通常由第三方开发者提供。各种插件运行过程中可能会用到自身的私有数据,这些数据在Pentaho平台中也被抽象成为资源库(Responsory),这使得不同的插件可以以一种统一的方式访问自己的数据。