目前国内市场上的报表 BI 工具琳琅满目,看起来也各有特点,这给选型工作带来了一些困扰,本文就一些较活跃的报表 BI 产品进行点评,对于不太熟悉这些产品和技术的同学,可作为参考资料。
这里选了十个产品,分作四类:国内报表类,国内 BI 类,国外 BI 类,国外开源报表类。每类两三种产品,在分类内大体会按面市时间为序来点评。需要强调的是,因为篇幅有限,不可能把市场上所有产品都选入,这并不意味着其它产品不好,看到结论部分时就会理解。
这么分类是有意义的,同类产品大体具有相似的特征。其中,国内产品被分为报表和 BI 两类,并不是说这两种功能有矛盾。事实上,国内产品大都同时兼备两种功能。分开的原因是因为这些产品初期发布时的功能侧重点不同,经过多年完善,它们大都已经发展成了全功能产品,但初期侧重点的不同仍然会影响到产品理念乃至产品特征。
涉及产品和版本较多,可能局部会有错误疏漏,敬请谅解,欢迎指正。
【国内报表类】
报表工具可能是企业级通用软件中仅有的、国产软件能力远远超过国外软件的领域了。这大概是因为中国报表有着非常强烈的特色,从而造就了一批适应产品,而国外缺乏这个土壤,也就很难发展出这种能力了。
1. 润乾报表
润乾报表功能全面,涵盖报表、填报、BI 的各个方面,没有大块功能的缺失。 不过这也是国内大多数报表 BI 产品共同的特点。润乾报表最大特色是复杂报表的能力,润乾公司最早提出了用于解决中国复杂报表的非线性报表模型,直到现在,无论是功能还是性能,润乾报表在复杂报表方面仍然是业界最强者。
润乾报表自 2018 版开始集成了独立计算引擎。大多数报表工具是在报表中完成数据计算,而报表的计算能力和效率都相对较弱,不仅会因为要写复杂的 SQL 或存储过程导致开发困难,而且在数据量大或计算较复杂时还会带来性能和容量的问题,发生报表响应迟钝甚至内存溢出的现象。润乾报表则可以将取数及复杂关联运算等放到独立的计算引擎中,并提供了大数据量游标取数,这样即提高了开发效率,还能提高运算性能和数据容量,并真正支持了大数据报表。
润乾报表本来内核模型的计算能力就很强,性能也是多年来的优势,新版中又增加了计算引擎,在这方面又有了质的提升。
在计算引擎的支持下,还能让报表与应用的耦合性降低。复杂报表的修改常常涉及数据源逻辑,而有计算引擎时,这部分也可以在报表模板中完成,不需要像常规情况时必须修改应用程序中准备数据源的代码或者后台存储过程,从而可以做到全面的热切换。这是其它报表工具都无法提供的能力。
计算引擎中还集成了大量常见非关系数据源的接口,如 mongodb,hdfs,sap,…;这使得润乾报表天然能支持非常丰富的数据源类型。
润乾报表的 BI 界面中规中矩,拖拽、切片、钻取等都有提供,但老实说也没什么特别的,风格只能说很朴素(就是不够炫)。不过,在提交方式上却有与众不同之处,润乾报表的 BI 界面部分是开源的,这样不管是集成调用还是客户化的定制开发都会比较方便。因为润乾报表的理念定位是被集成,润乾把用于交互操作的 BI 组件都做成可以集成到第三方应用的页面的样子,而如果界面风格和操作方式需要再修改时,还进一步提供源代码。业界其它厂商则一般是提供可独立运行的 BI 系统,整体界面都是自己一套风格,基本没可能集成到其它应用的页面中,有修改也大都需要厂商介入。润乾虽然也有一个报表中心可以独立应用,不过功能细致程度一般,和其它专业做 BI 的产品相比显得有点简陋,不过好在它是开源的,用户可以进一步再开发。从这个意义上讲,润乾报表的 BI 挺适合用于 BI 教学,朴素风格和开源代码都有利于程序员进一步美化和封装。
说到 BI,润乾报表后台有个独特的 DQL 模型。多维分析时多表关联一直是个麻烦事,业务用户很难理解 JOIN,所以常常要技术人员事先建模,把 JOIN 拼进逻辑或物理宽表中;也有 BI 产品将 JOIN 关系暴露给业务用户,但业务用户只能理解最简单的情况,稍复杂的关联需求基本就没人会用了。DQL 模型则可以让业务用户以可理解的方式在界面上拼出非常复杂的关联分析,包括自关联都可以处理得很好。
润乾报表的 BI 本身没有提供自己的 CUBE,而是使用数据库,能执行灵活的关联查询,但大数据量时会受数据库性能的拖累。润乾有另一款集算器产品可以充当高性能 CUBE,但并不属于润乾报表,它可以为其它厂家的 BI 产品服务。本文不讨论这种专业 CUBE,就不分析下去了。
润乾报表的用户是程序员,界面的易理解性就不是重点。让接口更丰富以适应更复杂的环境和让程序员容易上手,这两方面本身有一定矛盾性。润乾的权衡点在前者,所以会有设置参数较多的问题,上手相对不易,但对于熟练的工程师也不是大问题。
2. 帆软报表
帆软报表也是功能非常全的产品,目前开发中遇到的各种关于数据展现方面的需求, 像复杂报表、填报、大屏、BI 等都有解决方案。当然,这些功能点在国内商用软件来说差别不太大,这里也没必要做过多的介绍了。</