本文从大数据本身的特点及其应用需求出发,结合数据可视化的研究现状,介绍了适用于大数据的数据可视化技术;分析在大数据条件下数据可视化所要解决的8个关键问题;讨论了针对大数据可视化应用需求自主研发的交互式可视化设计平台AutoVis及其应用。
图灵奖获得者JimGray曾说,数据密集型科学发现是继实验归纳、逻辑推演、仿真模拟之后的第4类科学方法,作为前3种科学范式的补充,这种方法进一步促进人类科技的进步。
数据推动着诸多科学领域与各行各业发展的同时,也带来了前所未有的挑战。有效地理解数据,避免“big data”成为“big rubbish”,需要开发更好的工具以支持整个研究过程,包括数据捕捉、数据治理、数据分析以及数据可视化。
在大数据时代,数据可视化技术在广泛应用的同时,也面临诸多新的挑战。大数据可视化是一个面向应用的研究领域,本文重点从应用实践的角度,讨论在大数据背景下大数据可视化内涵、研究进展、相关技术与产品以及所面临的一系列挑战。
大数据可视化内涵
数据可视化就是将抽象的“数据”以可见的形式表现出来,帮助人理解数据。大数据可视化相对传统的数据可视化,处理的数据对象有了本质不同,在已有的小规模或适度规模的结构化数据基础上,大数据可视化需要有效处理大规模、多类型、快速更新类型的数据。这给数据可视化研究与应用带来一系列新的挑战。
数据可视化这一概念自1987年正式提出,经过30余年的发展,逐渐形成3个分支:科学计算可视化(scientific visualization)、信息可视化(information visualization)和可视分析(visual analytics)。近些年来,这3 个子领域出现了逐渐融合的趋势。本文统称为“数据可视化”。
在传统数据可视化基础上,论文尝试给出大数据可视化的内涵:大数据可视化是指有效处理大规模、多类型和快速变化数据的图形化交互式探索与显示技术。
其中,有效是指在合理时间和空间开销范围内;大规模、多类型和快速变化是所处理数据的主要特点;图形化交互式探索是指支持通过图形化的手段交互式分析数据;显示技术是指对数据的直观展示。
大数据可视化技术
首先从方法层面介绍基本满足常用数据可视化需求的通用技术,根据可视化目标分类介绍,然后根据大数据的特点,重点介绍相关的大规模数据可视化、时序数据可视化、面向可视化的数据采样方法和数据可视化生成技术。
常用的数据可视化技术
数据可视化技术在应用过程中,多数非技术驱动,而是目标驱动。如图显示了目前业界广泛使用的根据目标分类的数据可视化方法,数据可视化目标抽象为对比、分布、组成以及关系。
按目标分类的常用数据可视化方法
1)对比。比较不同元素之间或不同时刻之间的值。
2)分布。查看数据分布特征,是数据可视化最为常用的场景之一。
3)组成。查看数据静态或动态组成。
4)关系。查看变量之间的相关性,这常常用于结合统计学相关性分析方法,通过视觉结合使用者专业知识与场景需求判断多个因素之间的影响关系。
大规模数据可视化
大规模数据可视化一般认为是处理数据规模达到TB或PB级别的数据。经过数十年的发展,大规模数据可视化经过了大量研究,重点介绍其中的并行可视化和原位(in situ)可视化。
(1)并行可视化
并行可视化通常包括3种并行处理模式,分别是任务并行、流水线并行、数据并行。
- 任务并行将可视化过程分为独立的子任务,同时运行的子任务之间不存在数据依赖。
- 流水线并行采用流式读取数据片段,将可视化过程分为多个阶段,计算机并行执行各个阶段加速处理过程。
- 数据并行是一种“单程序多数据”方式,将数据划分为多个子集,然后以子集为粒度并行执行程序处理不同的数据子集。
(2)原位可视化
数值模拟过程中生成可视化,用于缓解大规模数值模拟输出瓶颈。根据输出不同,原位可视化分为图像、分布、压缩与特征。
- 输出为图像的原位可视化,在数值模拟过程中,将数据映射为可视化,并保存为图像。
- 输出为分布数据的原位可视化,根据使用者定义的统计指标,在数值模拟过程中计算统计指标并保存,后续进行统计数据可视化;
- 输出为压缩数据的原位可视化采用压缩算法降低数值模拟数据输出规模,将压缩数据作为后续可视化处理的输入;
- 输出为特征的原位可视化采用特征提取方法,在数值模拟过程中提取特征并保存,将特征数据作为后续可视化处理的输入。
时序数据可视化
时序数据可视化是帮助人类通过数据的视角观察过去,预测未来,例如建立预测模型,进行预测性分析和用户行为分析。
面积图可显示某时间段内量化数值的变化和发展,最常用来显示趋势。气泡图可以将其中一条轴的变量设置为时间,或者把数据变量随时间的变化制成动画来显示。蜡烛图通常用作交易工具。
甘特图通常用作项目管理的组织工具,热图通过色彩变化来显示数据,直方图适合用来显示在连续间隔或特定时间段内的数据分布。
折线图用于在连续间隔或时间跨度上显示定量数值,最常用来显示趋势和关系。南丁格尔玫瑰图绘制于极坐标系之上,适用于周期性时序数据。OHLC图通常用作交易工具。
螺旋图沿阿基米德螺旋线绘制基于时间的数据。堆叠式面积图的原理与简单面积图相同,但它能同时显示多个数据系列。量化波形图可显示不同类别的数据随着时间的变化。
另外,具有空间位置信息的时序数据,常常将上述可视化方法地图结合,例如轨迹图。
面向可视化的数据采样方法
面向可视化的时序数据采样,主要针对时序数据的折线图视觉效果进行优化。此类研究的主要目标为,从时序数据中选择小部分时序数据,利用折线图上的点与连线的视觉效果,使得选取数据的折线图视觉效果与原始数据的可视化结果尽可能接近。
Steinarsson总结了一些基于折线图的时序数据采样算法,认为折线图中的每个数据点都存在各自的视觉权重。Kehagias提出了M4aggregation时序数据采样算法。Guo等总结了4种针对空间数据的可视化约束:代表性约束、可视性约束、平移一致性与缩放一致性,并基于可视化约束提出了贪心策略采样算法。
数据可视化生成方式
经过数十年的发展,数据可视化形成了从底层编程到上层交互式定制的多层次生成方式。
数据可视化生产方式
编程方式根据语言类型可以分为函数式编程与声明式编程。函数式编程可以根据图表元素封装层级分为更基础的图形编程接口,声明式编程出现时间相对较晚,其中采用图形语法思想的可视化语法。
交互式数据可视化生成方式通过交互接口,使得用户不用编程即可定制可视化图表。其中,Polaris与Tableau采用数据列拖选方式交互生成可视化图表;Voyager和Data2Vis则提供了根据数据自动生成可视化图表的能力;Lyra和Data Illustrator则提供了一种类似于Visio的交互方式,从图表元素拼装图表的能力。VisFlow在提供多个可视化模板的基础上采用数据流的思想,将可视化图表作为数据处理流的中间步骤,通过可视化的方式进行数据处理。
整体而言,编程方式的优点在于丰富的表现能力与个性化定制能力,缺点是缺乏直观性,要求使用者具有编程能力,且相对需要更多的人力与时间成本;相对而言,交互方式的优点在于直观,用户无需编程即可定制图表,使用更为广泛,缺点是表达能力有限,系统功能和性能常常无法满足使用者个性化需求。
大数据可视化产品
本节重点介绍介绍相关的大数据可视化产品,包括适用于一定大数据场景的传统数据可视化产品及面向大数据的数据可视化产品。
传统数据可视化产品
PowerBI作为微软推出的数据可视化产品,在2019年的GartnerBI象限中排名首位。优点在于易用性,交互方式类似于Excel;缺点在于性能相对较弱,缺少数据准备于清洗工具。
Tableau基于关系型代数理论研发,是目前使用最为广泛的数据可视化产品之一。优点在于基于拖放的交互方式,丰富的功能以及支持Hadoop和Google BigQuery等大数据平台;缺点是仅支持结构化数据,大数据实时响应较慢,权限约束有限。
QlikView为新兴的数据可视化产品,使用越来越广泛。优点在于数据关联查询与钻取能力,图表绘制快速;缺点在于易用性不足,作为内存型的数据可视化产品,数据处理速度依赖于内存大小,对硬件要求较高。
面向大数据的可视化产品
大数据背景下产生的数据可视化产品如下。
Apache Superset是基于Flask-Appbuilder构建的开源数据可视化系统,B/S架构,集成了地图、折线图、饼图等可视化方法,提供了一种方便的看板定制方法。优点是系统可扩展性与权限控制机制;缺点是系统稳定性和大数据处理能力不足。
Apache Zeppelin是面向大数据的交互式数据分析与协作记事本工具,开源项目,B/S架构。优点是与不同大数据框架的集成能力与系统可扩展性;缺点是需要编程,不支持异步,对于大规模数据,客户端可能需要等待较长时间。
大数据可视化挑战
数据可视化在大数据场景下面临诸多新的挑战,包括数据规模、数据融合、图表绘制效率、图表表达能力、系统可扩展性、快速构建能力、数据分析与数据交互等。
数据规模
大数据规模大、价值密度降低,受限于屏幕空间,所能显示的数据量有限。因此为了有效显示使用者所关注的数据和特征,需要采用有效的数据压缩方法。目前已有的方法针对数据本身进行采样或聚合,未考虑数据可视化的显示特性。近期一些学者提出了针对特定可视化场景的数据压缩方法。但是目前依然缺少通用的面向可视化的数据压缩方法,也缺少实际应用的产品。
数据融合
大数据的另一个表现是数据类型多样,常常分布于不同的数据库。如何融合不同来源、不同类型的数据,为使用者提供统一的可视化视角,支持可视化的关联探索与关系挖掘,是一个重要的问题。其中涉及数据关联的自动发现、多类型数据可视化、知识图谱构建等多个技术问题。
图表绘制效率
随着数据规模的增加,图表可视化的效率问题越来越凸显。目前,有些可视化产品开始采用WebGL借助GPU实现平行绘制。越来越多的数据可视化产品采用B/S架构,其性能一定程度上优先于浏览器;另外,由于跨终端需求越来越普遍,也对图表绘制提出了更多挑战。
图表表达能力
随着产生数据的来源增加,数据类型不断增加,数据使用者对于数据的交互需求越来越多,已有的数据可视化产品完全无法满足使用者的可视化需求,时常出现需要的可视化形式产品不支持或支持不够等问题。这就对于系统的图表表达能力提出了更高的要求,同时对于系统支持使用者的个性化定制提出了新的要求。
系统可扩展性
大数据对于数据可视化系统的扩展能力提出了新的挑战,系统的可扩展性将成为衡量一个大数据可视化系统的重要指标。
快速构建能力
大数据伴随着快速变化与增加的数据,如何帮助用户及时理解数据,发现问题,离不开数据可视化的快速构建能力,即根据使用者数据驱动的图表快速定制能力。数据在s级甚至ms级更新的情况下,有没有可能实现图表的秒级更新与快速定制。另外,图表定制后的快速共享与响应功能也将成为必要的系统功能。
数据分析
传统的BI工具主要集中在数据筛选、聚合及可视化功能,已经不能满足大数据分析的需求,Gartner提出了“增强分析”,数据可视化只有结合丰富的大数据分析方法,将数据的探索式分析形成一个闭环,才能实现完整的大数据可视化产品,有效帮助使用者理解数据。预测性分析是大数据的趋势,数据可视化有效结合预测方法,将有助于使用者的决策。
数据交互
大数据可视化使用者需要通过可视化与图表背后的数据和处理逻辑进行交互,由此反应使用者的个性化需求,帮助用户用一种交互迭代的方式理解数据。在传统的交互手段基础上,更加自然的交互方式,将有助于使用者与数据更好的交互,也有助于拓展大数据可视化产品的使用范围与应用场景。
大数据可视化技术与产品所面临主要挑战的同时也对其发展带来了新机遇,例如Yu等提出的面向数据流式可视化的自然语言交互接口,通过自然语言与可视化常见操作的映射实现。微软Excel软件集成自然语言交互,其中的AnnaParser算法将数据表进行抽象并结合表格知识理解实现语义理解。
AutoVis
如前所述,大数据可视化面临一系列挑战。为此,课题组自主研发了数据感知的交互式可视化设计平台AutoVis,目标是让大数据的可视化过程更加简单,核心是辅助使用者快速完成从数据到图表的设计过程,包括数据定义、图表设计、映射过程、图表交互与看板服务。
数据定义
AutoVis支持IoTDB、PostgreSQL、MySQL、SQLServer、SQLLite等常用数据库类型,以及提供RESTfulAPI接口的数据服务。设计实现了抽象数据集构建与计算技术,支持不同数据的自由组合,通过抽象数据集归一化,实现数据集的快速生成。
图表设计
AutoVis采用模板化思想,提供了百余个覆盖常用可视化技术的图表模板,支持即时模板扩展及拖拽即用,达到秒级图表定义。另外,AutoVis提供了所见即所得的图表组合定制看板能力,实现了分钟级看板定义。
映射过程
为了达到图表定制易用性的同时实现实时可扩展性,即融合编程方式的表达能力和交互方式的易用性,AutoVis设计实现了3种互补的数据至图表的映射方式:交互选项、扩展选项、手工编码。
图表交互
图表交互能力在大数据场景下愈发重要。AutoVis的图表模板提供了常用的交互功能,包括点选、悬浮、刷选等。另外,AutoVis还实现了看板图表的自动关联,支持跨图表跨数据的钻取能力。
看板服务
AutoVis在支持常用的看板链接共享基础上,提供了看板服务能力,即使用者不仅可以将看板共享,或集成到其他系统,还可以动态向看板传递参数,动态调整看板可视化内容。另外,AutoVis围绕看板提供了“数字会商室”功能,使用者可以围绕数字看板进行数据驱动的讨论与决策。
数据可视化已成为人理解数据的重要途径,在大数据时代,人们更加需要有效的数据可视化工具直观分析大规模数据,快速捕捉数据变化。
相对传统的数据可视化,大数据也带来了数据规模、数据融合、图表绘制效率、图表表达能力、系统可扩展性、快速构建能力、数据分析与数据交互等多个方面的挑战。有效应对这些挑战将有助于大数据可视化随着大数据和数据科学的普及,推动其应用到更多领域。