绝大多数数据可视化项目都是以离线数据分析为主,即今天看到的数是昨天的,又或者几个小时前的数据。或许您会说,这样也太不是实时了,我以前的数据分析,都是实时的,就是那边下单的数据我立刻就知道,立刻就能和以前的数据进行对比,这个确实,这种数据分析一般说来叫做OLTP,基本分析库和生产库都是一个,这种看数据基本都是实时的。但目前的数据基本都是TB级别的,这种情况下,一般就会出现我们刚开始出现的情况了,一般都叫OLAP。
但总归会有那么一两个需求是需要展示实时数据的,比如说我们经常看到的监控大屏,预警应用之类的,都需要第一时间在数据可视化中体现出来。那么数据可视化工具是如何实现实时数据可视化的呢?过去的数据可视化工具有个叫做数据集的概念,这个是干什么用的,其实就是一个简单的ETL,轮询抽取数据到内存数据库中,基本上有全量和增量两种模式。抽取到数据后,前端的页面是连接到这个数据集上,然后获取数据,这种所谓的实时展示,实际上是有一定的延迟的,看用户设置了。
随着技术的进步,这种模式逐渐被淘汰。面对实时需求,人们一般会构建出一条实时数据流通道,进行实时计算,然后将算好的数据放入大型的No Sql数据之中,诸如Redis之类的,又或者存入数据库之类的存储介质中,对外提供Rest服务,又或者推送给前端,像Websocket。前面两种需要前端提供轮询服务,后面这种兼容性不算太好,还不算特别稳定。
通过这些技术,数据可视化工具就可以将实时数据进行可视化了。像云蛛系统目前主要就采取了轮询的模式,进行实时数据可视化,当然也有WebSocket。提供No Sql诸如Redis等内存数据库直连服务,还提供Restful的直连服务。这样就可以轻松的抽取数据进行实时展示了,不过鉴于云蛛系统是开源的,如果您觉得这块云蛛系统实现的不好,您可以自行修改,按照您喜欢,认为合理的方式进行实时数据的可视化!