一种图数据库的多层穿透查询方法及其装置与流程

文档序号:34453715发布日期:2023-06-13 20:26阅读:136来源:国知局
一种图数据库的多层穿透查询方法及其装置与流程

本技术涉及数据访问领域,尤其涉及一种基于离线节点稠密度统计的图数据库的多层穿透查询方法以及图数据库的多层穿透查询装置。


背景技术:

1、对于统计结果,我们往往会想进一步知道数字的来源、构成,甚至需要查到每一个单子的具体情况。这就需要用到穿透查询了。例如,在一个统计表中点击相应数字,会显示构成该数字的表单协同列表,就是这个数字由几张单子构成的。具体点击这个表单协同,会显示该表单的原始状态。这样,就象一个汇总的结果数字一层一层的穿透,查到数字的初始情况。

2、在现有技术中,对于在图数据库进行穿透查询时,一般是对于所有节点指定固定的查询最大深度。图1是表示了现有技术中图数据库的穿透查询方法的一个示例的流程示意图。如图1所示,现有技术的图数据库的穿透查询方法中,根据业务需求和实践经验指定最大的查询深度,然后基于单个多层穿透查询任务像图数据库进行穿透查询。这种情况下,存在的问题是,由于图谱数据是以节点和边的数据结构形式存储于数据库中,根据节点的疏密情况不同,一次相同深度的查询可能覆盖数据量差异很大,而且由于对于所有节点指定固定的查询最大深度,当指定过大的查询深度的情况下,在对稠密节点进行查询时可能会造成响应缓慢,图数据库内存溢出等问题。


技术实现思路

1、本发明为了消除上述一项或者多项问题,旨在提供一种查询响应速度快并且能够降低查询时内存溢出可能性的图数据库的多层穿透查询方法以及图数据库的多层穿透查询装置。

2、本发明一方面的图数据库的多层穿透查询方法,其特征在于,包括:

3、判断步骤,接收穿透查询任务,根据所述穿透查询任务涉及的被查询节点的稠密度判断是否命中缓存中的数据,若是,则进行以下的读取步骤,若否,则进至以下的拆分步骤,其中,在所述缓存中预先存储有规定稠密度的节点的穿透查询结果;

4、读取步骤,直接读取所述缓存中的穿透查询结果并进至以下的输出步骤;

5、拆分步骤,将所述穿透查询任务拆分多个查询子任务并获取所述多个查询子任务的查询结果;

6、归并步骤,将所述多个查询子任务的查询结果进行归并得到穿透查询结果;以及

7、输出步骤,输出所述穿透查询结果。

8、可选地,在所述判断步骤之前包括:

9、离线计算图谱内各节点的稠密度并且将稠密度存储在图数据库中;以及

10、将规定稠密度的节点的穿透查询结果预先写入到缓存中。

11、可选地,所述规定稠密度的节点包括以下的一项或者/以及多项:

12、超级节点;以及

13、热点节点,

14、其中,将某层级深度下某节点可达的节点个数或者层级深度定义为该节点在该深度下的节点密度,并且将所述节点密度达到规定阈值的节点定义为所述超级节点,

15、其中,所述热点节点基于生产经验所确定。

16、可选地,所述判断步骤包括:

17、获取被查询节点的节点密度;

18、根据当前查询深度以及预先设定的稠密度基准值,基于所述被查询节点的节点密度判断该是否为稠密点;

19、若为非稠密点则直接调用图数据库进行穿透查询,若为稠密点则判断是否命中缓存中的数据。

20、可选地,所述拆分步骤包括:

21、假设被查询节点为v0,查询深度为x,所述穿透查询任务为调用图数据库深度为t层的穿透查询,则获得最大深度为i的叶子节点集合vt以及每个叶子节点对应的父路径集合pti;

22、对于所述叶子节点集合vt内的每一个节点vti,建立一个对应的子查询任务,查询深度为x-t,查询规则同所述被查询节点v0;

23、获取得到多个子查询任务的查询结果,即从所述节点vti出发最大深度为x-t的子路径集合cpti。

24、可选地,所述归并步骤中包括:

25、合并所述父路径集合pti和所述子路径集合cpti;以及

26、根据规定原则截断循环路径并去重。

27、可选地,所述规定原则为点可重复边不可重复。

28、本发明一方面的图数据库的多层穿透查询装置,其特征在于,包括:

29、缓存模块,预先存储有规定稠密度的节点的穿透查询结果;

30、判断模块,用于接收穿透查询任务并根据所述穿透查询任务涉及的被查询节点的稠密度判断是否命中缓存中的数据;

31、读取模块,用于读取所述缓存中的穿透查询结果;

32、拆分模块,用于将所述穿透查询任务拆分多个查询子任务并获取所述多个查询子任务的查询结果;

33、归并模块,用于将所述多个查询子任务的查询结果进行归并得到穿透查询结果;以及

34、输出模块,用于输出所述穿透查询结果。

35、可选地,进一步包括:

36、计算模块,用于离线计算图谱内各节点的稠密度;

37、图数据库,用于存储所述稠密度;以及

38、写入模块,用于将规定稠密度的节点的穿透查询结果写入到缓存中。

39、可选地,所述规定稠密度的节点包括以下的一项或者/以及多项:

40、超级节点;以及

41、热点节点。

42、其中,将某层级深度下某节点可达的节点个数或者层级深度定义为该节点在该深度下的节点密度,节点密度达到规定阈值的节点定义为所述超级节点,

43、其中,所述热点节点基于生产经验所确定。

44、可选地,在所述判断模块中执行以下动作:

45、获取被查询节点的节点密度;

46、根据当前查询深度以及预先设定的稠密度基准值,基于被查询节点的节点密度判断该是否为稠密点;

47、若为非稠密点则直接调用图数据库进行穿透查询,若为稠密点则判断是否命中缓存中的数据。

48、可选地,所述拆分模块执行以下动作:

49、假设被查询节点为v0,查询深度为x,所述多层穿透查询任务为调用图数据库深度为t层的穿透查询,则获得最大深度为i的叶子节点集合vt以及每个叶子节点对应的父路径集合pti;

50、对于所述叶子节点集合vt内的每一个节点vti,建立一个对应的子查询任务,查询深度为x-t,查询规则同所述被查询节点v0;以及

51、获取得到多个子查询任务的查询结果,即从所述节点vti出发最大深度为x-t的子路径集合cpti。

52、可选地,所述归并模块执行以下任务:

53、合并所述父路径集合pti和所述子路径集合cpti;以及

54、根据规定原则截断循环路径并去重。

55、可选地,所述规定原则为点可重复边不可重复。

56、本发明一方面的股权关系穿透查询方法,应用所述的图数据库的多层穿透查询方法。

57、本发明一方面的计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时所述的图数据库的多层穿透查询方法。

58、本发明一方面的计算机设备,包括存储模块、处理器以及存储在存储模块上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的图数据库的多层穿透查询方法。

59、根据本发明的图数据库的多层穿透查询方法以图数据库的多层穿透查询装置,能够大幅降低复杂查询的响应时间,而且能够大幅降低发生查询过程因内存溢出而终止查询的可能性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1