技术解读 I TuGraph查询引擎简析

技术解读 | TuGraph图分析引擎技术剖析 借助TuGraph的 C++ 图分析引擎 API ,用户可以对不同数据来源的图数据快速导出一个待处理的复杂子图,然后在该子图上运行诸如BFS、PageRank、LPA、WCC等迭代式图算法,最后根据运行结果做出相应的对策。参数模块作用于分析引擎中的Standalone模式,用于对图的一般信息(如数据来源,算法名称,数据输入、输出路径,顶点个数等)以及根据不同数据来源、不同算法所配置的不同信息参数进行接受和整理,传输给图算法及各个模块,同时将最终结果模块化展示。一般分为预处理、算法过程、结果分析三个阶段。 阅读详情

(预计阅读时间:5分钟)

存储和计算是图数据库的两个重要组成部分。TuGraph的计算层包括图分析引擎、图查询引擎和图学习引擎。我们之前已经介绍了 图分析引擎 ,现在我们将分享一下图查询引擎。

图片

图查询引擎是一种用于查询图数据库的工具,它使用特定的查询语言(如Cypher或ISO GQL)来执行和操作图数据库。这些查询语言允许用户描述图模式并查询图数据,例如查找特定节点或查找节点之间的路径。

目前,TuGraph支持使用Open Cypher作为查询语言,即将支持ISO GQL查询语言。与关系型数据库的SQL类似,Open Cypher和ISO GQL都是声明式查询语言。它们需要转换成高效的命令式执行计划,以便计算机系统能够理解和执行。查询引擎需要完成理解用户查询意图和转换执行计划的功能。

在本文中,我们将概述Open Cypher/ISO GQL查询如何执行,但不会详细探讨其中的技术细节,以帮助用户从整体上理解TuGraph查询引擎的工作原理。

01  TuGraph查询引擎架构

TuGraph在不断演进,将图查询和图分析引擎融合在一起,旨在提供混合查询和分析能力,并保持一致的使用体验。其架构如下图所示:

图片

02  查询引擎工作流程

TuGraph查询引擎的主要步骤包括:

1. 将输入的查询字符串转换为抽象语法树(AST)。

2. 优化并归一化AST,生成通用语法中间表示(GST)。

3. 使用GST创建查询图并提取符号表,创建逻辑执行计划。

4. 优化逻辑执行计划。

5. 根据逻辑执行计划创建(物理)执行计划。

6. 校验schema约束、访问权限等。

7. 执行上述执行计划,得到查询结果。

将输入的查询字符串转换为抽象语法树(AST)

将用户输入的(Open Cypher或者ISO GQL)查询字符串转换为抽象语法树(AST)。在此过程中,任何语法错误都会被捕获并返回给用户,但我们在此阶段不进行语义检查。

优化并归一化AST,生成通用语法中间表示(GST)

在将查询字符串转换为抽象语法树(AST)后,我们仍需要解决一些问题。首先,原始AST层次较高,分支较为繁杂。更重要的是,AST与查询语言相关,不同的查询语言(如Open Cypher和ISO GQL)会生成完全不同的AST,这不利于后续的统一处理。

为了解决这些问题,我们将在此步骤中完成以下任务:

  • 进行语义检查。

  • 根据语义生成通用语法表示(GST),对AST进行压缩,以便按相同语义进行处理。

  • 无论使用哪种查询语言,生成的GST都是相同的。

使用GST创建查询图并提取符号表,创建逻辑执行计划

我们使用通用语法中间表示(GST)来创建查询图,它是查询的更抽象、更高级的表示。使用查询图而不是直接在GST上操作,可以更有效地计算成本和执行优化。

逻辑计划是一棵多叉树,由类似于关系数据库逻辑计划所使用的运算符组成。为每个查询图生成一个逻辑计划(根据查询,查询图可能由子查询图组成)。这是按照自下而上的方法逐步完成的。

优化逻辑执行计划

在传统的关系型数据库中,关系代数(以及等价的元组关系演算和域关系演算)构成了数据库查询理论的基础。它们也是执行计划优化的理论基础。

TuGraph总结了图代数是SQL关系代数的扩展,如下图所示:

图片

因此,TuGraph的优化器包含了许多优化,例如filter安置、dedup安置、traversal规划、lazy materialization等等。在后续的文章中,我们将详细介绍这些优化。

由逻辑执行计划创建(物理)执行计划

我们为逻辑运算符选择物理实现并缓存执行计划,从而根据逻辑计划创建执行计划。物理执行计划是一棵由运算符组成的树,它与逻辑执行计划同构。其中的每个物理运算符都准确地完成逻辑运算符规定的操作,接收逻辑运算符规定的输入输出。

校验schema约束、访问权限等

在此步骤中,我们会对执行计划的有效性进行校验,包括schema约束、访问权限等。如果校验不通过,我们将报错并返回给用户。

执行上述执行计划得到查询结果

通过校验的执行计划将被实际执行,执行的结果将作为查询结果返回给用户。

03 小结

一款卓越的图查询引擎通常具备如下特质:功能强大、快速执行查询、易于使用、并且能够扩展到更大型的图数据库以提供卓越的性能。TuGraph查询引擎的设计恰是基于这些特质而进行的。我们将在未来用更多文章详细介绍TuGraph查询引擎的设计和每一步的工作。

了解更多:

https://tugraph.antgroup.com/

https://github.com/tugraph-family

END

往期回顾

→ TuGraph图数据库登陆阿里云,免费试用进行中

→ 蚂蚁图数据库再获LDBC权威测试世界第一

→ 蚂蚁集团开源图数据库TuGraph,成立图计算开源委员会

▼ 关注蚂蚁图计算,了解最新资讯

一张图读懂TuGraph Analytics开源技术架构 GeaFlow(TuGraph-Analytics)是蚂蚁集团开源的分布式实时图计算引擎,即流式图计算。通过SQL+GQL融合分析语言对表模型和图模型进行统一处理,实现了流、批、图一体化计算,并支持了Exactly Once语义、高可用以及一站式图研发平台等生产化能力。 阅读详情

相关推荐

LangChain工程化全链路解析:从API调用到Agent自治

LangChain作为主流AI应用开发框架,其核心价值在于将大模型能力封装为可组合、可观测、可运维的工程单元。它基于Runnable抽象统一接口,通过LCEL表达式实现类型安全的链式编排,支撑RAG检索增强与Agent自主决策两类关键范式。理解其Models/Prompts/Memory/Chains/Agents六大组件的设计契约,是构建高可用AI系统的基础——例如PromptTemplate保障提示词版本化与变量注入一致性,RunnableWithMessageHistory实现记忆状态的插拔式管理。本

diaojin6880的博客 487

SQL 之后,GQL 成为 ISO/IEC 国际标准数据库语言项目

Graph Query Language(GQL,图形查询语言) 是由同时维护 SQL 标准的国际工作组开发和维护的一种新语言。 GQL 很大程度上借鉴了现有的语言,主要的灵感来自 Cypher(现在实现版本有 10 多个,包括 6 个商业产品)、Oracle 的 PGQL 和 SQL 本身。GQL 项目是自 SQL 之后的第一个 ISO/IEC 国际标准数据库语言项目。 今年 6 月,隶属 ...

寒冰屋的专栏 1742

深入解读TuGraph计算引擎模型推理系统

TuGraph计算引擎模型推理系统将基于迭代计算的图计算框架与模型推理系统相结合,推理系统可自定义推理依赖环境,图迭代计算与推理链路实现隔离。基于共享内存的跨进程通信方式,提高了推理数据交换效率,满足流图近线推理的时效性。

TuGraph的博客 1534

TuGraph使用中的疑惑

我在GitHub上看到了关于使用WITH改写WHERE条件的建议,这引起了我的疑惑。此外,关于问题解答和技术支持方面,除了开发者交流群外,是否有其他支持渠道或社区可以提供帮助和指导?LMDB作为TuGraph使用的存储引擎,虽然简化了实现,但当数据量远超过内存大小时,可能会面临大量缺页和换页问题,影响性能。存储过程只能安装在子图上,同样的存储过程需要进行重复加载,是否可以支持全局的存储过程?我遇到了重边问题,不确定是我使用的问题还是缺乏相关PK的配置说明,希望得到相关的解决方案。

luofu001的博客 480

ChatTuGraph:通过大模型“与图对话”

相比于SQL相对成熟的语法标准,图查询语言尚未形成成熟的统一标准,目前是多种查询语法并存的状态,上手门槛高,因此更需要借助大语言模型的自然语言理解能力,降低图数据库查询语言的使用门槛。

TuGraph的博客 925

TuGraph Analytics交互式图查询:让图所见即所得

TuGraph Analytics提供了OLAP图分析能力,实现图上的交互式查询,用户在构图并导入数据之后,可以通过输入GQL语句对图查询分析,并以可视化的方式直观地展示点边结果。

TuGraph的博客 1157

TuGraph 开源数据库体验

TuGraph 是蚂蚁集团自主研发的大规模图计算系统,提供图数据库引擎和图分析引擎。其主要特点是大数据量存储和计算,高吞吐率,以及灵活的 API,同时支持高效的在线事务处理(OLTP)和在线分析处理(OLAP)。

RockyBlogs 1987

拆解特斯拉Optimus的关节技术:谐波减速器在仿人机器人中的5个精妙设计

本文深度解析特斯拉Optimus仿人机器人关节中的谐波减速器技术,揭示其五大工程突破:微型化材料革命、两万分之一圈精度实现、碳纤维柔轮轻量化、智能运维系统及国产替代方案。重点探讨谐波减速器如何通过创新设计和先进材料实现精准传动,为仿人机器人提供高效可靠的关节动力解决方案。

omega的博客 1077

TuGraph安装与简单使用

TuGraph 是蚂蚁集团自主研发的大规模图计算系统,提供图数据库引擎和图分析引擎。其主要特点是大数据量存储和计算,高吞吐率,以及灵活的 API,同时支持高效的在线事务处理(OLTP)和在线分析处理(OLAP)。 LightGraph、GeaGraph 是 TuGraph 的曾用名。

cacique111的博客 1万+

英伟达Orin芯片:自动驾驶的标杆产品

英伟达Orin芯片是面向自动驾驶和边缘AI的高性能SoC,采用7nm工艺,单芯片算力达254TOPS(INT8),功耗45-55W。其硬件架构包含12核ARM CPU、Ampere GPU、专用DLA和PVA加速器,支持64GB LPDDR5内存,符合车规级ASIL-D安全标准。软件生态涵盖DRIVE OS、CUDA、TensorRT等工具链,提供全栈解决方案。Orin已被理想、蔚来等车企采用,主要竞争对手包括高通Snapdragon Ride和地平线征程系列。面试需重点掌握算力指标、异构计算架构、Tens

学习代码 1827

PaddleOCR SVTRv2中文识别模型训练全流程:从数据准备到推理部署

本文详细介绍了基于PaddleOCR的SVTRv2中文识别模型从数据准备、模型训练到推理部署的全流程实战。SVTRv2凭借其单视觉Transformer架构和分层混合机制,在中文文字识别任务上实现了高精度与效率的平衡。文章重点解析了数据工程、训练调优技巧及部署优化方案,帮助开发者构建定制化的OCR解决方案。

weixin_29194817的博客 287

TuGraph Cypher 查询语句

【代码】TuGraph Cypher 查询语句。

qq_43806430的博客 875

从7V到28V宽压输入,手把手教你设计一个5V/3A的DCDC电源模块(附MPS1584选型与原理图避坑)

本文详细解析了基于MPS1584芯片的7V至28V宽压输入到5V/3A输出的DCDC电源模块设计全流程。从电源架构选择、原理图设计要点到实际调试经验,涵盖了输入保护电路、功率转换核心电路及系统级优化测试,帮助工程师规避常见设计陷阱,实现高效稳定的电源解决方案。

weixin_33712987的博客 499

TuGraph cypher工具的使用

在shell下输入以下指令 找到之后,cd 进入cypher工具所在的文件夹成功运行lgraph_cypher.py 需要提前安装的Python包 添加国内源 记得修改对应的ip以及端口号 127.0.0.1 就是localhost 工具包成功安装之后,调用如下命令可以直接进行cypher查询 -f 可以加cypher文件,而不只是单条查询语句如果不输入-s -f 会进入交互模式 更换图 在这种模式下可以直接输入cypher语句进行查询,但要记得末尾的 ;多行输入cypher语句

qq_43806430的博客 1269

支付宝周期扣款实战:从签约到主动扣款的完整Java代码与避坑指南

本文详细介绍了支付宝周期扣款功能的完整Java实现流程,从协议签约到主动扣款的各个环节,包括业务模型设计、签约接口实现、异步通知处理、主动扣款技术等关键步骤。针对开发中常见的陷阱和问题,提供了实用的避坑指南和代码示例,帮助开发者高效实现连续支付功能,提升用户留存率。

weixin_27199085的博客 376

educoder中Hive综合应用案例 — 用户搜索日志分析

Hive综合应用案例 — 用户搜索日志分析

weixin_46026136的博客 4798

GQL 来了!ISO/IEC 正式发布 GQL 数据库国际标准!

又一数据库国际标准诞生!

创邻科技 1539

第二大脑的觉醒:一个寄生在代码里的小生命,如何悄无声息地接管我的工作流

所有记忆都存在本地。

步子哥的博客 1064

数据库语言 GQL

它支持插入、更新、删除和读取由目录条目创建和引用的属性图,这些图的内容可以是未受约束的,或者由管理员定义的数据模型(称为图形类型)规定。这些图形类型作为GQL(遵循SQL)称为“GQL模式”的一部分指定:目录中专用于元数据和数据定义的容器,还通过定义数据所有权来启用安全模型的基础,数据所有权由经过身份验证的主体(用户)拥有。完整的GQL语言支持超出本文档范围的其他功能。GQL支持无模式图,对输入的数据没有限制,以及固定模式图,其中图可以通过图形类型创建,该图形类型指定了图中可以存在的节点和关系类型的限制。

oscube的博客 2478

【网络安全】浅谈数据库攻击复现及相关安全优化

4、准备数据库服务器为了安全正式环境应该把数据库单独放一台服务器,只允许让应用服务器 IP 来访问数据库服务器,通过独立两者,就算其中一台发生问题,另一台也是好的,进一步降低了危险性。5、定时备份数据库开发定时备份功能,可以使用 Crontab,或者其他框架,设定周期备份数据,哪怕是数据丢失或被删除也可以快速恢复。

2401_88545587的博客 223

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

TuGraph基础操作入门

TuGraph图数据库由蚂蚁集团与清华大学联合研发,构建了一套包含图存储、图计算、图学习、图研发平台的完善的图技术体系,拥有业界领先规模的图集群,解决了图数据分析面临的大数据量、高吞吐率和低延迟等重大挑战,是蚂蚁集团金融风控能力的重要基础设施,显著提升了欺诈洗钱等金融风险的实时识别能力和审理分析效率,并面向金融、工业、政务服务等行业客户。指定边的起/终点类型:可限制边的起点和终点点类型,支持同类型边的起点和终点的点类型不同,如个人转账给公司、公司转账给公司;若要模拟无向边,用户可以创建两个方向相反的边。

u010479989的博客 1436

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

TuGraph图数据库快速入门指南

TuGraph采用顶点(Node)、边(Relationship)和属性(Property)三元组构建图结构,每个节点可携带多个属性键值对。:通过Docker镜像快速启动服务,默认开放7070(HTTP)和9090(RPC)端口。:区分实体类型(如movie/person)和关系类型(如produce/acted_in),通过二级子节点定义属性结构。:社交网络分析、推荐系统、金融风控等需要处理复杂关系的领域,特别适合处理"谁认识谁"、"谁影响了谁"这类关联查询。:定期备份图数据,生产环境修改默认密码。

QuartzStag78的博客 753

STM32F407中文手册

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

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

TUGRAPH的使用

图数据库的定义与应用场景图数据库是一种以图结构存储和处理数据的数据库类型,其核心由节点(实体)、边(关系)和属性组成。节点代表实体(如人、地点),边表示实体间的关系(如朋友、隶属),属性用于描述节点或边的特征。与传统关系型数据库不同,图数据库通过直接存储关系来优化复杂关联查询,避免多表连接操作,适合处理高度互联的数据。

czh123456xx的博客 358

ElasticSearch与Graph:图数据库与关系查询

1.背景介绍 1. 背景介绍 ElasticSearch是一个开源的搜索和分析引擎,基于Lucene库构建,具有强大的文本搜索和分析功能。它可以用于实时搜索、数据聚合和分析等场景。Graph数据库是一种专门用于存储和管理网络数据的数据库,它以图形结构存储数据,具有强大的关系查询功能。 在现代互联网应用中,数据的复杂性和规模不断增加,传统的关系型数据库已经无法满足需求。图数据库和Elastic...

AI天才研究院 1343

Nebula 架构剖析系列(二)图数据库的查询引擎设计

摘要 上文(存储篇)说到数据库重要的两部分为存储和计算,本篇内容为你解读图数据库 Nebula 在查询引擎 Query Engine 方面的设计实践。 在 Nebula 中,Query Engine 是用来处理 Nebula 查询语言语句(nGQL)。本篇文章将带你了解 Nebula Query Engine 的架构。 上图为查询引擎的架构图,如果你对 SQL 的执行引擎比较熟悉,那么对上图一定...

weixin_44324814的博客 915

图计算引擎Gemini和Graphscope有什么区别?

图计算引擎其实结合了图计算和图分析,在目前的研究中,图查询和图计算系统是相互独立的,但在实际应用中两者通常是同时存在的。所以图计算引擎其实是在图查询系统里面整合了图计算的功能,形成一个全新的图计算引擎功能。图计算和图分析已经问世一段时间了,但是图计算引擎是这几年才有的,国内比较有名的就是阿里的GraphScope,一个支持图计算、图分析、图查询的一站式图计算平台。感谢你的提问,希望能对你的提问有所帮助“图计算”中的“图”指的是数据结构,针对“图论”而非图像。图G由节点V(vertice)与边E(edge)构

figliano的博客 1007
上一篇: 蚂蚁高性能图数据库TuGraph-DB的技术思考与实践
下一篇: TuGraph在国产ARM平台上性能再次打破世界纪录
TuGraph
博客等级 码龄4年 183粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值