数据可视化大屏被广泛地应用到多种业务场景,比如集团经营驾驶舱、智能运营中心、应急指挥中心、安全监控中心、物业监控中心、交通物流调度中心、金融交易中心等等。
确实,深有感触,作为一个开发过300多张报表的工程师(俗称表哥),这两年发现业务提的需求,关于可视化得越来越多,一些驾驶舱、数据大屏的需求更为尤其。
做一张大屏要花费近一个月,做技术也总是吐槽小白们喜欢“花里胡哨”。但在业务和高层看来,这种主题式的,罗列业务核心关键指标,实时反应动态,确实是监督业务的一种好方式。
我之前在一家证券公司做过几张数据大屏。通过数仓将数据从源业务系统采集下来,数据清洗梳理后以报表的方式生成报表展示,统计成交额、成交量、开户数、消户数等重点指标形成一个运营监控大屏。
因为券商和银行每日有很重要的对账,每日转出转入多少资金,对于监控银证业务非常有用,每一笔有没有超时,有的客户说到账率慢,这个可以很好的监控出来,而且已经做到了实时监控。
大屏挂在业务部门,领导过来一看就知道今天交易情况如何,营销运营效果如何,这个对于高层领导来说是很有意义的。
那么如何开发数据大屏?
网上铺天盖地的说辞,但凡是能做图表的都会说能做大屏。
这里只是说了前端,实际开发,数据从哪来?如何汇总,数据的口径,指标的定义,数据的实时性刷新率,用哪些硬件设备,大屏如何设计,还有性能等后端问题都是需要考虑的。我是做技术的,就从技术角度来说说。
常规的数据可视化方法我们可以选择直接读取数据库,通过绘图软件/库进行绘制,深入写html、css、js 代码,在过程中引入Echarts、Hicharts等流行的可视化,然后设计、适配最终构成自建的前端显示效果。
除此以外,追求效率可以选择成熟的可视化平台,比如SaaS化的阿里DataV,还有BI报表套件FineReport。这类套件往往具有一系列的图表模板+支持推拽且可视化的配置页面,方便我们快速地构建出可视化大屏。
还有一种是找外包开发定制,但实际开发无非也就是上述技术。
如果是企业内部自行开发,或者专为甲方批量定制,建议采用效率较高的报表工具来开发,比如FineReport。
原因一:前端呈现效果基本能覆盖
大屏的可视化呈现效果是整个项目的门面,内部经常把大屏项目称为“一把手项目”,因为看或使用大屏的往往是企业的高层决策人员,所以其呈现效果和个性化程度自然要求更高。
大屏数据展现,本质上还是驾驶舱页面,由表格、图形、控件等元素组成,每个元素都可以视作是一个单独的组件。
大屏的可视化,本质上还是驾驶舱页面,由表格、图形、控件等元素组成,自然想到市面上各种开源而丰富的库。
但是以我实际项目经历,大部分常规业务大屏用到的都是常见的基本图形,如柱状及其柱状图、折线图、饼图及其复合图形;配以地图、指标卡、文字组件、动态的表格数据轮播等;另外一些特定模型场景,如生产车间,生产模型可能会用到高级的三维立体图形,以及一些3D轮播动效等。
这些报表工具FineReport基本能满足,自己本身自带五六十种图表样式,配置有钻取、联动、高亮、轮播、滚动等动态特效。
更何况提供了一个可视化开发的平台,拖拉拽组件构建,基本零代码。个性化的图表需求,如工业3D,园区3D,GIS地信等项目,提供完整接口直接对接专业图表或插件。
相比如代码开发,数据传递,构建画布,设计布局,缩放组件,组件动效等都需要一行一行代码开发,回头适配硬件时还要一个个调。
另外,大屏需要投到LED电子屏上,不同屏幕的分辨率往往不同,这就需要在开发的时候针对分辨率进行调整以保证呈现效果,这个是最费时间的,以前用代码定制基本要话50%的时间去调试。
这一点FineReport有针对大屏的自适应布局,减轻了不少开发工作量。这个机制,设计一次模板,即可支持PC、平板、手机、大屏等多终端自适应展示。
原因二:后端有数据和平台性能保障
大屏的数据哪里来,怎么保持其准准确性,如何围绕业务核心指标梳理数据,这些一般需要后端有数据仓库进行来做后盾保障。
比如我碰到过一个项目需要同时要从多个数据来源中取数,并且还要做关联计算,大屏页面他们已经设计好,但是数据却取不上来,原因是没有后端保障啊。
数据没有整合,数据未ETL清洗,有的数据源甚至没有直接的接口需要文件导入。
另外,数据大屏实时显示的刷新频率很高,这就要求后台的数据处理能力足够强以确保前端数据变化的频率可以满足需要。
有时大屏还需要显示实时数据,这时就需要历史数据(往往存在数据仓库)和实时数据(生产系统)进行混合计算后高效输出到大屏进行呈现。
所以大屏做为一个数据前端应用一方面要能对接得了数据仓库或大数据平台,另一方面也需具备计算响应数据的高性能。
试问,一个定制开发的大屏需要对接1000万级的数据,刷新一个组件要10分钟,多么影响效率,若还要在后端开发适配性能,这个工作量和成本还不如直接用报表工具。
所以说像FineReport这类本身就是支持对接各种数据平台的工具,既具备前端报表可视化制作的能力,也具备后端数据计算引擎,能对接得上高性能、大数据,何乐而不为呢?
原因三:开发效率和维护成本相对低
上述有提过,用报表工具FineReport开发数据大屏效率高,主要体现在:
操作拖拽零代码:
画布式界面,组件拖拽式操作,可实现组件内刷新(局部刷新),支持组件隐藏,支持组件堆叠,且不同组件扩展独立。
多种布局方式:自适应布局,绝对布局,Tab布局,支持多tab轮播,
提供多种图表、控件、表格等组件,不同组件可对应不同主题,绑定不同数据源,实现多维分析型管理驾驶舱
最后
总的来说,大屏要想做得好,前端效果主要靠定制开发,后端性能要选择适合的工具。随着大屏越来越常规化,开发效率以及数据性能保障都是除可视化之外更重要的因素。
如果你们公司有数据仓库或数据平台的基础,在完善报表体系的同时,不妨用报表来开发数据大屏。