作者:小波
图数据库领域时最近几年大数据领域热度颇高的领域,自 2013 年开始,图数据库的发展就一起绝尘。与传统关系数据库不同,图数据技术主要关注数据间关系查询能力,是表示和查询关联关系的最佳方式。AntV 团队在图数据库领域沉浸多年,因此本文主要结合的 AntV 的框架在实际项目中的实践阐述图可视化技术在图数据库领域的应用。
随着移动互联网的普及及 5G 时代的到来,数据库的数据量将会越来越多。面对海量数据,尤其是非结构化数据的存储,传统的关系型数据库已经无法满足分析的需求,分布式图数据库能够很清晰地揭示各类复杂关系,尤其是针对错综复杂的业务逻辑,其优势更为明显。
图数据库的发展和大数据的发展有着密切的联系。大数据之所以受到广泛关注,其本质在于对海量数据的统计、汇总、分析,可以从中发现一些隐含的规律。
以真实项目(数据库主从拓扑)为例,其主体是数据库实例。数据库实例之间可能存在主从关系,主主关系。通过图数据库展示时,整个数据拓扑关系会一目了然。
当数据库主从关系过多,靠人工对数据进行一一排列时会容易出现问题,甚至会梳理错误。在很多场景中,相比于数据本身,其实我们更加关注数据背后所表达的一些信息,以及信息之间的关联。图数据库模式能够更加直观,自然的展示这种关联,对于用户来说,和数据的交互方式,使用数据的方式,通过图的方式也要更加直接。
目前,我们在真实的项目有两个场景使用AntV G6开源可视化引擎进行开发。一是数据库主从关系拓扑,另外一个是机柜分析
以数据库主从关系拓扑为例,用户可以通过搜搜索机房或者平台来筛选,不同机房或者不同平台之间存在哪些数据库实例主从关系。也可以通过把鼠标放到数据库实例上查看,当前数据库实例的主机相关信息及实际的基本信息。
通过机房视角来区分,当前不同机房是有哪些数据实例
通过上图,还可以清晰地查看到XXX机房里面的哪个数据库实例和XXX机房里面具体的那个数据库实例是主从关系的。通过箭头也可以清晰的区分出来,主从关系(有箭头则代表从机),主主关系(双箭头)
其中,机柜分析可以对整个机房网络拓扑结构,流量,终端设备等接入进行可视化管理(基于cmdb数据进行绘制)
通过左键某个交换机即可查看当前机柜的服务器存放的位置和连接状态。
通过上面的具体实例,是不是顿时对可视化领域感兴趣呢?接下来,就跟着小编的步伐带你了解可视化技术的知识。
当在图数据库领域运用可视化技术,通常会遇到两类问题:
针对上述提出的两个问题,得出如下的解决方案:
传统的图模型创建的方式是通过填写表单来生成点边,可视化建模有别于传统的方式。通过可视化拖拽的方式来完成点边的创建,可以有效提升建模的效率,并让提高了模型的可读性。可视化建模方案主要包括图模型的创建、管理及交互三个方面。
图模型是由点边组成的,图模型的创建也就是创建具体的点和边。图模型的创建可采用可视化拖拽加表单填充两种交互形态相互结合的方式完成:
创建完模型以后,加载模型后,可以以可视化的形式来展示和管理。可视化管理模型核心是一块画布。画布之上除会提供诸如搜索、放大缩小、全屏等常见交互能力,还须具备通过拖拽进行模型操作的能力。
用户点击图中节点/边会在右下角浮出一个预览面板,用户可以通过该面板快速预览节点和边详情。同时用户若有编辑面板的需求可以通过此面板的编辑按钮快速进入编辑弹窗。用户还可以通过节点/边的右键菜单,选择点/边的快速删除以及快捷数据导入。
模型的可读性无论是对于数据运维同学还是数据开发同学都是至关重要。一个清晰美观模型能够帮助我们快速解读当前模型,是提升效率的前置条件。如何提高模型的可读性呢?我们可以通过模型的设计规范,布局规范,交互规范来解决。
在图数据库领域,不同场景图模型承载的信息有很大差异,所以设计规范主要考虑的是其通用性。主要通过颜色,大小,Label,状态四种元素进行区分;
针对目前数据库主从关系拓扑图来说,颜色主要倾向于蓝色;大小一般使用30; Label是由服务器(ip)+业务名称+机房来组成的;状态则使用Img的数据库图片。
模型中点边数量通常会控制在100以内,但是不同场景会有较大的差异。所以在布局层面主要以力导布局为主;也可以根据模型特征选用同心圆布局,网格布局,辐射布局等;由于数据库主从关系拓扑需要以某个机房,某个业务等及某个机房为视角,因此布局使用dagre+Combo的流程图较为合适。
对于可读性而言,用到的点边交互有选中、hover、拖拽、右键;以及放大缩小、适配、布局定位等全局交互能力;通常图中也无法呈现点/边上的所有属性,需要通过增加属性面板/Tooltip的方式来进行属性呈现。
图搜索分析,也是从查询开始,但有别于传统数据库管理系统的查询,图探索分析中的查询是用户通过输入一段DSL、选择一个算法模板或路径开始执行查询,得到并将查询结果渲染到画布上后,以后的分析步骤是没有明确目的的,绝大部分时间都是在探索节点之间的关联关系,试图从数据的关系中发现有价值的洞察。
完整的图搜索分析应用由以下部分组成:
图的可读性主要可以体现在合适的场景采用合适的布局策略、善于使用图元素的视觉元素表达不同信息和排除图中干扰元素。
合适的场景采用合适的布局策略,必要时可以采用多种布局策略结合(子图布局)提升图的可读性。如下图可以描述的是围绕一个叫Peter的人展开的探索,可以清晰得到Peter在一个叫Nashville的地方度过的大学。
善用节点/边视觉元表达不同的信息。
必要时候可以通过过滤面板、节点显隐、节点折叠、关联高亮、关键路径高亮等手段排除图中干扰因素,使数据更聚集。
下钻式的探索是针对有聚合节点的情况,用户针对聚合节点可以进行展开操作,展开的操作中,如果还存在聚合节点,可以继续展开操作。
用户选定一个节点,使用双击、右击菜单等形式指定展开一个聚合节点。展开该聚合节点即获取所有被聚类到该聚合节点中的下一层次的节点,将这些节点与当前图上其余部分进行混合,得到的图我们成为混合图。
展示混合图,由图可视化开源与分析引擎AntV G6完成,主要包括:
元素信息探索,主要包括查看节点、边、聚合节点或聚合边的详情信息
用户点选画布上的节点或边时,被点选的元素将会被高亮,并出现一个元素详情面板,展示该元素的详细信息:
画布探索,主要通过画布上的ToolBar来实现的,我们可以对画布进行缩放、可以使用拉缩选择多个元素、也可以使用鱼眼放大镜等。
对画布的探索,可能的操作如下:
AntV G6 引擎如此强大,能应用的场景还远远未挖掘完全。我们将会使用AntV G6针对云安全进行可视化处理。安全可视化是一个交叉研究领域,通过提供交互式可视化工具,提升安全分析人员感知、分析和理解网络安全问题的能力。
针对服务器上存在的日志,以及后端数据之后,最终呈现出来的效果如下:
小编在AntV G6的应用上,还有很长的路需要走。希望下次和大家再次见面时能够带来不一样的G6 视觉盛宴,未完待续。。。