一种图数据库中多跳查询的优化方法、系统和装置制造方法及图纸

技术编号:37570425 阅读:26 留言:0更新日期:2023-05-15 07:48
本申请涉及一种图数据库中多跳查询的优化方法、系统和装置,其中,该方法包括:初始化图数据库的图数据中所有节点的查询属性;设置指定节点的查询属性,使指定节点被激活为活跃节点;重复执行基于活跃节点的查询属性迭代计算直接邻居节点的查询属性,当迭代计算的次数达到预设次数的情况下,统计参与迭代计算的节点的查询属性,得到指定节点的多跳查询结果。通过本申请,解决了现有图数据库多跳查询存在的网络请求次数多和计算复杂的问题,在多跳查询计算过程中,通过将节点标记为活跃节点和非活跃节点,大幅度减少参与计算的节点数量和消息传播量。息传播量。息传播量。

【技术实现步骤摘要】
一种图数据库中多跳查询的优化方法、系统和装置


[0001]本申请涉及图数据库
,特别是涉及一种图数据库中多跳查询的优化方法、系统和装置。

技术介绍

[0002]图数据库已经成为一种常见类型的数据库,它们可以有效地存储和管理具有复杂关联关系的数据。但是,在对大型图数据进行分析和查询时,往往需要计算指定节点的k跳邻居,即从一个节点出发,沿着边走k步能够到达的所有节点。虽然图数据库上关系查询的性能胜于关系型数据库,但由于在图数据库中进行k跳查询需要对图进行多次高深度图遍历,即从源节点开始,逐层扩展,直到查询到距离源节点为k的所有节点,在此过程中还需要对最终查询的结果进行去重,内存占用大;且存在一个节点被多次访问的情况,会有大量的重复计算。由此可见,传统主流图数据库中的k跳邻居查询存在着网络请求次数多、内存数据迁移量大,计算复杂度高的问题,尤其是在处理大规模图数据的场景下。
[0003]目前针对相关技术中现有图数据库多跳查询存在的网络请求次数多和计算复杂的问题,尚未提出有效的解决方案。

技术实现思路

[0004]本申请实施例提供了一种图数据库中多跳查询的优化方法、系统和装置,以至少解决相关技术中现有图数据库多跳查询存在的网络请求次数多和计算复杂的问题。
[0005]第一方面,本申请实施例提供了一种图数据库中多跳查询的优化方法,所述方法包括:初始化图数据库的图数据中所有节点的查询属性;设置指定节点的查询属性,使所述指定节点被激活为活跃节点;重复执行基于所述活跃节点的查询属性迭代计算直接邻居节点的查询属性,当所述迭代计算的次数达到预设次数的情况下,统计参与所述迭代计算的节点的查询属性,得到所述指定节点的多跳查询结果;所述迭代计算直接邻居节点的查询属性包括:将所述活跃节点的查询属性发送到所述活跃节点的直接邻居节点,使所述活跃节点被抑制为非活跃节点;通过所述活跃节点的查询属性更新所述直接邻居节点的查询属性,使所述直接邻居节点被激活为活跃节点。
[0006]在其中一些实施例中,通过所述活跃节点的查询属性更新所述直接邻居节点的查询属性包括:所述活跃节点的查询属性为包含迭代计算过程中节点ID信息的集合,用于标识所述活跃节点作为所述指定节点的邻居节点的级别;将所述直接邻居节点的节点ID信息加入所述活跃节点的查询属性中,得到的新查
询属性作为所述直接邻居节点的查询属性。
[0007]在其中一些实施例中,将所述活跃节点的查询属性发送到所述活跃节点的直接邻居节点包括:若所述活跃节点的边为有向边,则所述活跃节点的直接邻居节点为所述有向边指向的节点,将所述活跃节点的查询属性发送到所述直接邻居节点;若所述活跃节点的边为无向边,则从所述无向边关联的节点中选出未曾被激活的节点作为所述活跃节点的直接邻居节点,将所述活跃节点的查询属性发送到所述直接邻居节点。
[0008]在其中一些实施例中,在初始化图数据库的图数据中所有节点的查询属性之前,所述方法包括:采用分布式计算框架,将图数据库中各服务器存储的图数据加载到内存中。
[0009]在其中一些实施例中,将图数据库中各服务器存储的图数据加载到内存中包括:判断图数据库中各服务器存储的图数据的类型;若图数据库中服务器存储的图数据为数值型ID图数据,则将所述数值型ID图数据直接加载到内存中;若图数据库中服务器存储的图数据为非数值型ID图数据,则将所述非数值型ID图数据编码为数值型ID图数据,并加载到内存中。
[0010]在其中一些实施例中,统计参与所述迭代计算的节点的查询属性,得到所述指定节点的多跳查询结果包括:采用所述分布式计算框架,分别统计各服务器中参与所述迭代计算的节点的查询属性,将统计得到的查询属性进行汇总,得到所述指定节点的多跳查询结果。
[0011]在其中一些实施例中,所述分布式计算框架包括Apache Spark Graphx计算框架和Plato计算框架。
[0012]在其中一些实施例中,在得到所述指定节点的多跳查询结果之后,所述方法包括:将所述指定节点的多跳查询结果存储在图数据库中,作为所述指定节点的节点属性。
[0013]第二方面,本申请实施例提供了一种图数据库中多跳查询的优化系统,所述系统包括初始化模块、多跳查询模块和迭代计算模块;所述初始化模块,用于初始化图数据库的图数据中所有节点的查询属性;所述多跳查询模块,用于设置指定节点的查询属性,使所述指定节点被激活为活跃节点;所述迭代计算模块,用于重复执行基于所述活跃节点的查询属性迭代计算直接邻居节点的查询属性,当所述迭代计算的次数达到预设次数的情况下,统计参与所述迭代计算的节点的查询属性,得到所述指定节点的多跳查询结果;所述迭代计算直接邻居节点的查询属性包括:将所述活跃节点的查询属性发送到所述活跃节点的直接邻居节点,使所述活跃节点被抑制为非活跃节点;通过所述活跃节点的查询属性更新所述直接邻居节点的查询属性,使所述直接邻居节点被激活为活跃节点。
[0014]第三方面,本申请实施例提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的方法。
[0015]相比于相关技术,本申请实施例提供的一种图数据库中多跳查询的优化方法、系统和装置,其中,该方法通过初始化图数据库的图数据中所有节点的查询属性;设置指定节点的查询属性,使指定节点被激活为活跃节点;重复执行基于活跃节点的查询属性迭代计算直接邻居节点的查询属性,当迭代计算的次数达到预设次数的情况下,统计参与迭代计算的节点的查询属性,得到指定节点的多跳查询结果,解决了现有图数据库多跳查询存在的网络请求次数多和计算复杂的问题,在多跳查询计算过程中,通过将节点标记为活跃节点和非活跃节点,大幅度减少参与计算的节点数量和消息传播量,同时降低了分布式场景下rpc通信的请求次数。
附图说明
[0016]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是根据本申请实施例的图数据库中多跳查询优化方法的步骤流程图;图2是根据本申请实施例的图数据库中多跳查询优化系统的结构框图;图3是根据本申请实施例的电子设备的内部结构示意图。
[0017]附图标识:21、初始化模块;22、多跳查询模块;23、迭代计算模块。
具体实施方式
[0018]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0019]显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种图数据库中多跳查询的优化方法,其特征在于,所述方法包括:初始化图数据库的图数据中所有节点的查询属性;设置指定节点的查询属性,使所述指定节点被激活为活跃节点;重复执行基于所述活跃节点的查询属性迭代计算直接邻居节点的查询属性,当所述迭代计算的次数达到预设次数的情况下,统计参与所述迭代计算的节点的查询属性,得到所述指定节点的多跳查询结果;所述迭代计算直接邻居节点的查询属性包括:将所述活跃节点的查询属性发送到所述活跃节点的直接邻居节点,使所述活跃节点被抑制为非活跃节点;通过所述活跃节点的查询属性更新所述直接邻居节点的查询属性,使所述直接邻居节点被激活为活跃节点。2.根据权利要求1所述的方法,其特征在于,通过所述活跃节点的查询属性更新所述直接邻居节点的查询属性包括:所述活跃节点的查询属性为包含迭代计算过程中节点ID信息的集合,用于标识所述活跃节点作为所述指定节点的邻居节点的级别;将所述直接邻居节点的节点ID信息加入所述活跃节点的查询属性中,得到的新查询属性作为所述直接邻居节点的查询属性。3.根据权利要求1所述的方法,其特征在于,将所述活跃节点的查询属性发送到所述活跃节点的直接邻居节点包括:若所述活跃节点的边为有向边,则所述活跃节点的直接邻居节点为所述有向边指向的节点,将所述活跃节点的查询属性发送到所述直接邻居节点;若所述活跃节点的边为无向边,则所述活跃节点的直接邻居节点为所述无向边的关联节点中未曾被激活的节点,将所述活跃节点的查询属性发送到所述直接邻居节点。4.根据权利要求1所述的方法,其特征在于,在初始化图数据库的图数据中所有节点的查询属性之前,所述方法包括:采用分布式计算框架,将图数据库中各服务器存储的图数据加载到内存中。5.根据权利要求4所述的方法,其特征在于,将图数据库中各服务器存储的图数据加载到内存中包括:判断图数据库中各服务器存储的图数据的类型;若图数据库中服务器存...

【专利技术属性】
技术研发人员:王昌圆郝彤吴敏叶小萌
申请(专利权)人:杭州悦数科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1