【评测】哪款是你心目中最佳的开源报表工具?

译文
运维 系统运维 开源
Pentaho比JasperReports和Eclipse BIRT略胜一筹,本文测评了用于制作报表的三款开源工具:Eclipse BIRT、JasperReports和Pentaho的社区/开源版本。我们的测评重心放在易用性、数据访问、平台支持、报表制作以及Web发布上。

[[146463]]

我们始终在关注替代价格不菲的商业软件的开源软件,想知道开源报表工具能不能与久负盛名的商业产品相媲美。为了这次测评,我们选择了三款常用报表工具:Eclipse BIRTJasperReportsPentaho的社区/开源版本。我们的测评重心放在易用性、数据访问、平台支持、报表制作以及Web发布上。

我们发现,说到设计报表,这三款产品的可服务性都非常好,甚至达到了企业级标准。所有这三款工具都具有跨平台功能,这让它们适合大多数环境。***的区别在于用来发布报表的方法以及最终用户访问它们的方式。

Pentaho俨然是我们的宠儿,两大强项是易于访问一系列广泛的数据源和易于发布报表,这两项任务会让报表管理员头痛不已。Pentaho还有一个界面整洁、易于导航的GUI和一系列出色的社区附件。我们唯一的抱怨是,我们发觉报表设计器和服务器的性能都有点慢腾腾,即便我们提供了非常充足的资源。

JasperReports号称是世界上***的开源报表引擎,我们能够明白原因所在。无论在报表设计方面还是服务器方面,它都拥有丰富的功能特性。Jasper最近改用JasperStudio作为***的报表设计;而且与Pentaho一样,提供了与水晶报表(Crystal Reports)和SQL Server报表服务等商业产品不相上下的工具集。服务器有一个新颖的Web GUI以便访问报表,还提供了用于设计报表的众多模板,既可以设计Web报表,又可以设计打印报表。

Eclipse BIRT提供了强大的报表设计功能,一款类似向导的单页工具提供了制作新报表的核心功能。它还提供了逐步说明文档,可以逐步带你领略最常用的功能。BIRT通过其API提供了良好的应用程序整合功能,但它并不提供用于访问报表的指定服务器产品。

至于从浏览器轻松调用报表,我们测试的这三款产品没有一款提供了简单直观的解决方案。它们都需要相当全面的配置、设置各个权限等,之后才能在网页里面查看报表。

为了解答这个问题:这些工具能不能取代企业界的商业产品,我们发现它们有这个潜力,只是你要明白一点:它们并不拥有商业产品的所有功能;可能需要具备更多的专业知识、花更大的力气才能安装和运行它们。

下面是每款产品的测评:

几款开源工具的优缺点

 

Jasper

Pentaho

Eclipse BIRT

优点

内置模板,报表设计器很棒。

单行示例数据集让用户易于预览报表。易于将报表发布到Jasper服务器。

易于将报表发布到服务器。新颖的服务器用户界面、易于安装和规范的说明文档。提供了多个第三方插件。

出色的应用程序整合功能,强大的 

报表设计器,内置了指导性的逐步说明文档。

缺点

服务器Web GUI导航本可以做得更直观一点。社区版缺少许多功能特性。

报表设计器和服务器方面性能有点慢腾腾。

没有发布报表的指定服务器,充分

利用数据库存储过程和视图中已有的业务逻辑的功能相当有限。

 

三者的共同点:需要全面的配置,才能在报表服务器环境外面嵌入/查看报表。

1.JasperReports

JasperReports运行在Java 1.6或更新的版本上,具有跨平台功能,支持LinuxWindowsMac等平台。我们在干净安装的Windows服务器上测试了6.01社区版,使用了与JRE版本1.8上的JasperApache TomcatPostgreSQL)相捆绑的组件。我们还决定安装捆绑的示例PostgreSQL数据库,它含有报表所用的示例数据。

安装后,Jasper界面装入到浏览器中,你可以登录、开始使用。我们先从默认的管理员登录信息入手,然后创建了一个新的帐户。我们发现,用户界面很新颖,易于导航,非常整洁。由于我们安装了示例数据库,立马注意到,有几个预先发布的示例报表以不同的类别列出来,既有基本的列表报表,也有较为复杂的报表类型(包括条形图和饼状图)。

然而,为了制作自己的报表,你就需要报表设计器。在过去,***的设计器一向是iReport Designer;虽然Jasper保证到2015年会支持iReport Designer,但它已宣布JasperStudioJasperReports的“官方客户软件”。

掌握了这些信息后,我们下载了JasperStudio的***版本(6.0.4)。基于Eclipse开发平台,它可以作为Eclipse的插件来运行,也可以作为独立式应用程序来运行。Jasper Studio能够发布采用诸多常见格式的报表,比如HTMLPDFXLSXMLOpenOfficeMS WordRTFCSV及其他格式。与服务器一样,JasperStudio也提供跨平台支持,在Java JRE上运行,不过需要完整的Java SDK,才能发布这家厂商所说的调用报表脚本小程序。

JasperStudio的工作区布局不赖;凡是用过水晶报表或SQL Server报表服务等商业产品的人用起来都得心应手,因为它使用熟悉的术语和类似的布局。制作新报表时,报表向导为你提供了这个选项:从模板或空白报表开始入手,用于制作打印报表或Web报表。为了制作我们的***个测试报表,我们制作了打印报表,使用了预制模板以及用示例数据库构建的自定义视图。我们使用JDBC驱动程序连接到PostgreSQL数据源,JDBC驱动程序是安装系统自带的。

选择了数据集后,你就可以选择将哪些字段添加到报表,以及使用哪个或哪些字段进行排序。报表向导会按照它认为合理的顺序来排列数据字段,不过一旦向导完成了一系列任务,我们就能自行对报表做些自定义改变。

我们能够找到商业报表制作器理应拥有的几乎所有工具,从基本的“日期”和“页数”字段,到较复杂的特性(比如报表参数、自定义图表和子报表),不一而足。可以预览报表,看看它们看起来怎样,没必要将报表发布到服务器。

一旦报表设计完成,它就可以发布到Jasper服务器。这通过多步骤过程来完成:先选择服务器(我们只有一台服务器),然后浏览到想要发布报表所在的文件夹,之后选择数据源。数据源可以是已经可以从软件库获得的数据源,也可以是本地数据源。我们发布了报表后,回过头来登录到Web GUI,查看报表。报表以文件夹的方式组织排列,因而浏览起来一目了然。一旦在服务器上生成了报表,它就能导出成众多格式。

JasperReports提供了一款非常强大的报表解决方案,既借助服务器,又借助新的JasperStudio报表设计器。Web GUI处的导航可以做得更直观一点;比如说,不是一眼就能看出你需要选择报表项以便编辑。如果为打印报表和Web报表提供节省时间的预制模板,用户只要在设计方面花极少的精力,就能够开始顺利地设计报表。我们还喜欢单行测试数据功能,让你不用连接到数据源,就可以制作报表。

虽然将Jasper报表发布到Jasper服务器简单直观,但是在服务器框架外面(比如在网页里面,或者作为应用程序的一部分,你不希望用户在运行报表时非得提供登录信息)访问报表却完全是另一码事。虽然Jasper给出了提供匿名访问的操作说明,但是步骤有点过于复杂。我们发现需要从Web GUI更改配置文件和多个设置对于一款其他方面非常易于使用的产品来说有点过于笨拙了。

#p#

2.Pentaho

Pentaho套件提供了一系列商业智能工具,在企业版和社区版中都有它。社区版是开源的,采用了GPLv 2许可证。Pentaho目前已被日立数据系统公司收购,不过该公司声称,它致力于长期维护社区版。与本文测评的其他产品一样,Pentaho也具有跨平台功能,既有服务器本身,又有大多数各种各样的工具集。

Pentaho的核心是商业分析/智能(Business Analysis/Intelligence)服务器;我们先安装了版本5.3。不像企业版是个干净的整体式安装程序包,社区版需要在底层进行多一点的调整/改动,才能安装和配置。不过,借助几个互联网搜索结果和在线教程,我们很快将测试服务器搭建并运行起来。一旦安装完毕,Pentaho服务器就从Web GUI来加以管理,该GUI提供了类似仪表板的界面,赏心悦目,我们觉得易于导航。你可以从仪表板管理大多数与报表相关的任务,并且访问额外资源(比如说明文档、博客和论坛)。

Pentaho并不提供以便查看的任何示例报表,不过随带几个示例文件夹,让你了解报表可以如何组织管理,比如按用户或按部门组织排列。报表通常从设计器发布、直接从Web界面发布,还可以使用命令行实用工具来上传报表文件。

Jasper一样,服务器只管理已发布的报表,所以你仍需要有一种方法在客户端设计和发布报表。为此,我们使用了Pentaho Report Designer版本5.3。一旦安装完毕,Report Designer提供了这个选项:使用报表向导,或者用你自己的设计从头开始做起。有几个模板可以使用,我们发现这些模板外观上有点过时,但是起码还能使用。

你很容易制作自己的XML报表模板,或者使用第三方模板。成功连接到数据源似乎总是报表工具所面临的***挑战,但是Pentaho借助令人印象深刻的内置数据库连接器列表,有助于简化这项任务:既有标准的数据库连接器(比如MySQLOracleSQL Server),也有已过时的HP Neoview,甚至还有一些以前的主力数据库连接器:AS/400dBase III。每个连接器都有自己的配置屏幕,显示了连接类型所必需的字段,包括使用的常见端口号。Pentaho还提供了一组测试数据,它们让你可以由此开始设计报表。

一旦报表准备就绪,它就可以发布到本地或远程Pentaho服务器上的软件库。将报表发布到服务器是相当简单的两步骤过程,每次都能顺利无阻地进行,这是一大优点。一旦报表发布到了服务器,它就能以几种不同的格式来查看,HTMLPDF是最便于阅读的格式。此外,报表可以保存并导出成几种常见格式,比如PDFRTFHTMLCSVExcel

想访问Pentaho报表,最容易的方式就是从Web浏览器GUI来访问。通过各种帐户配置,报表可供群组或个人使用。报表还可以按指定时间表来运行,提供定期报表,或者符合可用性方面的其他要求。

还有许多Pentaho社区工具可以使用,大多数工具既与社区版兼容,又与企业版兼容。值得一提的一个工具是CTools,这是一系列组件和工具,作为Pentaho的附件而使用。Ctools拥有诸多特性,比如图形生成器、仪表板编辑器、数据访问定制以及Pentaho开发框架。

我们抱怨的一个主要方面就是,Pentaho运行起来有点慢,即便在配备四核处理器、内存充足、使用千兆以太网的服务器级机器上也是如此。在典型台式机上运行的报表设计器也是同样一种情况。不过总的来说,我们觉得Pentaho安装、配置和运行起来很容易。说明文档很完备,服务器和报表设计器对于新手和专家来说同样界面直观。可以轻松、可靠地发布报表是一大优点。

3.Eclipse BIRT

BIRT是一款开源技术平台,用于报表和数据可视化。它是所谓的***项目,由Eclipse基金会设立。Eclipse具有跨平台功能,可在Java上运行。为了这次测试,我们使用了Eclipse版本4.4.2。万一你没有预先安装Eclipse,有一个一体式程序包可供下载。这是我们测试的选项,不过你也可以将所需的BIRT插件添加到现有的Eclipse开发环境。

Eclipse安装和配置完毕后,我们就准备构建***个报表了。报表设计器在Eclipse中以所谓的“透视图”的方式显示。报表设计器装入后,实际上调出了Eclipse的报表部分;这里有几个选项,比如开始新的报表项目,或者新的报表设计。我们首先选择了使用新的报表设计,BIRT为一小批选项提供了图形和交叉表。选项种类繁多:从空白报表或基本的入门模板,到复杂一点的其他模板,不一而足。

大多数用户将使用JDBC驱动程序连接到数据源,但是你也可以创建自己的连接脚本,或者连接到其他数据源,比如扁平文件和XML。如果你想在连接到自己的数据源之前试用一下报表设计器,BIRT随带一组测试数据。

一旦连接到我们的数据库:SQL Server数据库,就有了这个选项:构建SQL查询以检索数据,或者使用现有的存储过程。我们使用类似向导的屏幕创建了一个简单的SELECT语句,我们发觉这个语句蛮有帮助,因为它让你一眼就能看清各个列、参数和数据输出。由于数据集已到位,我们将***几个数据元素拖放到报表表面上。报表可以预览或者导出成几种常见格式,包括PDFWordOpenDocument,以及HTMLWeb查看器中标注页码的HTML

不像PentahoJasperReportsBIRT并不提供单独的服务器好让你将报表发布到那里。相反,BIRG报表通常使用API,嵌入在Java应用程序中。还有一个Web报表查看器,可供Eclipse平台使用;对Java EE服务器而言,还能充当独立工具。

除了使用面向EclipseBIRT插件外,还可以使用BIRT RCP Report Designer,这是一款较轻型的独立式报表设计器。开发人员可以构建和导入各种报表插件,以定制报表。

BIRT的强项在于能够通过Eclipse报表引擎(Eclipse Report Engine)与应用程序整合起来。这让开发人员可以将BIRT运行时环境整合到应用程序中。报表引擎的生成模块使用Report Designer生成的XML定义,检索和处理进入到所生成报表的数据,同时显示模块为用户提供了从应用程序里面显示报表的诸多方式。

然而,由于没有像JasperReportsPentaho那样的服务器Web界面,BIRT在企业实施方面有点不尽如人意;在企业实施环境下,人们需要独立式报表解决方案,能够按部门和用户来限制访问,并且提供服务器具有的其他灵活性。

BIRT是一款综合的报表设计器,作为更庞大的Eclipse开发环境的一部分而存在,这是个优点,因为开发人员能够将报表设计作为更庞大的应用程序开发的一部分而整合起来。我们的测试安装系统包含翔实的内置教程,附有完成各项任务的逐步说明。

原文标题:Review: Best open source reporting tools

责任编辑:火凤凰 来源: 51CTO
相关推荐

2020-12-24 07:49:28

报表工具JimureportFinereport

2012-03-05 20:57:46

Siri

2015-07-16 16:10:27

渠道华为

2020-11-17 08:58:32

开源工具报表

2022-01-27 11:43:43

python开发

2016-03-21 11:16:42

Bruce ByfieLinux发行版

2016-03-21 09:35:20

Linux发行版DatamationLinux

2021-01-04 09:52:35

Git开源报表工具

2020-11-17 16:22:45

开源工具报表

2021-07-27 06:02:44

JavaScript开发代码

2014-08-21 10:49:42

Win9微软

2015-05-27 11:03:16

OpenStackCoreOSPaaS

2017-07-07 15:58:13

互联网

2015-08-13 15:01:24

Linux发行版

2018-01-19 14:25:18

游戏

2017-02-14 11:28:29

互联网 报表

2020-11-23 09:47:39

技术资讯

2020-12-25 10:35:42

编程语言C语言Java

2017-11-20 09:46:08

python爬虫Scrapy

2009-07-31 12:59:21

Java报表工具
点赞
收藏

51CTO技术栈公众号