揭秘可视化图探索工具 NebulaGraph Explore 是如何实现图计算的
前言
在可视化图探索工具 NebulaGraph Explorer 3.1.0 版本中加入了图计算工作流功能,针对 NebulaGraph 提供了图计算的能力,同时可以利用工作流的 nGQL 运行能力支持简单的数据读取,过滤及写入等数据处理功能。
本文将简单分享下 NebulaGraph Explorer 中集成图计算的基本实现原理。
整体架构

上图 1 描述了 NebulaGraph Explorer Workflow 所涉及的相关系统及调用过程。
其中:
- Explorer:主要负责产出工作流的配置,提供操作工作流的 HTTP API 服务,可视化展示及读取图计算工作流运行结果的能力。
- Dag-Ctrl:主要提供独立解析工作流,下发任务的能力,提供相应的 Job(单次运行的 workflow)和 Task (Job 中的具体任务节点)日志及启停能力,具有独立 web 服务。
- Analytics:提供运行具体任务节点的能力(运行算法,查询,写入等)
- Datasources:目前 Explorer 支持的各类数据源。
前端交互界面

我们在 NebulaGraph Explorer 界面上利用高定制、轻量级的开源自研流程图库 NebulaGraph-VEditor 开发。通过拖拉拽的交互方式,生成 DAG(有向无环图),并生成对应的 Workflow Code(流程描述代码),其中的各种算法节点通过 JSON 配置对应到 DAG-Ctrl 和 Analytics 的算法配置,可以灵活添加新任务节点。其配置结构大致如下:
analytics_sssp:{
name: 'SSSP',//算法名称
input: ['src', 'dst', 'weight'],// 输入字段和列
output: ['vid', 'count'],// 输出字段和列
form: {// 表单配置
root: {
component: 'input',
isParam: true,
label: 'RootId',
},
},
algorithm: ""// Web图算法函数
}
其中,通过设计两种锚点(参数锚点,数据锚点)来进行 Task 节点间的数据交互,中间数据格式统一抽象为 M*N 的 csv 格式。
- 对于数据锚点,可以通过连线,将上游节点的输出锚点匹配到下游节点的输入锚点上,因此对于每个节点来说,数据输出和输入都表达为列的匹配即可。例如 Query 查询节点,其输入输出可以根据 nGQL 动态变化,因此输入输出的锚点也是动态可变的,用户可以自由地将 Query 输出的结果输出到一个或多个计算任务节点中。
- 对于参数锚点,则可以改变算法的配置参数,或 nGQL 的字符串变量,这对于经常调整算法参数的计算流程非常有用,另外参数锚点也可以来自于上游的数据锚点,例如对图进行 SSSP(单源最短路径)运算,就可以通过参数锚点动态的从上游数据锚点中获取需要进行计算的根节点 ID,如下图:

(黄色标识的为参数锚点,白色标识的为数据锚点)
可以利用这个特性,将常用的 nGQL 功能模块抽象为函数节点,快速构建图业务流程。
NebulaGraph Explorer Server 任务管理
NebulaGraph Explorer Server 会存储用户的 workflow 做为模板,用户可以利用前台界面和 API 网关调用 workflow 生成对应 Job 实例,将对应的 workflow 配置逻辑传输到 DAG-Ctrl 中运行。目前只支持手动生成实例,未来会加入定时调度能力,加强对 workflow 和 job 的管理能力。
在生成 Job 实例后,NebulaGraph Explorer Server 端会定时同步 DAG-Ctrl 的 Job 运行情况。

DAG-Ctrl
DAG 对用户配置的有向图进行解析后,会下发到 Analytics 集群中并行运算。这里我们抽离了 DAG 作为独立 Server,支持和 Explorer 分离部署,通过 HTTP 进行数据互通,NebulaGraph Explorer 默认会附带 DAG-Ctrl 包一键启动,并发压力情况较小的情况下,适合部署在一台机器上运行。
由于下发任务需要登入相应的 Analytics 机器,因此需要用户先安装好 Analytics 后,对 DAG 所在机器给予 SSH 授权后才能使用。
DAG 在拿到对应的有向节点任务后会进行依赖优先级排序,依次 SSH 到 Analytics 机器中启动进行运算,并将运算结果地址传入下个节点任务中作为输入。
DAG 通过独立的 DB 用来存储运行过程中产生的任务和日志等数据。
NebulaGraph Analytics
NebulaGraph Analytics 是一款高性能的图计算工具,Explorer 不会附带 Analytics 启动,也不会感知到 Analytics 节点,主要通过 DAG-Ctrl 完成 Analytics 集群节点的交互配置,因此 NebulaGraph Explorer 提供一个配置界面供用户在线配置 DAG 需要的相关配置。

其中,Analytics 集群和 HDFS 地址通过配置直接存储在 DAG-Ctrl 中,NebulaGraph 则会默认在 NebulaGraph Explorer 登录后将登录信息加密后直接传输到 DAG-Ctrl 中。在 Analytics 计算服务运行时会从 DAG-Ctrl 下发的配置中取得需要写入或读取的数据源地址及相关的验证信息,完成计算后将数据写入到指定数据源中。关于 Analytics 的详细介绍可以参考我们之前发布的文章。
工作流结果
NebulaGraph Explorer 对结果的读取主要有两种
- 直接捞取数据源中的数据,如直接读取 NebulaGraph、HDFS、CSV 等,这样在海量数据下可以获取到完整的计算结果。
- 通过 Explorer 可视化查看,因为受限于 HTTP 的传输能力,在大数据量下,取 HDFS 数据会取指定大小的一部分文件回来进行渲染可视化,因此相当于对数据进行了采样后再展示。而对于 NebulaGraph 数据源则会通过分页在前台展示全量工作流结果。
在计算结果导入到 NebulaGraph Explorer 的画布上可视化后,由于计算结果返回的是一系列点 ID,不能展示边和详细数据,因此我们提供了一个自动补齐数据的方案,会请求导入到画布的点之间所有可能的边数据,这样我们可以大致模拟出工作流结果间的图拓扑结构。
图计算可视化
对图计算出的结果集,我们针对图算法的类别进行了针对性的可视化展示。
- 节点重要度、聚类系数、路径长度 - 值归一化到节点尺寸
- 聚类 - 通过颜色标记 label
- 图特征 - 对应形状的边颜色 / 高亮

如上图进行 BNC (中介中心性计算)后,节点重要度一目了然。
Web 图计算
除了以上介绍的图计算工作流外,针对小数据量,重可视化分析的场景,NebulaGraph Explorer 额外提供了一套轻量级的 Web 端单机图计算方案,针对画布中用户已探索出的图数据进行实时图计算。
如下图所示,目前支持工作流中的所有图算法,但由于部分不稳定算法(如 LPA), 分布单机及同步异步算法间的差异,少部分图算法会和工作流图计算结果有一些差异。

性能方面,我们通过利用 Rust 将图算法编译为 WASM 在 Web 端运行,对于点边数量 1w 左右的场景, Floyd-Warshall 这类 O(n^3) 基本在 2s 左右即可完成,能实时快速的对画布图数据进行可视化分析,提升小数据量下的图算法可视化体验。
关于未来
未来 NebulaGraph Explorer Workflow 会逐渐完善并丰富目前的功能,同时在实际业务需求的基础上对现有功能进行优化,主要包含以下几个方向:
- 加入定时调度,任务监控
- 接入更多算子来实现数据清洗,合并等完备的ETL逻辑
- 接入更多数据源
- 定义完备的图计算可视化语言
欢迎免费试用我们的 NebulaGraph Explorer,体验完整的 workflow 流程。
谢谢你读完本文 (///▽///)
NebulaGraph Desktop,Windows 和 macOS 用户安装图数据库的绿色通道,10s 拉起搞定海量数据的图服务。通道传送门:http://c.nxw.so/aved3
想看源码的小伙伴可以前往 GitHub 阅读、使用、(з)-☆ star 它 -> GitHub;和其他的 NebulaGraph 用户一起交流图数据库技术和应用技能,留下「你的名片」一起玩耍呢~
揭秘可视化图探索工具 NebulaGraph Explore 是如何实现图计算的的更多相关文章
- 【百度地图API】百度API卫星图使用方法和卫星图对比工具
原文:[百度地图API]百度API卫星图使用方法和卫星图对比工具 百度地图API推出卫星图接口也有一个月啦~ 本文除了介绍如何使用百度地图API来操作卫星图外,还顺带制作了个卫星图对比工具. 一.百度 ...
- 6.MySQL图形化工具的使用
6.图形化工具的使用6.1 Mysql Workbench Mysql Workbench是Mysql官方推出的集成图形化工具,替代了之前的图形化管理工具Mysql Administrator和图形化 ...
- linux 内核分析工具 Dtrace、SystemTap、火焰图、crash等
<< System语言详解 >> 关于 SystemTap 的书. 我们在分析各种系统异常和故障的时候,通常会用到 pstack(jstack) /pldd/ lsof/ tc ...
- Windows/Linux下磁盘使用的图形化工具简介
Windows/Linux下磁盘使用的图形化工具简介 如何以图形界面查看磁盘及分区的大小及剩余容量呢?今天我为大家介绍两款Windows/Linux下磁盘使用的图形化工具分别是Spacesniff ...
- 开源图编辑库 NebulaGraph VEditor 的设计思路分享
本文首发于 NebulaGraph 公众号 NebulaGraph VEditor 是一个拥有高性能.高可定制的所见即所得图可视化编辑器前端库. NebulaGraph VEditor 底层基于 SV ...
- 矢量图绘制工具Svg-edit调整画布的大小
矢量图绘制工具Svg-edit调整画布的大小 ------------------------------ ------------------------
- css sprite,css雪碧图生成工具V3.0更新
V3.0主要改进 1.增加了单独添加单张图片以及删除单张图片的功能 2.增加了生成.sprite文件用以保存雪碧图信息 3.增加了打开.sprite文件功能 什么是css sprite CSS spr ...
- js正则表达式图形化工具-rline
github地址:https://github.com/finance-sh/rline 在线demo: http://lihuazhai.com/demo/test.html 这是一个js正则表达式 ...
- Charted – 自动化的可视化数据生成工具
Charted 是一个让数据自动生成可视化图表的工具.只需要提供一个数据文件的链接,它就能返回一个美丽的,可共享的图表.Charted 不会存储任何数据.它只是获取和让链接提供的数据可视化. 在线演示 ...
- 可视化日志分析工具Gltail的安装与使用
可视化日志分析工具Gltail的安装与使用 GlTail.rb 是一款带有浓郁的 Geek 风格的可视化日志分析工具,它采用 Ruby 技术构建,并利用 OpenGL 图形技术进行渲染,呈现 ...
随机推荐
- 2020第二届长安杯wp
1 检材 1 的操作系统版本是 A. CentOS release 6.5 (Final) B. Ubuntu 16.04.3 LTS C. Debian GNU/Linux 7.8 (wheezy) ...
- 紧跟潮流,抓住趋势,跟上全民AI的节奏,开源IM项目OpenIM产品介绍,为AIGC贡献力量
开源价值 高度自主.安全可控.开放自由,私有化部署,一切皆可控 透明度和可信度:开源软件的源代码是公开的,任何人都可以查看和检查代码,从而增强了软件的透明度和可信度.用户可以了解软件的内部结构和运作方 ...
- 服务器重装ip未更改,ssh连不上(WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED)
服务器重装ip未更改,ssh连不上 前言 原因 解决方法 服务器重装ip未更改,ssh连不上 前言 重装了虚拟机,ip还保留了,但是发现连不上了 @@@@@@@@@@@@@@@@@@@@@@@@@@@ ...
- 多模态对比语言图像预训练CLIP:打破语言与视觉的界限
多模态对比语言图像预训练CLIP:打破语言与视觉的界限 一种基于多模态(图像.文本)对比训练的神经网络.它可以在给定图像的情况下,使用自然语言来预测最相关的文本片段,而无需为特定任务进行优化.CLIP ...
- 火遍外网的Keychron测评,带你入坑;ps马上5.20了送一个给你的心爱的她/他。
那些年用过的机械键盘 如果你经常上YouTube或Instagram,然后你又对键盘感兴趣,我相信你肯定看到过他--Keychron K2,他真的是一款曝光量很高的键盘. 1.键盘keychron k ...
- 21.13 Python 实现端口流量转发
端口流量转发(Port Forwarding)是一种网络通信技术,用于将特定的网络流量从一个端口或网络地址转发到另一个端口或地址.它在网络中扮演着一个非常重要的角色,在Python语言中实现端口转发非 ...
- MySQL创建, 修改,删除用户密码
MySQL创建, 修改,删除用户密码 创建用新户名密码 创建用新户名密码: create user 'test1'@'localhost' identified by 'test1'; 修改用户名密码 ...
- 曝iPhone 15系列将于9月13日发布 9月22日发售:7大升级、或售5999元起
按照往年惯例,新款iPhone将于9月中下旬(第三周)与大家见面.9to5Mac今日带来了新款iPhone的最新消息--iPhone 15系列将于9月13日发布,9月22日正式发售. 9to5Mac从 ...
- 绝对凶器!NVIDIA Titan Z细节全曝光
AMD Radeon R9 295X2已经拉开了新一代双芯卡皇大战的序幕,接下来就等NVIDIA GeForce GTX Titan Z的登场了.最新消息显示,它比原计划推迟了一个星期,将在5月8日正 ...
- 神经网络优化篇:详解如何训练一个 Softmax 分类器(Training a Softmax classifier)
如何训练一个 Softmax 分类器 回忆一下之前举的的例子,输出层计算出的\(z^{[l]}\)如下,\(z^{[l]} = \begin{bmatrix} 5 \\ 2 \\ - 1 \\ 3 \ ...