怎样降低报表的开发成本?

 

报表开发主要有两部分工作,一是报表数据准备,将原始数据加工成报表能用的结果集,这步通常使用 SQL、存储过程、Java 等方式实现;二是报表数据呈现,将已加工好的数据以图表方式呈现出来,这步通常使用报表工具来完成。

随着报表工具的成熟,使用报表工具完成报表数据呈现效率已经很高,即使很复杂的报表使用诸如润乾报表这样的工具也可以快速实现,一般报表开发人员就能胜任,因此这步由于报表工具的红利开发成本已然很低了。

现在报表开发成本主要集中在数据准备上,越复杂的报表需要花费的成本就越大。要知道复杂 SQL 和存储过程不是一般报表开发人员能搞定的,这部分工作往往会转嫁到 DBA 等高级数据库技术人员身上,不仅编写周期长,人员成本也很高,报表开发成本自然不低。

使用 Java 做报表数据准备也面临同样的问题,一般报表开发人员不会写 Java,就要应用程序员介入,成本同样很高。而且 Java 代码一般和主应用部署,报表的维护工作也要由主应用运维人员参与,更加推高报表的运维成本。并且,随着前后端分离、微服务等架构技术的流行,越来越多的数据准备工作转移到 Java 中完成更是加剧了这种情况。

如何降低报表数据准备的成本从而降低整体报表开发成本呢?

从报表数据呈现技术的发展过程可以得到一些参考,历史上使用硬编码(Java)画报表效率极低,后来出现了报表工具很好解决了这个问题。报表开发工具化是解决这个问题的关键。那么报表数据准备也要工具化

集算器 SPL 就是这样一个专门用于报表数据准备的计算工具,开源免费,可以放心使用。借助集算器的敏捷语法 SPL 可以快速完成报表数据准备,一般报表开发人员就能胜任,让报表数据准备也工具化,加上报表工具(数据呈现)可以让整个报表开发过程工具化,从而降低报表开发成本。

集算器 SPL 提升数据准备效率,降低开发成本主要原因在于以下几方面。

SPL 敏捷语法

SPL 语法相对 Java 以及 SQL 更有优势,完成复杂计算只需要按照自然思维分步编码就可以实现。SPL 内置了大量结构化数据计算函数,数据处理算法实现也很简短。

比如根据月度销售额表查询每次第一个月比上季同月的增长额,及销售情况(有些月可能无数据)。SPL 写法:


A

1

=db.query(“select * from sales”).align@1([1,4,7,10],smonth)

2

=A1.new(#:month,amount,amount-amount[-1]:growth)

实现简单除了开发效率高,带来的另外一个好处就是使用门槛低,一般报表开发人员就能使用,相比依赖 DBA 和专业应用程序员成本更低。

多数据源支持

集算器 SPL 支持多种数据源(RDB、NoSQL、Json、CSV、HDFS、RESTful 等),还可以实现跨数据源的混合计算。试想一下,报表开发时不需要将数据从一个数据源 ETL 到数据库,不用搬来搬去开发效率能不提高、开发成本能不降低吗?

热切换

SPL 解释执行,支持热切换。以往复杂报表要依赖存储过程或 Java 实现,这些都要编译后才能生效,对于频繁多变的报表业务不支持热切换 / 热部署是非常不方便的,基于 SPL 就可以轻松实现热部署,进一步降低报表开发运维成本。

在与报表工具结合方面,集算器 SPL 可以作为嵌入式 JDBC 与报表工具集成使用,报表工具通过 JDBC 方式访问 SPL 计算结果,就像访问数据库一样。

报表数据准备工具化(集算器)+ 报表数据呈现工具化(报表工具)= 极低的报表开发成本!