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

(预计阅读时间: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,成立图计算开源委员会

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值