嬴图 | 走进 Ultipa Manager 之 高可视化

news2024/11/26 17:21:01

Ultipa Manager是嬴图数据库管理系统基于网页端的应用。自2019年至今,已迭代最新至v4.2版本。本系列,笔者将分三篇文章,引导大家走进嬴图之Ultipa Manager,详细了解其高可视化、数据科学家工具箱、便捷的数据迁移3大亮点功能,本期具体围绕高可视化展开。

广义来说,高可视化就是在二维或三维空间中,给点和边安排一个空间布局。

高可视化是Ultipa Manager的核心任务之一。事实上,我们很难不以可视化的方式去思考图,我们的脑中总会不自觉地把“画”出来进行洞察和分析。

我们要么是想要一张包含所有数据的全图,要么是其中的一部分图(子图)。当然,现实场景中,数据集可能非常庞大,以至于都很难在有限的屏幕空间中,能将数据全部地展示出来,但我们仍然有很多方法表现其要旨。

另一方面,部分视图(子图)则可能有许多形式——查询结果可能包含节点、边 、路径、子图、表或它们的组合,Ultipa Manager旨在处理这种查询结果的复杂性。

01 | 图+表,两者兼有

当我们受够了传统关系型数据库在表达数据间的关联关系方面的无力,图数据库的横空出世填补了这一空白。

图数据库中的元数据一般分为两种:点和边,分别表达实体和关系。换句话说,关系是直接存储在图数据库中的,而非通过多表关联(Join)等操作计算出来的。

图与我们大脑的思维方式有很强的可比性,它很直观,因此通常不需要太多解释。即使是这样,表还是有其可取之处,我们喜欢它的井井有条、整齐不乱,易于人眼扫描。当然,Ultipa Manager亦提供这种展现方式,在展现离散的元数据详细信息等情况下十分有效。

你会喜欢Ultipa Manager的图/列表模式切换功能,甚至还可以对结果面板进行分屏,对比查看这两种展现方式。

在下面的案例中,我们在一个合著网络(Co-authorship Network)中查询了10个schema为author(作者)的节点。在左边的列表模式里,可以很清楚地看到这些作者的详细信息,包括他们的id、uuid、name和gender。在右边对应的图模式里,我们用一个指定的图标展示这些节点,每个节点均有一个文字标签,内容是我们指定的一个节点属性值(这里我们用的是name属性)。

值得一提的是,每个结果面板都是能独立使用的,不是非得来自同一个查询。另外,每个结果面板均能保留很多历史的查询结果。

图1:在两个结果面板里对比列表模式(左)和图模式(右)

在图模式中,Ultipa Manager能帮助你做更多的探索。

如图2所示,从一个节点(作者)进行展开,看看这个作者曾与谁合著过。展开的深度可进行自定义。制作下图时,设置深度是3,期待看到曾与目标作者直接、间接和更加间接合作过的人。

图2:从一个节点展开

02 | 树形布局

在Ultipa Manager中,我们可以对图中的点、边重新进行布局,使得图进一步描述出它所包含的信息。

具体来说,可以进行树形布局和环形布局。在应用中,我们可以在这些布局之间进行切换,以求发现更多网络结构的特点。

图3:2D图模式中之切换布局菜单

众所周知,树形布局利于展示等级,即从上到下,从根节点到叶子节点,为可视化信息增加更清晰的脉络。

当渲染树形布局时,Ultipa Manager会先找到连通分量(连通图本身就是一个连通分量,非连通图中有多个连通分量)里的单向最长路径,将其端点放置在根节点位置,然后再将其他节点按边的相连关系在垂直方向进行排列。

准确来说,图的树状布局结果未必是一棵“树”,而是类似“树”的一个结构,因为图中可能含有环路,而严格定义下的树结构是不能包含环路的。但无论如何,这种树状结构能为我们提供一些关于图的广度和深度的信息。

图4:原始布局(左)vs. 树形布局(右)

在原始布局中,边是用曲线绘制的,当移动一个节点的位置时,会一并拖动与其相连的节点,节点前往位置周围的节点也会被“推开”,图的状态十分灵活。

而在树形布局中,边是用直线绘制的,移动一个节点时不会影响其他节点。树形布局带来的好处之一是能够快速厘清节点邻居距离节点的距离(即跳数,Hop)。例如,在上面的示例中,我们从Adar, E这个作者节点进行了展开,在树形布局中这个节点位于树的左下方。由于结构很整齐清晰,我们很快就能判断出与他有1度(蓝色区域)、2度(绿色区域)和3度(红色区域)关系的合著者。

图5:目标节点的1步、2步和3步领域

在企业所有权图中调查一家公司的股权结构是一个典型的应用。

以图6为例,针对ID为23的公司(用红色建筑物图标表示)的查询结果,公司的股权持有者要么是公司(绿色建筑物图标),要么是个人(蓝色用户图标),股权持有关系以及持股比例都用有向边表示。用UQL(Ultipa Graph Query Language,Ultipa嬴图查询语言)书写的查询语句即

n(23).re({@holdShare})[:10].n() as paths return paths{*}

这是一个深度为10的单向穿透,因为在商业世界中,企业的持股人可能会选择隐藏他们的身份。说到这里,你可能有兴趣阅读Ultipa嬴图的最终受益人查找用例。

图6:某企业股权结构查询结果——原始布局

从这个查询结果的默认布局中,我们可以大概知晓这家ID为23的公司有着十分分散的股权结构,但一时间还是难以解释清楚。故,如图7所示,我们将其转换成树形布局。

图7:某企业股权结构查询结果——树形布局

该公司的持有人最多地隐藏在了3步开外的深度,其中最大的股东是ID为1的个人,他共计持股55.51%。在图8所示的树形布局中,我们进一步将其持股路径用红色粗边标注出来,并将局部放大呈现。

图8:某企业最大股东之持股路径

03 | 环形布局

环形布局则与树形布局迥然不同。它一视同仁地对待所有的节点,并表现在将所有节点均匀地放置在一个圆环上。边则被绘制为圆环中的弦,或是贴近圆周的直线。

以下图为例,图9是一个蛋白质互作网络的原始布局(左)和环形布局(右)。在原始的可视化局部中,我们能看到其中的一团团的簇(Cluster),而这些簇的中心节点在环形布局中就变得更加清晰了,因为这些中心节点附近的边更加密集。

图9:原始布局(左)vs. 环形布局(右)

04 | 小结

将图技术应用到各行各业并赋能其深度价值的发掘上,图可视化发挥着重要的作用。通过Ultipa Manager对图非常直观、可交互的呈现,能让我们对网络(点-线-面-体)的理解不仅可以更快,视野和角度还能被拓宽,旨在帮助业务人员、数据科学家、程序员等进行更快、更明智地洞察并采取行动。 下期我们将发布Ultipa Manager 之数据科学家的工具箱篇。【文/Pearl C · Ultipa文档工程师】

END

详细信息,可登陆

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/153754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享91个NET源码,总有一款适合您

NET源码 分享91个NET源码,总有一款适合您 91个NET源码下载链接:https://pan.baidu.com/s/1dqb9XgiiVfsVkq-wqKt3Kg?pwd275d 提取码:275d 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...&…

mybatis插入mysql数据库PersistenceException 数据库连接超时

mybatis插入mysql部分数据失败mybatis插入mysql数据库PersistenceException1、异常堆栈信息:2、问题原因:3、问题排查3.1 查看数据库连接信息3.2 问题解决3.2.1 Spring项目可以在配置文件里面设置3.2.2 修改conn改成局部变量mybatis插入mysql数据库Persi…

python 语法(空行、变量、if条件控制、循环语句)编码示例

文章目录前言python 语法(空行、变量、if条件控制、循环语句)编码示例1 空行,在python中空行也是代码2 单个变量赋值、多个变量赋值3 if条件控制4 循环语句4.1 while循环4.2 for 循环前言 如果您觉得有用的话,记得给博主点个赞,评论&#xff…

C++程序的编译与运行

C和C语言类似,也要经过编译和链接后才能运行。 下图是 C/C 代码生成可执行文件的过程: C源文件的后缀 C语言源文件的后缀非常统一,在不同的编译器下都是.c。C 源文件的后缀则有些混乱,不同的编译器支持不同的后缀,下…

新应用——设备巡检管理,系统化更具稳定性

对于生产制造型企业来说,随着企业逐步发展,产量增大,生产设备的稳定性和安全性就成为企业经济效益的关键。设备巡检是有效保证设备安全和稳定的重要环节。通过设备巡检,定期掌握各台设备的运行情况及周围环境的变化,尽…

算法竞赛百日——快速排序 - 分治

本文已收录于专栏 🌲《百日算法竞赛》🌲 目录 本文已收录于专栏 🌲《百日算法竞赛》🌲 快速排序 解题思路 ​ 思路分析: 模拟: AC_Code 二分查找 用二分法求 平方根 二分模板 快速排序 给定你…

纯前端导出Excel并修改样式

之前写过一篇前端导出:Vue实现导出功能(无后端配合) ,但是当时没考虑到样式的问题,后来要求导出的Excel单元格的样式也需要调整,尤其是宽度,第一想到的就是xlsx-style这个包,之前也没…

Python基础篇---生成器和模块

生成器对象 生成器对象其本质是自定义迭代器,就是需要我们自己写代码产生的迭代器。 生成器对象也是节省存储空间的 特性与迭代器对象一致。 def index():print(第一次输出)yield 1print(第二次输出)yield 2 1 2 3 4 5 6 7 8 9 10 当我们没有加括号调用之前&…

学习JavaScript,有哪些好的博客或者网站推荐?

前言 特意制作了一个Js整体的学习路线以及相关知识点博客讲解以及各类网站学习的资源整合,希望对你有帮助哈~ 废话少说,我们直接进入正题,先放上路线导图: 部分重要知识点 基础性知识 声明变量 null 和 undefined 详解JavaS…

code warrior IDE win10 64位安装保姆级教程

以下安装步骤是在win10 64位系统运行程序默认安装在C盘第1步:第2步:将PE_Plugin.dll文件复制到com文件夹中,路径如下:C:\Program Files(x86)\Freescale\CodeWarrior for Microcontrollers V6.3\bin\plugins\com第3步:以…

Blender里的三种绑定 (三)骨骼

文章目录Blender里的三种绑定.骨骼.骨骼基础.骨骼的父子关系.挤出骨骼.细分骨骼.骨骼分层.骨骼分组.骨骼约束.骨骼被遮挡.对称骨骼.为模型绑定骨骼.刚体物体,只跟随骨骼的移动,不随骨骼移动发生形变,如机械.软体物体,跟随骨骼的移…

手写RPC框架第7版-框架容错性相关设计

源代码地址:https://github.com/lhj502819/IRpc/tree/v8 系列文章: 注册中心模块实现路由模块实现序列化模块实现过滤器模块实现自定义SPI机制增加框架的扩展性的设计与实现基于线程和队列提升框架并发处理能力框架容错性相关设计通过SpringBoot-Starte…

数据结构:关于空间复杂度的例题计算

1、计算冒泡排序的空间复杂度 答案:该程序空间复杂度为O(1)。 解析:该程序在栈空间所申请的临时变量空间只有三个,也就是看成常数个,所以是O(1)。如下图所示 2、动态开辟N个数的数组空间复杂度 答案:该程序空间复杂度…

【UE4 第一人称射击游戏】31-更好的UI界面

素材资料地址:链接:https://pan.baidu.com/s/1epyD62jpOZg-o4NjWEjiyg密码:jlhr上一篇:【UE4 第一人称射击游戏】30-简单的任务提示功能本篇效果:步骤:在UE中新建一个“HUD_Export”文件夹,将所…

《码出高效:java开发手册》七 - 并发与多线程

前言 现代CPU运算速度以百亿计,家用计算机和操作系统也是数十进程,数百线程,程序相应也需要采用多线程和并发的技术 并发和并行:并发是指某个时间段,多任务处理;并行是指同时处理多任务的能力;…

接口测试项目实战与经典面试题解析,挑战 BAT 大厂必会!

近年来,接口测试技术体系已在各大互联网企业落地普及,各种新接口框架不断涌现,业界也形成了不少成熟方案和成功案例。当前 BAT 大厂在招聘测试人员时,接口测试技能和项目经验是必考重点,直接影响到职级评定和薪资水平&…

2023/1/10 Vue学习笔记6 - 路由基本使用

1 路由的简介-router 1、路由就是一组key-value的对应关系。 2、多个路由,需要经过路由器的管理。 SPA (single page web application)应用 - 单页面web应用 {"key":"/class","value":"班级组件" }1.vue-rout…

kali中wpscan工具使用

一.wpscan工具简介 wpscan是一款专门针对wordpress的扫描工具,采用ruby语言编写,能够扫描worpress网站中包括主题漏洞、插件漏洞以及wordpress网站本身存在的漏洞。wpscan还可以扫描wordpress网站启用的插件和其他功能。 在Kali Linux系统中&#xff0…

关于distinct——去除重复记录

distinct译为:不同的,有区别的;在SQL语句中表示去除重复记录的意思 举例:在员工表emp中查询所有的工作岗位。 分析:在员工表中的工作岗位字段下有重复的工作岗位,我们在查询的时候就希望将重复的工作岗位显…

数据库取证——MySQL基础知识

目录 一、数据库基础知识 (一)数据库(DB) (二)数据库管理系统(DBMS) (三)数据库系统(DBS) (四) 数据库的…