用finereport做一个大屏
大屏在公司越来越常见了,我认为最大的作用还是更及时的发现生产过程中的问题,大屏的选择有很多,比如公司的前端可以自己开发下,或者用报表软件开发,tableau或者帆软都行,还有直接购买外面成熟的大屏产品,比如阿里云的datav。我们公司是买的帆软,report也可以实现这一功能,就用这个做了。
一、数据源问题
先说下数据源的问题,互联网公司有一定规模,实现实时数据监控还是有一定开发工作的,大屏只是个结果,过程还有很多工作要做,离线数仓系统冗余了很多信息,实时的和批任务处理结果完全保持一致还是不太容易的,我们公司规模不大,流处理基本没上,所以用的还是mysql的业务从库作为数据源,每隔一分钟刷新一次;如果规模大点,直接刷mysql不太刷的动,需要流任务先处理成分钟级的汇总数据,再写到mysql,几乎没见到直接用大数据计算引擎的,比如impala或presto这种,应该是稳定性考虑。
二、报表内容设计
大屏主要展示哪些内容,还是要跟业务契合点,是领导或者同事在乎的东西,不能为了做而做。基于此,主要放日活,流水,各业务线流水,近14天相同时段流水,今日每分钟流水数据,商品销售榜,商户销售榜这8部分的数据。
三、数据连接
把需要的数据sql和参数选好
四、确定下各个位置放哪些内容
大屏就那么大,需要分下主次,我用的最普通的结构,中间放主要的数据,两边放次要的数据,类似下面datav这种形式
我采用的是如下的形式:
左上是日活,中间是流水分数字显示,其他的占比就是饼图,波动就是曲线,然后确定下每个块的大小
五、调整图的样式和配色
帆软的这个能调整的东西还是很多的,坐标轴和字体大小啥的,然后就是设置背景,再根据背景调整各个图的配色,大屏用蓝色背景的比较多,配图要跟着调整一下,看起来更专业点,然后不断预览结果修改细节的地方。最后设置下报表自动刷新的东西。
六、效果图
七、总结
整体来说难度不大,很考验审美,调配色真是个主观的东西,但是内容有了就能达到90分,其他配色啥的是90->95分的水平,有了大屏是雪中送炭,更华丽是锦上添花;还有就是流和批完成一致还是有难度的,比如我们的流水数据我知道可能会有那么一点点误差。