基于科技咨询大规模图数据的查询任务优化方法

文档序号:28807633发布日期:2022-02-09 02:58阅读:77来源:国知局
基于科技咨询大规模图数据的查询任务优化方法

1.本技术涉及大规模图数据查询领域,尤其涉及一种基于科技咨询大规模图数据的查询任务优化方法、装置及存储介质。


背景技术:

2.图数据上的查询任务是知识图谱领域最基础的问题之一,因此通常需要在大规模图数据上进行高效的查询处理,以使得用户可以快速得到查询结果。
3.目前,虽然图数据上的查询优化技术取得了长足的进步,但是仍然存在一些问题:如图查询优化的图分区技术,可以将图数据拆分到多个服务器,但是服务器的通信成本和处理开销较高等。并且,大部分查询优化技术中是基于社交网络的图数据进行查询优化,并不适用科技咨询场景的复杂拓扑结构的图数据。因此,如何基于科技咨询大规模图数据的查询任务优化是亟需解决的问题。


技术实现要素:

4.本技术提供一种基于科技咨询大规模图数据的查询任务优化方法、系统及存储介质,以提出一种基于科技咨询大规模图数据的查询任务优化方法。
5.本技术第一方面实施例提出一种基于科技咨询大规模图数据的查询任务优化方法,包括:
6.获取查询任务的标识;
7.根据所述查询任务的标识,选择对应的查询优化方法,其中,查询优化方法包括调整图遍历展开顺序策略、cardinality减少、模式提前、物化视图;
8.利用所述查询优化方法对图数据库进行查询,输出查询结果。
9.本技术第二方面实施例提出一种基于科技咨询大规模图数据的查询任务优化系统,包括:
10.获取模块,用于获取查询任务的标识;
11.选择模块,用于根据所述查询任务的标识,选择对应的查询优化方法,其中,查询优化方法包括调整图遍历展开顺序策略、cardinality减少、模式提前、物化视图;
12.显示模块,用于利用所述查询优化方法对图数据库进行查询,输出查询结果。
13.本技术第三方面实施例提出的计算机存储介质,其中,所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被处理器执行后,能够实现如上第一方面所述的方法。
14.本技术第四方面实施例提出的计算机设备,其中,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时,能够实现如上第一方面所述的方法。
15.本技术的实施例提供的技术方案至少带来以下有益效果:
16.本公开提供的基于科技咨询大规模图数据的查询任务优化方法、系统及存储介质
中,获取查询任务的标识,并根据查询任务的标识,选择对应的查询优化方法,其中,查询优化方法包括调整图遍历展开顺序策略、cardinality减少、模式提前、物化视图,然后利用查询优化方法对图数据库进行查询,输出查询结果。由此可知,本公开提出的方法中,可以根据查询任务的标识选择对应的查询优化方法,提高了查询方法的灵活性。同时,本公开提出的方法中,查询优化方法提高了科技咨询大规模图数据不同场景下查询任务的查询效率,降低了查询计算的复杂度,缩短了查询所花费的时间。
17.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
18.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
19.图1为根据本技术一个实施例提供的基于科技咨询大规模图数据的查询任务优化方法的流程示意图;
20.图2为根据本技术一个实施例提供的基于科技咨询大规模图数据的查询任务优化系统的结构示意图。
具体实施方式
21.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
22.本公开提供的基于科技咨询大规模图数据的查询任务优化方法、系统及存储介质中,获取查询任务的标识,并根据查询任务的标识,选择对应的查询优化方法,其中,查询优化方法包括调整图遍历展开顺序策略、cardinality减少、模式提前、物化视图,然后利用查询优化方法对图数据库进行查询,输出查询结果。由此可知,本公开提出的方法中,可以根据查询任务的标识选择对应的查询优化方法,提高了查询方法的灵活性。同时,本公开提出的方法中,查询优化方法提高了科技咨询大规模图数据不同场景下查询任务的查询效率,降低了查询计算的复杂度,缩短了查询所花费的时间。
23.下面参考附图描述本技术实施例的基于科技咨询大规模图数据的查询任务优化方法及系统。
24.实施例一
25.图1为根据本技术一个实施例提供的基于科技咨询大规模图数据的查询任务优化方法的流程示意图,如图1所示,所述方法可以包括:
26.步骤101、获取查询任务的标识。
27.需要说明的是,本公开的实施例中,查询任务可以包括机构、人才、产业链。其中,本公开的实施例中,机构可以是公司的id,人才可以是人员
28.其中,本公开的实施例中,可以根据查询任务的内容获取该查询任务的标识。示例的,本公开的实施例中,假设查询任务是查看某人员关联的公司、专利情况,则获取该查询任务的标识。
29.步骤102、根据查询任务的标识,选择对应的查询优化方法,其中,查询优化方法包括调整图遍历展开顺序策略、cardinality减少、模式提前、物化视图。
30.其中,本公开的实施例中,不同的标识对应不同的查询优化方法,可以根据查询任务的标识,选择对应的查询方法。
31.以及,本公开的实施例中查询优化防范可以包括调整图遍历展开顺序策略、 cardinality减少、模式提前、物化视图。
32.进一步地,本公开的实施例中,调整图遍历展开顺序策略结合科技咨询实际查询场景,设计双向bfs的图遍历展开顺序,同时从起点和终点两个方向开始搜索,一旦搜索到另一个方向已经搜索过的位置(或者出现某个状态被两个方向均访问了),则找到了一条连通起点和终点的最短路径。然后向最短路中间的某一点汇集,在路径中点相遇,因此双向bfs的节点数是2*
nm/2+1
数量级。
33.具体的,本公开的实施例中,调整图遍历展开顺序策略可以包括以下步骤:
34.s11、输入源实体节点和目标实体节点,并输入中间实体节点类型mtype,和路径模式pattern;
35.s12、初始化s1、s2两个节点集合,其中s1初始化为输入的源实体节点, s2初始化为输入的目标实体节点;
36.s13、利用pattern和mtype计算双向bfs的展开顺序,并用pattern1表示左端展开顺序,pattern2表示右端展开顺序;
37.s14、若s1或s2不为空,则继续执行步骤s15;否则,执行步骤s111;
38.s15、s为本层扩展节点的集合;
39.s16、交换s1和s2,交替从左端扩展和从右端扩展;
40.s17、对s1集合里的每个节点node,按照模式扩展node的下一层邻居节点,并用next_nodes表示;
41.s18、对每个next_nodes里的节点进行判断,如果节点在s集合中,即找到一条路径,进行步骤s111;
42.s19、将本层扩展的所有节点next_nodes加入集合s中,并将集合s复制给 s1,存储路径;
43.s110、重复步骤s14;
44.s111、结束。
45.示例的,本公开的实施例中,查询任务给定了产业链标签tag和人员信息 person,从tag出发查询其子产业链标签,以及属于该子产业链标签的专利,及专利所属的公司,公司的任职/投资等关联人员。在已经构建好的科技咨询知识图谱中,产业链-子产业链标签-专利这条路径上会生成146284个专利中间节点,若使用单向bfs再对146284个专利进行扩展将会产生爆炸性中间结果,严重影响查询性能。
46.若使用本公开实施例中的双向bfs的图遍历展开顺序优化策略,从起点和终点进行双向搜索,即产业链标签-子产业链标签-专利和人员-公司-专利两条方向遍历,将产业链标签-子产业链标签-专利生成的146284个专利中间节点处理成哈希表,再反向从人员节点开始,将人员-公司-专利这条路径生成一组结果,最终将这组结果与哈希表做交集,找到符合条件的连通起点和终点的路径,且时间复杂度也仅需要o(n)。
47.进一步地,本公开的实施例中,cardinality表示去重后唯一值的数量,比如columns cardinality(列基数)指列包含的不重复值的个数。这个数量对于直接影响模型压缩的效果和引擎扫描时的性能。因此需要尽量将cardinality减少到最低,以缩短查询需要的时间。
48.其中,本公开的实施例中,cardinality减少可以包括以下步骤:
49.s21、输入源实体节点和路径模式pattern;
50.s22、next_nodes为扩展下一层的节点集合,并初始化为按照模式扩展的源实体节点的下一层邻居节点;
51.s23、对next_nodes节点去重;
52.s24、q为节点队列,初始化为next_nodes;
53.s25、若q不为空,继续执行步骤s26;否则执行步骤s212;
54.s26、size为当前队列数量;
55.s27、若size不为空,继续执行步骤s28;否则执行步骤s211;
56.s28、弹出当前队列node节点;
57.s29、按照模式扩展node的下一层邻居节点next_nodes;
58.s210、将next_nodes加入队列q;
59.s211、若当前遍历完模式pattern,则继续执行步骤s212,否则执行步骤 s25;
60.s212、结束。
61.示例的,本公开的实施例中,在科技咨询实际场景下的知识图谱中,两点之间可能会有重边或不同类型的边,比如“公司”节点与“人员”节点存在着“公司-投资人”/“公司-公示股东-人”/“公司-任职人员”三种关系。因此,从某一公司出发寻找与其相邻的“人员”节点,可能会从上述三种关系定位到某些相同的“人员”节点,从而产生重复的节点。而重复冗余的节点会增加 cardinality,当重复的“人员”节点继续寻找相邻节点时,就会重复的进行遍历,从而会增加中间节点数量,进行增加了查询时间。因此,本公开的实施例中,使用distinct提前优化策略来减少cardinality。
62.具体的,本公开的实施例中,在科技咨询场景下的查询任务是给定了人员 person,从给定的person查询寻找其关联的公司,以及该公司拥有的专利,及专利所属的产业链标签,输出符合路径的无重复的公司、专利、产业链标签元组。本公开实施例使用distinct提前减少cardinality的优化策略,将去重操作提前至重复节点产生之后,即在“人员”节点遍历到“公司”节点后立刻进行去重操作,将201个有重复的公司中间节点减少至无重复的公司节点131个,从而减少了中间节点的产生,降低后续遍历时间。
63.进一步地,本公开的实施例中,需要根据业务条件获取并筛选出目标数据,这个过程为数据查询的过滤。在大规模图查询任务中会存在大量的过滤操作,而过滤过程中使用的各种过滤条件是获取精准数据的必要步骤,例如,基本运算法(《、》、=、!=)、逻辑运算(and、or、not)和模式匹配。
64.其中,本公开的实施例中,模式提前可以包括以下步骤:
65.s31、输入源实体节点、路径模式pattern、过滤模式filter_pattern;
66.s32、初始化模式提前集合filter_nodeset;
67.s33、q为节点队列,初始化为为输入的源实体节点;
68.s34、若q不为空,则继续执行步骤s35;否则执行步骤s313;
69.s35、初始化当前队列数量size;
70.s36、若size不为空,则继续进行步骤s37;否则执行步骤s312;
71.s37、弹出当前队列node节点;
72.s38、按照模式扩展node的下一层邻居节点next_nodes;
73.s39、判断当前next_nodes节点类型是否为filter_nodeset的节点类型,若是,则继续执行步骤s310;否则执行步骤s311;
74.s310、遍历next_nodes集合的节点next_node,若节点next_node在 filter_nodeset集合中,则过滤掉该节点;
75.s311、将next_nodes加入队列q;
76.s312、若当前遍历完模式pattern,则继续执行步骤s313,否则执行步骤 s35;
77.s313、结束。
78.示例的,本公开的实施例中,在科技咨询场景下的查询任务是给定产业链标签信息tag,从tag出发查询其关联的公司,以及该公司拥有的专利,存在一个过滤条件为:公司不能有经营异常,即不存在公司-经营异常的模式,输出无重复的公司、专利元组。
79.具体的,本公开的实施例中的模式提前是利用集合的高效查找代替模式里的遍历操作。将公司-经营异常这个模式提前做,将与“经营异常”节点关联的公司id信息放入一个哈希表中,然后过滤条件会判断“公司”节点是否存在哈希表中,若“公司”节点不存在哈希表中,则表示该公司无经营异常,则仅需要3292次o(1)的时间复杂度进行集合查找,从而提高了查询效率。
80.进一步地,本公开的实施例中,主要是利用物化视图预先计算并保存表连接或聚集等耗时较多的操作的结果,以便在后续执行查询任务时,可以避免进行耗时较多的操作,从而可以快速得到查询结果。在科技咨询场景下,物化视图对于那些经常重复使用相同的查询结果的热点问题查询性能大幅提升,从而快速地从物化视图中读取数据。
81.示例的,本公开的实施例中,在科技咨询场景下的查询任务给定产业链标签信息tag,从tag出发查询其子产业链标签,以及属于该子产业链标签的公司,然后查询以子产业链标签为起始节点,途径专利最终遍历到达公司节点的路径,统计符合该模式的公司信息和专利数量。若对每个公司都单独进行查询,耗时非常严重。但是,本公开实施例中的物化视图方法可以提前获取每个公司所拥有的专利,对每个专利判断其所属的产业链标签并聚合,得到产业链标签下的专利数量录入到“公司-产业链标签”边的属性之中,预计算的物化视图提高了查询效率。
82.步骤103、利用查询优化方法对图数据库进行查询,输出查询结果。
83.其中,本公开的实施例中,利用上述步骤102中的查询优化方法对图数据库进行查询,并输出查询的结果。以及,本公开的实施例中,查询结果可以包括节点之间在图数据库中的关联关系。
84.本公开提供的基于科技咨询大规模图数据的查询任务优化方法中,获取查询任务的标识,并根据查询任务的标识,选择对应的查询优化方法,其中,查询优化方法包括调整图遍历展开顺序策略、cardinality减少、模式提前、物化视图,然后利用查询优化方法对图数据库进行查询,输出查询结果。由此可知,本公开提出的方法中,可以根据查询任务的标
识选择对应的查询优化方法,提高了查询方法的灵活性。同时,本公开提出的方法中,查询优化方法提高了科技咨询大规模图数据不同场景下查询任务的查询效率,降低了查询计算的复杂度,缩短了查询所花费的时间。
85.图二为根据本技术一个实施例提供的基于科技咨询大规模图数据的查询任务优化系统的结构示意图,如图2所示,所述系统可以包括:
86.获取模块201,用于获取查询任务的标识;
87.选择模块202,用于根据查询任务的标识,选择对应的查询优化方法,其中,查询优化方法包括调整图遍历展开顺序策略、cardinality减少、模式提前、物化视图;
88.显示模块203,用于利用查询优化方法对图数据库进行查询,输出查询结果。
89.其中,本公开的实施例中,查询任务可以包括机构、人才、产业链。
90.本公开提供的基于科技咨询大规模图数据的查询任务优化方法、系统及存储介质中,获取查询任务的标识,并根据查询任务的标识,选择对应的查询优化方法,其中,查询优化方法包括调整图遍历展开顺序策略、cardinality减少、模式提前、物化视图,然后利用查询优化方法对图数据库进行查询,输出查询结果。由此可知,本公开提出的方法中,可以根据查询任务的标识选择对应的查询优化方法,提高了查询方法的灵活性。同时,本公开提出的方法中,查询优化方法提高了科技咨询大规模图数据不同场景下查询任务的查询效率,降低了查询计算的复杂度,缩短了查询所花费的时间。
91.本技术第三方面实施例提出的计算机存储介质,其中,所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被处理器执行后,能够实现如上第一方面所述的方法。
92.本技术第四方面实施例提出的计算机设备,其中,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时,能够实现如上第一方面所述的方法。
93.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
94.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
95.尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1