怎么做数据可视化大屏?从设计到上线,一般用这3类工具
数据可视化大屏成为了这两年很火爆的一个需求。
一方面,不少甲方都想做这么酷炫的大屏,用于公司展厅、日常经营监控,还有些特殊行业如交通、运输、工厂制造,会做更高级的3D建模等。
另一方面,市面上可提供做大屏的技术、工具和厂商层出不穷,似乎能和数据搭上边的都能做大屏。
大屏真的像一些文章说的神乎其技吗,真的那么低门槛零成本?
如果是这样,我作为一个做技术,尤其是做了十几个大屏项目实施,也不会秃头了......
先来说说几个误区。
误区一:网上看到的绝大部分大屏都是效果图
效果图和实际图最大的区别就是效果图都是静态的,实际实施时需要适配屏幕分辨率,比如字体能否自适应大小。一些动态展示如3D旋转以及图表空间和数据刷新的速率也无法看见,基本上实际图做出来会和效果图差那么一两成。
再者啊,这个效果图很多在线网站,图表插件都可以直接设计出,像我们在做项目前也需要美工帮出几版效果图,所以你无法通过效果图来判别厂商的专业度尤其是实施能力。
误区二:认为大屏仅是前端技术?NO!
数据从哪里来,是读业务数据库还是建立中间库,数据更新的频率要求是什么,数据质量有无问题还要先做底层数据处理?
硬件方面,需要明确大屏的尺寸、种类、驱动大屏的主机?
业务方面,大屏展示什么指标和维度,业务分析逻辑谁来支撑?
这些都是要考虑的。
误区三:大屏成本低,零代码实现?NO!
据我所知,一个大屏项目十几万是常有的事,上千万的大屏项目我也见过。
大屏的成本除去前端设计和定制还有硬件费用,一个大屏硬件都是十几万、几十万起步。另外有一些智慧城市、制造行业有3D建模需求的,需要定制建模渲染,那成本就是无底洞了,有待商榷。
大屏的前端技术实现有很多种方案,有低代码的绘制,也有全代码的定制,取决于技术和需求,技术和业务需求总是相互取舍的,后面会详细讲这块。
什么是大屏?
个人理解大屏指的是一种利用超大屏幕进行可视化展示的形式,常见的大屏有智慧城市,参观大屏等等。
最容易被误解的就是dashboard仪表盘,dashboard是属于报表一类,也可以当成可视化报告,一般围绕不同业务分析需求有不同主题的dasnboard。
而大屏通常是集领导所关注的业务指标与于一体展示,比如财务经营销售等核心指标,展示企业业绩,展示工厂状态的,通常数量不会多。
大屏的分类:
大屏的软硬件技术:
大屏的实施:
大屏的技术实现
如何实现应该是最多人最关心的。
通常做大屏前端方案设计有三类选择,①是自行开发,利用开源的自定义可视化图表;②是利用BI/报表厂商的工具来制作;③是找集成商定制,可以软硬件一体化承包。
自行开发。比如基于vue、Echart 框架构建大屏展示模板,网上有很多开源源码。
其自带一些动效,比如数据动态刷新渲染、屏幕适应、内部图表自由替换、Mixins注入等功能,这个是前端。后端需要另写一套框架请求数据,一般java。
后端开发比较麻烦,如果数据需求复杂的话,比如需要多源数据连接,不断的数据抽取和更新,定制开发难度会上升,代码复杂了多了还有BUG,制作周期比较长,维护成本比较高。
我遇到的很多项目前期都是做了源码开发的尝试,最后因为不稳定,没人维护等原因走了商业开发。
大屏定制厂商:这种定制不是那种简单的图表展示。
通常都是特殊需求,如3D建模,所以往往需要专业做可视化的厂商来按需定制。技术上基于三维的引擎如ventuz或者unity来定制大屏效果。商业定制效果通常来说都是最优的,但实施成本和后期维护成本也是极其高昂的,实施几百万不等。
BI/报表做大屏幕。现在很多大屏项目都是用BI/报表工具来开发,比如帆软的FineReport。
虽然其本身是报表工具,但其实市面上能很好解决前端展示和后端数据读取连接的平台。再者本身提供构建可视化的“画布”(在FineReport里叫设计器),拖拽操作,对大屏的和移动设备也提供了一套高效可用的设计模式,构建可视化的成本比较低,上手也比较容易,光这一点就能节约一周的人天。
可视化方面,为大屏效果专门提供可复用模板和组件,能满足绝大部分大屏的需求,涉及到特殊3D模型,也可和专业厂商做集成,提供建模实施方案。
另外,项目管理往往需要考虑成本,人力成本和后续的维护成本。FineReport具备前端展示和后端数据读取的技术条件,平台化的产品,后续维护成本很低。
主张低成本,产品化的实现较好的大屏效果。如果是做项目也能负责底层数据处理,梳理指标,构建组件,本地部署,安全性有保证。
实际大屏项目实施流程
再来说说实际大屏项目是怎么实施的。
以帆软FineReport制作大屏项目为例,整个大屏开发流程可划分为六个阶段,每个阶段都是大屏迭代更新的过程,目的是渐进明晰。
需求调研:大屏硬件是否已有,还是需要采购,大屏所支持的分辨率输出。
原型设计:大屏展示什么指标,指标如何布局,一般需要列一个指标清单,和业务方明确。然后图表的样式,可视化交互功能,如钻取、联动、轮播等,根据排版好的内容落地成盒原型图demo。
蓝图方案:然后根据原型图进行视觉美化,需要结合屏幕尺寸、分辨率、大屏的风格来设计。对于大屏而言,蓝图方案除了业务、数据、技术、实施方案外,更重要的是对大屏的指标、功能点、预期效果进行整理输出。
效果落地:根据蓝图在前端绘制demo,用FineReport就是在设计器决策报表中构建一个个可视化组件。
数据处理:数据处理大致分为三步,底层数据处理,前端数据展现,数据校对。根据数据量和实时性需求权衡是否需要做结果表。
数据量小(计算简单),准实时,不需要结果表
数据量大(计算复杂),准实时,需要结果表。
数据量小(计算简单),实时,不需要结果表。
数据量大(计算复杂),实时,需要技术方案(如kafka+flink)
大屏调试:理论上显卡分辨率和PC端调试分辨率一致的情况下且字体自适应,不需要过多调试,在条件允许的情况下,建议在效果图落地甚至原型图设计阶段就进行大屏预调试。
整体实施下来,一般一个大屏大概在十~几十人天不等,看需求复杂程度。如果是需要定制的话一般一个月起,按需求和工作量评估~所以如果不是极其特殊的需求,走报表/BI实现是不错的选择,个人之见!
大屏工具FineReport,可以回复“大屏”获得。
就分享到这儿吧,希望能给有大屏需求的朋友一些指导,如有不当之处可以指正!