传统报表应用二层结构
新型报表应用三层结构
一般技术人员都能做了,成本低,响应快
原来混在数据库或java里的数据准备工作独立开,单独维护,与应用程序和数据库解耦
报表模板与数据准备脚本,都可以使用高效工具实现
引入数据准备层后报表应用的体系结构,分成了数据准备和报表呈现两层
支持分步计算的可视化的开发环境,适合一般技术人员使用
示例某支股票最长连续涨了多少交易日?
1 | select max(连续日数)-1 from |
---|---|
2 | from (select count(*) 连续日数 |
3 | from (select sum(涨跌标志) over(order by 交易日) 不涨日数 |
4 | from (select 交易日, |
5 | case when 收盘价>lag(收盘价) over(order by 交易日) |
6 | then 0 else 1 end 涨跌标志 |
7 | from 股价表) ) |
8 | group by 不涨日数) |
a | |
---|---|
1 | =股价表.sort(交易日) |
2 | =0 |
3 | =a1.max(a2=if(收盘价>收盘价[-1],a2 1,0)) |
呈现工具化
解放报表呈现阶段人力
数据计算工具化
解放数据准备阶段人力
调整应用结构,梳理报表数据源,
实现报表模块与数据库及应用解耦
模块独立后可建设培训独立于应用开发团队外的低成本报表队伍应对多变需求
建设报表知识库论坛。减少沟通中的误解,实现历史工作的复用
使用集算器将报表开发由29个工作日缩短至2.25个工作日
使用集算器后代码量由3500行降到80行,开发时间缩短了11倍
使用集算器从vertica取数,计算后为birt提供数据支持,完全替代了硬编码实现过程
使用集算器代码量由4400行降到132行,开发时间由30人天缩短至6人天