图计算101:图计算的类型、语言与系统

pregel 与 spark graphX 的 pregel api 本文介绍了谷歌的新“三驾马车”之一的pregel图计算框架,并详解了spark graphX中提供的pregel api。 阅读详情

本文是图计算 101 系列的第二篇文章,将繁杂的图计算任务根据其计算模式的特性进行分类,并对每一类的图计算任务进行简要的介绍。

背景

现实生活中的很多数据都可以建模成图(Graph)这一抽象的结构。这种高效紧凑的数据形式可以表示出拓扑、属性、时序等丰富的信息,而图计算的目标就是从图结构中挖掘出有价值的知识或规律,例如频繁模式、因果关系等。随着信息时代的到来,数据规模呈爆炸式增长,产生了对大规模的图数据进行高效处理的需求,图计算已经成为了工业界和学术界的热点话题,并因此诞生了一系列的图计算系统及优化研究工作。

复杂的业务场景,致使图数据的计算类型也是多种多样的。目前,存在着三种最主要的图计算类型,分别是图查询、图分析和图学习,下面我们就逐一地进行介绍。

图查询

通常来说,图数据非常庞大,而图数据的交互式查询只关心其中满足条件的比较少量的点和边。如下图所示,这些点和边会形成特定的路径,或者子图模式。例如,从一个地方到另一个地方的最优路线,或者物流的路径信息,都是典型的路径查询场景。子图模式是另一种类型的图查询,它用子图表示某种模式,然后用这个子图在全图中进行匹配查询。

路径查询(右)和子图查询(左)

路径查询的本质是图的遍历,通常按照如下的步骤进行:首先将图上特定的顶点设为待查点;然后每个待查点通过自己所连接的满足条件的边找到目标端点集合,检查目标端点是否满足查询目标;如果满足则将该目标端点放入结果集,否则将该目标端点设置为新的待查点。一直重复这样的步骤,直到没有待查点。简单来说,就是在图查询的整个过程中,按照用户指定的条件,一步一步在图上游走遍历,并最终获得想要的结果。

另一种类型的图查询,即子图查询,其理论基础是子图同构。用户需要给定待查询的子图(点、边以及它们所要满足的条件),然后从数据图上查找所有满足条件的结果,使得:每个结果是数据图上的子图;该子图和查询图是同构的;且该子图所映射的点和边满足查询图上对应点和边的查询条件。简单来说,就是在大图中去寻找用户关心的某种特定结构。

图查询最典型的两大主流语言,分别是 Gremlin 和 Cypher。Gremlin 基于 Groovy,但有许多语言变体,允许开发者以 Java、Python 等编程语言原生编写查询。它既包含命令式也包含声明式的语义,能方便表达图遍历的逻辑,所以被众多图数据库系统采用,例如 JanusGraph、InfiniteGraph、Cosmos DB、DataStax Enterprise(5.0+)、Amazon Neptune 等。另一种图查询语言 Cypher 则采用了基于描述式的模式匹配。因为与 SQL 类似,具有语法简单和灵活性高的特点,因此被 neo4j、RedisGraph、AgensGraph 等系统采用。

例如,在包含 person 和 location 类型点的图中,查询与 mike 一起居住的人,用 Gremlin 和 Cypher 编写的查询语句分别如下所示。

# Grem
大数据架构师必知必会系列:图计算 随着互联网和移动互联网的快速发展,全球数据量呈爆炸式增长,数据之间的关联性也日益复杂。传统的数据库管理系统在处理海量、高关联数据时面临着巨大挑战,难以满足日益增长的数据分析和挖掘需求。在此背景下,图数据库和图计算技术应运而生,为处理复杂关联数据提供了一种全新的解决方案。图数据库以图论为基础,使用节点、边和属性来表示和存储数据之间的关系。相比于传统关系型数据库,图数据库能够更直观、高效地存储和查询关联数据,尤其适用于社交网络、推荐系统、知识图谱等领域。 阅读详情

相关推荐

图数据库 | 4、图数据库三大组件之一 ——图计算 (上)

在图数据库中有三大组件,笔者先从图计算开始。一般情况下,图计算可以等同于图数据库,毕竟图数据库最重要的工作就是图计算。然而,从图论以及数据库的发展历程来看,在相当长的一段时间内,图计算框架基本是独立发展的,而图数据库是近20年内才开始形成的。最早的图计算的内容是研究一些基于图论的算法,例如1959年发表的Dijkstra算法(一种在道路网络中寻找最短路径的算法)​。在图数据库的语境下,图计算关注的是如何高效地完成数据库的查询、计算、分析,以及对数据的动态调整。

Ultipa的博客 1776

2026华为OD机试(C语言)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,C语言实现。

MISAYAONE的博客 11万+

【信息科学与工程学】计算机科学与自动化—第十五篇 云计算 11 算法篇01

编号类型领域问题问题的数学分析(含几何学/拓扑学/代数学/数论/集合论/离散数学/概率论/统计学/其他)及数值分析及算法分析及参数列表及参数数值设计C/C++/rust/python代码软件(含编译器)及硬件资源需求(CPU/GPU/内存【NAND/DRAM/HBM/其他】/HBM、HDD、SSD、RAID卡、其他)关联知识1工作负载调度数据中心最小化总完成时间/成本。

weixin_49199313的博客 220

ubuntu为Docker配置代理

我们平常在ubuntu终端中使用curl或git命令时,往往会很慢。所以,首先需要给ubuntu终端环境添加代理。查看自身那个软件的端口号,我这里是7890。

不想随波逐流的大学生一枚,我们每个人都在努力奔跑 1643

Windows安装WSL子系统及docker,以及WSL和docker配置、使用及问题解决

在Windows操作系统中,Ubuntu子系统(也称为Windows Subsystem for Linux, WSL)为开发者提供了一个在Windows环境下运行Linux环境的平台。然而,有时用户在按照Ubuntu子系统或者使用WSL时,可能会遇到各种问题,下面总结一下解决方式。想要在Windows上安装Docker(实际上是基于Hyper-V或者WSL2这两项虚拟化技术),需要开启虚拟化功能,所以不管是对于系统还是硬件都有一定的要求。

sym的博客 9785

用例设计:滴滴打车从轿车到完成支付如何测?

滴滴打车全流程测试用例设计从业务场景覆盖、功能逻辑分解、异常流验证三个维度展开,系统化地构建了测试方案。首先,业务流主干场景被分解为叫车、行程中、支付结算三个阶段,每个阶段都设计了核心测试用例,包括正向和异常用例,如定位准确性、车型选择逻辑、路径偏移监控、费用实时计算、多支付方式兼容等。专项测试补充了状态机验证、资损防控测试和性能测试,确保系统在不同情况下的稳定性和安全性。测试数据策略采用等价类划分设计,实战技巧包括流量回放技术、混沌工程注入和计费沙盒验证,以提高测试的覆盖率和准确性。最终输出交付物包括流程

海姐软件测试的博客 1524

【OpenClaw 故障排查完全指南】

OpenClaw 故障排查指南摘要 本指南针对OpenClaw 2026.2.26版本常见问题提供解决方案,适用于Windows/Linux/macOS平台。 核心问题及修复方案: 飞书插件连接失败:删除冲突插件或重装OpenClaw Ollama认证错误:设置环境变量OLLAMA_API_KEY="ollama-local" 配置警告:可安全忽略的安全扫描提示 端口占用:查找并终止占用18789端口的进程 插件重复加载:清理重复插件目录 快速修复: 提供一键修复PowerShell脚本

weixin_37572294的博客 1万+

Xilnx大学计划/XUP ZYNQ ZU开发板

TUL PYNQ™-ZU板,基于Xilinx Zynq UltraScale+ MPSoC,是为Xilinx大学项目设计的,以支持Xilinx PYNQ (Python Productivi-ty for Zynq)开源框架和嵌入式系统开发。

weixin_57025922的博客 947

15 RK3568 RTL8111 PCIE

我这边扩了三个网卡。pcie3.0拆分了1+1lane。需要注意自己的reset引脚修改为自身rtl引脚即可。1、调试pcie 扩展网卡 RTL8111。

qq_39451352的博客 179

innovus:Patch Wire(补丁线)

1)选中wire ,shift+A使用Edit Route功能,F3打开edit route对话框。线道Create Patch Wire,设置好层次和宽度。在修补一些min area的drc时,会有一些danling wire的drc冒出来,为了避免这些假错,可以使用工具patch wire功能。2)沿着选中的wire画线即可。如下图,patch wire和regular wire是能看出区别的。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 1963

【Flutter 问题系列第 16 篇】如何防止软键盘弹出后顶掉内容

Flutter 如何防止软键盘弹出后顶掉内容

“Allen Su”的博客 3317

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: GraphScope analytics in Java:打破大规模图计算的跨语言障碍
下一篇: 从安装到编译: 10分钟教你在本地使用和开发GraphScope
graphscope
博客等级 码龄5年 33粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值