Pick of the Week'22 |第 13 周看点更多 MATCH 查询姿势

每周看点

每周五 Nebula 为你播报每周看点,每周看点由固定模块:产品动态、社区问答、推荐阅读,和随机模块:本周大事件构成。

作为查询的核心子句之一,MATCH 的用法在本周的 #3929、#3997 两个 pr 的加持之下变得更加丰富。除了更丰富的 MATCH 用法之外,本周的社区问答方面带你了解更多的索引使用姿势,了解 Nebula Graph 中索引的定位。

本周大事件

直播预告 | Cloud on nLive 听 Cloud 技术专家聊云原生

在本次直播活动中,邀请了 Nebula Cloud 技术专家——乔雷 @kevin.qiao 来聊聊他对云原生、Nebula Graph Cloud 的看法。

如果你对 云原生 和 Nebula Graph Cloud 有任何产品设计、技术上的问题,可扫描下方二维码向他提问~

每周看点

产品动态

本周 Nebula 主要有这些产品动态:

社区问答

Pick of the Week 每周会从官方论坛、知乎、微信群、微信公众号及开源中国等渠道精选问题同你分享。

主题分享

本周分享的主题是【索引设计问题】,由社区用户 qianjiangchao1992 提出,Nebula 研发同学负责解答,原帖出自 Nebula 论坛:https://discuss.nebula-graph.com.cn/t/topic/7905

qianjiangchao1992:官方文档上写索引不提高加速查询,仅支持定位。那我是不是只要每个 TAG 随便建一个索引就好,我不太理解为什么不能提高性能?

Nebula:可以阅读下索引讲解文章,以及这里摘录部分当中不加速方面的观点:

  • 不加速从确定的 VID 点的查询,因为 VID 本身就是有序存储的(或者说本身已经被索引了),这个索引是增加了属性反查 VID 的可能;
  • 属性反查 VID 在没有索引的时候是被禁止的(除非 LIMIT n),引入索引不是加速这样的查询,而是使这种属性反查 VID 查询成为可能;
  • 图查询中的拓展(即使带有属性过滤),因为都是有序的扫 key 数据,过滤也只是读取 value 反序列化 过滤,为属性排序的索引是帮不上忙的。

Nebula 进阶技能

本周的 Nebula 进阶技能分享一个【GO 和 MATCH 执行相同语义的查询,查询结果为什么不同?】,来源于官方文档:https://docs.nebula-graph.com.cn/3.0.1/20.appendix/0.FAQ/#gomatch

使用 GOMATCH 执行相同语义的查询,查询结果为什么不同?

原因可能有以下几种:

  • GO 查询到了悬挂边。

  • RETURN 命令未指定排序方式。

  • 触发了 Storage 服务中 max_edge_returned_per_vertex 定义的稠密点截断限制。

  • 路径的类型不同,导致查询结果可能会不同。

    • GO 语句采用的是 walk 类型,遍历时点和边可以重复。

    • MATCH 语句兼容 openCypher,采用的是 trail 类型,遍历时只有点可以重复,边不可以重复。

因路径类型不同导致查询结果不同的示例图和说明如下。

路径示例

从点 A 开始查询距离 5 跳的点,都会查询到点 C(A->B->C->D->E->C),查询 6 跳的点时,GO 语句会查询到点 D(A->B->C->D->E->C->D),因为边C->D可以重复查询,而MATCH语句查询为空,因为边不可以重复。

所以使用 GOMATCH 执行相同语义的查询,可能会出现 MATCH 语句的查询结果比 GO 语句少。

关于路径的详细说明,请参见维基百科:https://en.wikipedia.org/wiki/Path_(graph_theory)#Walk,_trail,_path

注:虽然这里是用了 3.0 的文档链接,但是该内容适用于 v2.x 以上版本;

推荐阅读

星云·小剧场

为什么给图数据库取名 Nebula

Nebula 是星云的意思,很大嘛,也是漫威宇宙里面漂亮的星云小姐姐。对了,Nebula 的发音是:[ˈnɛbjələ]

本文星云图讲解–《星雲NGC 281》

星雲NGC 281

NGC 281位在仙后座内,离我们大约 1 万光年远,因其外观,也常被戏称为小精灵星云。这幅清晰的组合影像,是由数张窄波段照片组合而成,其中,星云的氢和氧原子辐射,分别以红、绿和蓝来呈现。

影像提供与版权:Jeremiah Roth
作者与编辑:Robert Nemiroff (MTU) & Jerry Bonnell (UMCP)


交流图数据库技术?加入 Nebula 交流群请先填写下你的 Nebula 名片,Nebula 小助手会拉你进群~~

关注公众号


这是一个从 https://nebula-graph.com.cn/posts/nebula-graph-weekly-pickup-2022-03-25/ 下的原始话题分离的讨论话题