本次选取了润乾报表、帆软报表及 smartbi,都是目前市场上主流的报表工具,对比报表工具处理大数据报表的性能。
简要结果对比表
解决机制对比
帆软
提供两种机制:行式引擎和新计算引擎。
行式引擎
借助分页 SQL 按页取数,访问哪页数据则取对应数据呈现。
缺点:
1, 只能支持关系库数据源
2, 翻页效率低
3, 每次执行的 SQL 不在同一个事务,可能出现数据不一致
另外,数据库也仅支持少数常见的,且部分库有版本要求,如 SQL Server 需要 2012 及以上,低版本需按产品要求手写复杂的分页 SQL;不支持分组报表。
新计算引擎
行式引擎的升级版,实际依然是通过分页 SQL 实现。主要解决行式引擎部分数据库需要手写分页 SQL 的问题,由按页取数改为按条数取数,另外支持了分组及带汇总的分组表。
缺点: 同行式引擎
smartbi
smartbi 只能借助数据库 SQL 分页,因此仅支持 SQL 数据源,且报表格式仅支持明细报表,该机制缺点同帆软。
润乾报表

润乾报表采用两阶段双异步线程的方式,将取数和呈现分为两个异步线程。以 SQL 数据源为例,取数线程发出 SQL 后,游标方式不断取出数据缓存到本地磁盘,同时由呈现线程从本地缓存中获取数据进行显示。这样,已经取出并缓存的数据就能快速呈现,不再有等待感;而取数线程所涉及的 SQL,在数据库中保持同一个事务,也不会有不一致的问题。
采用该机制,首页可实现秒级响应,缓存是在硬盘,内存占用小,可有效避免内存溢出。
另外,该机制同样支持非 SQL 数据源,包括文件数据源、noSQL 数据源、接口数据源等。
同时,报表格式上支持明细大报表、带汇总及分组大报表等,也支持对大数据量报表的导出查看。
缺点: 未完全加载完前,无法随意跳转页码(未计算的)查看(该功能对大数据报表来说,意义不大)。
用例
行式报表
雇员表
各报表工具模板设计过程基本类似且均没难度。
以下是在同浏览器访问,总数据量为 620 万条 *6 列,报表每页显示 30 行,多次测试算平均值的对比结果:
从测试数据来看,润乾的首页加载及翻页均为秒级响应,体验最好。帆软次之,但因行式引擎需要计算总条数分页,所以数据量大时首页加载很慢,且翻页方面也验证了分页 SQL 的劣势,前面还可秒级响应,但在查询靠后的页码时,翻页很慢,甚至有卡死的现象,总体上新计算引擎比行式引擎好一些。smartbi 表现最差,小数据量也仅凑活用,大了就没法用了。
分组报表
只有润乾正常使用,smartbi 不支持,帆软借助新计算引擎可以做,但在翻页时会卡死,体验太差,基本没法用。所以,这里只给结论,就不介绍用例情况了。
评测总结
总的来看,润乾在处理大数据报表需求时,借助于独创的两阶段双异步线程机制,方案及体验是最好的。帆软改进的新计算引擎,针对关系库的场景需求可选择。smartbi 整体表现太差,不太适合此类场景需求。
转载请注明:数据分析 » 主流报表工具对比之大报表




