怎样做到报表热切换?
报表热切换(热部署)是指修改后的报表无需重启应用就能生效。通常报表工具开发的模板(解释执行的)可以做到热切换,关键是报表数据准备环节。如果数据准备使用存储过程或 Java 因为需要编译才能运行,往往无法做到热切换,而复杂报表业务又经常会采用这些手段,因此会面临热切换实现难题。
使用集算器 SPL 可以彻底解决报表热切换的问题。集算器是一款开源数据处理引擎,擅长结构化数据计算,计算类库丰富可以满足复杂报表数据准备工作。同时,esProc 支持多种数据源(RDB、NoSQL、Json、CSV、Webservice 等),还可以实现跨数据源的混合计算。
集算器提供了独立的计算语法 SPL 可以分多步完成报表数据准备工作,重要的是,SPL解释执行可以很好实现报表数据源热切换。
SPL 的语法很简洁,比如:
根据股票记录表查询股价连续上涨超过 5 天的股票及上涨天数(股价相等记为上涨)并以报表呈现。
A |
||
1 |
=db.query("select * from stock_record order by ddate") |
|
2 |
=A1.group(code) |
|
3 |
=A2.new(code,~.group@i(price |
计算每只股票的连续上涨天数 |
4 |
=A3.select(maxrisedays>=5) |
选出符合条件的记录 |
同样的计算使用 SQL 要嵌套多层才能完成,敏捷的 SPL 语法在实现复杂计算时优势明显。
此外,集算器可以作为嵌入式 JDBC 与报表工具集成使用,报表工具通过 JDBC 方式访问 SPL 计算结果,就像访问数据库一样。
解释执行的呈现模板(报表工具)+ 解释执行的数据准备(集算器)才能最终实现报表热切换。