属性图查询方法、属性图查询装置以及存储介质与流程

文档序号:31303713发布日期:2022-08-27 07:28阅读:83来源:国知局
属性图查询方法、属性图查询装置以及存储介质与流程

1.本技术涉及图数据库领域,特别是涉及一种属性图查询方法、属性图查询装置以及存储介质。


背景技术:

2.随着各行业中企业数字化转型的不断加深,越来越多的数据被产生,因此需要数据库来存储这些数据。其中,由于关系型数据数量越来越多,在处理关联关系具有极大优势的图数据库已成为当前市场用于例如社交网络、通信等对数据之间关系敏感的领域最热门的选择。图数据库可以灵活地对大量的数据关系之间进行操作。
3.在一应用场景中,用户在对图数据库中数据进行查询时,图数据库会根据用户的查询指令生成查询索引,并基于此索引对数据库中数据进行查询。在此查询的执行过程中,图数据库需要根据查询索引对所有数据进行遍历以找到想要的结果,这种执行过程在最坏的情况下需要把全部数据都查询一遍,导致查询速度低下。在数据数量众多时,需要耗费大量时间。


技术实现要素:

4.本技术主要解决的技术问题是如何提高属性图的查询速度,对此,本技术提供一种属性图查询方法、属性图查询装置以及存储介质。
5.为解决上述技术问题,本技术采用的一个技术方案是:提供一种属性图查询方法,该方法包括:获取用户的查询指令;解析查询指令,根据解析结果生成若干查询步骤,每一查询步骤对应至少一个查询对象;基于第一个查询步骤的查询对象从图数据库中搜索若干初次查询图数据;基于其余查询步骤的查询对象,确定查询路径代价,并按照查询路径代价获取查询批量数;按照查询批量数从初次查询图数据中搜索最终查询图数据。
6.其中,查询指令至少包括查询图数据的查询对象,查询对象为所述查询图数据的数据类别。
7.其中,基于其余查询步骤的查询对象,确定查询路径代价,包括:获取其余查询步骤中每个查询对象所对应的查询图属性;计算每个查询图属性的图属性期望值;基于图属性期望值,确定查询路径代价。
8.其中,按照查询路径代价获取查询批量数,包括:按照查询路径代价与查询指令中所需查询图数据数量,获取查询批量数。
9.其中,基于图属性期望值,确定查询路径代价,包括:获取其余查询步骤的查询顺序;基于图属性期望值计算对应的查询步骤代价;按照查询顺序和查询步骤代价确定查询路径代价。
10.其中,按照查询顺序和查询步骤代价确定查询路径代价,包括:获取每个查询步骤对应的查询对象的数量;按照查询顺序,基于查询对象的数量计算每个查询步骤与其上一个查询步骤对应的查询对象的数量的乘积;基于乘积与查询步骤代价确定查询路径代价。
11.其中,计算每个查询图属性的图属性期望值,包括:获取每个查询图属性在数据库中的查询总数,以及查询图属性中具体分类的查询数量;基于具体分类的查询数量中的最小值与查询总数的比值,确定查询图属性的图属性期望值。
12.其中,在获取其余查询步骤中每个查询对象所对应的查询图属性之后,还包括:判断所有查询图属性是否存在图属性期望值;若否,则将查询路径代价设置为所需查询图数据数量与预定系数的乘积。
13.其中,按照查询批量数从初次查询图数据中搜索最终查询图数据,包括:基于获取的查询批量数设置每次查询数量;基于每次查询数量在初次查询图数据中进行并行查询,搜索最终查询图数据。
14.其中,在基于第一个查询步骤的查询对象从图数据库中搜索若干初次查询图数据之后,还包括:判断其余查询步骤中查询对象是否存在查询图属性;若否,则将查询代价值设置为一预设值,并按照预设值从初次查询图数据中搜索最终查询图数据。
15.为解决上述技术问题,本技术采用的另一个技术方案是:提供一种属性图查询装置,该属性图查询装置包括处理器和存储器,存储器与处理器耦接,存储器存储有程序数据,处理器用于执行程序数据以实现如上述的属性图查询方法。
16.为解决上述技术问题,本技术采用的另一个技术方案是:提供一种计算机可读存储介质,该计算机可读存储介质存储有程序数据,程序数据在被执行时,用于实现上述的属性图查询方法。
17.本技术的有益效果是:区别于现有技术的情况,本技术提供的属性图查询方法应用于属性图查询装置,属性图查询装置获取用户的查询指令;解析查询指令,根据解析结果生成若干查询步骤,每一查询步骤对应至少一个查询对象;基于第一个查询步骤的查询对象从图数据库中搜索若干初次查询图数据;基于其余查询步骤的查询对象,确定查询路径代价,并按照查询路径代价获取查询批量数;按照查询批量数从初次查询图数据中搜索最终查询图数据。通过上述方式,与常规的属性图查询方法相比,本技术采用的利用属性图查询装置解析从用户获取的查询指令后,基于对查询指令中查询图属性的图属性期望值计算查询批量数的方式,可以基于需要查询的数据库中数据的数量优化设置每次并行查询的数量,以达到对查询批量数合理设置并对查询过程进行合理优化的效果。本属性图查询方法能够基于属性图数据的统计结果生成图属性期望值并获得每次并行查询的数量,能够更有效地进行查询操作,还在保证了查询的速度的情况下合理设置查询数量,不浪费数据库资源。
附图说明
18.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:图1是本技术提供的属性图查询方法第一实施例的流程示意图;图2是本技术提供的属性图查询装置执行属性图查询方法的流程示意图;图3是本技术提供的属性图查询方法步骤14一实施例的流程示意图;
图4为本技术提供的属性图查询装置的查询流程图;图5是本技术提供的属性图查询装置第一实施例的结构示意图;图6是本技术提供的属性图查询装置第二实施例的结构示意图;图7是本技术提供的计算机可读存储介质一实施例的结构示意图。
具体实施方式
19.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
20.参阅图1与图2,图1是本技术提供的属性图查询方法第一实施例的流程示意图,图2是本技术提供的属性图查询装置执行属性图查询方法的流程示意图。
21.本技术提供的属性图查询方法应用于图数据库中,图数据库中的数据以属性图的格式存储,数据库中的数据类别可为人、事件、物体等,在此不做限定。一个属性图是由顶点、边、标签、属性组成的有向图,其中顶点也被称为节点,每个节点代表了一个实体,例如某一具体的人、事物。类别或其他数据等,边也被称为关系,代表了两个节点之间的连接关系。标签是节点或关系的类型,属性为节点或关系的附加描述信息,以一节点“小明”为例,“人”即为该节点标签,“性别”、“年龄”可为该节点的属性。
22.如图1和图2所示,本技术实施例的属性图查询方法包括:步骤11:获取用户的查询指令。
23.具体地,用户可以在属性图查询装置的显示屏幕上通过勾选或直接输入查询条件的方式选择想要查询的数据,属性图查询装置会基于用户的操作获取用户的查询指令。
24.在本技术一实施例中,用户所选的图数据库可以为一包含人和事件两标签类型的数据库,其中存储了具体的人与具体事件之间的关系。其中,以用户想要查询在中国银行附近徘徊的身高为185的男性为例,用户可以在查询对象列表内选择查询对象为人和事件,再在对应的查询对象列表下选择人的身高属性为185,性别属性为男,选择事件的地点属性为中国银行附近,动作属性为徘徊。用户也可以直接在搜索框内输入全部查询条件以进行搜索。属性图查询装置获取用户输入的条件,基于此条件进行生成数据库查询语句。
25.步骤12:解析查询指令,根据解析结果生成若干查询步骤,每一查询步骤对应至少一个查询对象。
26.参阅图2,属性图查询装置获取用户下发的图查询请求指令,并对其进行解析。根据解析的结果生成属性图查询装置执行查询操作的查询步骤,其中每个查询步骤中包括对某一个对象的查询,例如一查询步骤为查询所有满足在中国银行附近徘徊的事件对象。
27.步骤13:基于第一个查询步骤的查询对象从图数据库中搜索若干初次查询图数据。
28.请继续参阅图2,属性图查询装置基于生成的查询步骤,根据图数据库的预定优化规则,先查询其中一个查询对象的查询索引。以前面所述的查找在中国银行附近徘徊的身高为185的男性为例,属性图查询装置可以生成一个事件索引,通过此事件索引查找到所有符合地点属性为中国银行附近,动作属性为徘徊的事件。生成的查询索引也可以为对人的
索引,在此不做限定。
29.具体地,查询索引为属性图查询装置中对数据库表中一列或多列的值进行排序的一种结构,使用查询索引可以快速访问并获取数据库表中的特定信息,提升查询效率。
30.步骤14:基于其余查询步骤的查询对象,确定查询路径代价,并按照查询路径代价获取查询批量数。
31.具体地,其余查询步骤为属性图查询装置除了查询索引步骤以外的查询步骤。查询路径代价为属性图查询装置的整个图查询步骤执行过程中需要循环遍历的路径的代价。查询批量数为属性图查询装置对经过查询索引筛选后的对象中进行剩余限定条件查询时的每次查询的数量。例如,当需要查询得到的图数据为所有在中国银行附近徘徊的身高为185的男性时,设置的查询批量数为100,查询索引为查找在中国银行附近徘徊的所有人,则此时的查询批量数代表从在满足中国银行附近徘徊的所有人中每次抽取100个人进行是否满足身高为185的男性条件的判断,以此来获得最终的查询结果。此处的查询索引也可以为查找所有身高为185的男性相关的所有事件,在此不做限定。
32.请继续参阅图2,属性图查询装置会获取其余查询步骤中需要查询的对象,并在确定查询路径代价之前,属性图查询装置会判断其余查询步骤中的查询对象是否存在对属性的过滤条件。若不存在,则将查询代价值设置为一预设值,并按照预设值从初次查询图数据中搜索最终查询图数据。
33.具体地,属性图查询装置将经过查询索引查询后筛选出的查询对象基于查询指令进行是否存在对属性取值限定的判断,如果不存在,则将查询批量数设定为一默认的值。例如,当查询指令为在中国银行附近徘徊的人时,经过查询索引后剩余步骤中的查询对象并不存在对属性的过滤条件,因此将查询批量数设定为10,表示属性图查询装置每次将抽取10个对象进行查询。
34.可选地,在属性图查询装置进行完对经过查询索引查询后筛选出的查询对象基于查询指令进行是否存在对属性取值限定的判断后,若存在,则属性图查询装置将通过查询对象的查询图属性计算出每个属性的图属性期望值,并基于图属性期望值计算出整个查询路径的查询路径代价值。
35.可选地,在一实施例中,如图3所示,图3是步骤14一实施例的流程示意图,该步骤14可以具体包括:步骤141:获取其余查询步骤中每个查询对象所对应的查询图属性。
36.具体地,其余查询步骤为属性图查询装置除了查询索引步骤以外的查询步骤。例如,查询指令为查询在中国银行附近徘徊的身高为185的男性,属性图查询装置将查询索引设置为查找满足在中国银行附近徘徊这一事件的所有人,则其余查询步骤为从所有满足在中国银行附近徘徊的人中寻找身高为185的男性。此时的查询对象为人,所对应的查询图属性为身高185,性别为男。
37.步骤142:计算每个查询图属性的图属性期望值。
38.具体地,属性图查询装置会对整个图数据库中的数据进行统计,对除了属于精确条件的属性例如人的姓名、电话号等唯一的属性进行统计,获得每个查询图属性中每个属性取值所占数量。一图数据库中性别属性和身高属性的数量分布如下表所示。
39.属性图查询装置利用每个查询图属性数量总数除以每个属性取值中最小值,得到的结果即为对应属性的图属性期望值。以计算性别这一属性的图属性期望值为例,属性图查询装置获得图数据库中带有性别属性的数据的总数为20万,其中男性为10万,女性为10万,则性别这一属性的图属性期望值为20/10=2。
40.步骤143:基于图属性期望值,确定查询路径代价。
41.具体地,属性图查询装置会获取其余查询步骤的查询顺序,基于图属性期望值计算对应的查询步骤代价,按照查询顺序和查询步骤代价确定查询路径代价。查询步骤代价为每个查询步骤中每个查询图属性的图属性期望值相乘。
42.具体地,属性图查询装置获取每个查询步骤对应的查询对象的数量用于计算查询路径代价,按照查询顺序,基于查询对象的数量计算每个查询步骤与其上一个查询步骤对应的查询对象的数量的乘积,基于乘积与查询步骤代价确定查询路径代价。以上文的查询在中国银行附近徘徊的身高为185的男性为例,属性图查询装置已用查询索引找出所有满足在中国银行附近徘徊的人,则查询顺序为先查询事件,再从查询所得的事件中查询满足身高为185的男性。所以查询人的步骤代价值则为身高图属性期望值与性别图属性期望值相乘。基于上表的数据,身高图属性期望值为20/2=10,性别图属性期望值为2,则查询人的步骤代价值为10
×
2=20。属性图查询装置在得到了查询人的步骤代价值之后,可以根据查询顺序,将每个查询步骤代价值相乘,再乘上按照查询顺序倒叙得到的每个查询步骤对应的查询对象所占数量与其对应的上一个查询对象所占数量的比值,以此来计算整个查询路径代价。刚才的图数据库中对象为人的和事件的统计结果如下表所示。label统计结果(万)person20event10
43.由表可知,事件总数为10万,人总数为20万,则整个查询路径代价为20
×
10/20=10。
44.可选地,在获得整个查询路径代价之后,根据查询指令中所需查询图数据数量,获取查询批量数。其中,查询图数据数量为用户想要搜寻的满足条件的对象的数量。例如,用户想要搜寻10个在中国银行附近徘徊的身高为185的男性,则查询图数据数量为10。此时的查询批量数为查询路径代价乘以查询图数据数量,再乘上预设的系数。以预设系数为6为例,则查询批量数为10
×
10
×
6=600。查询批量数代表让属性图查询装置每次从总的数据库中数据中并行查询600个对象,以此提高查询的速率。基于查询对象每个查询图属性的数量所得的查询批量数将查询步骤与具体要查询的数据结合起来计算每次查询所要查询的对象数量,可以在不浪费系统资源的情况下提高查询的速率,以提高整个查询装置的性能。
45.可选地,属性图查询装置会对查询图属性进行是否存在图属性期望值的判断,当查询路径中的查询图属性不存在图属性期望值即该属性为精确条件的属性时,则查询批量数可以设置为查询图数据数量乘以预设系数。
46.步骤15:按照查询批量数从初次查询图数据中搜索最终查询图数据。
47.参阅图4,图4为本技术提出的属性图查询装置的查询流程图。
48.具体地,属性图查询装置在计算出查询批量数后,可以选择采用多条线路并发搜索每次要查询的对象数量。例如,属性图查询装置可以采用3条线路,每条线路搜索数据库中200个对象,以此加快对图数据库中数据的查询速度。线路的数量可以根据用户需求自行设置,在此不做限定。属性图查询装置根据设置的批量数从经过查询索引选择出的全部对象中搜索符合的最终查询图数据。
49.区别于现有技术的情况,本技术提供的属性图查询方法应用于属性图查询装置,属性图查询装置获取用户的查询指令;解析查询指令,根据解析结果生成若干查询步骤,每一查询步骤对应至少一个查询对象;基于第一个查询步骤的查询对象从图数据库中搜索若干初次查询图数据;基于其余查询步骤的查询对象,确定查询路径代价,并按照查询路径代价获取查询批量数;按照查询批量数从初次查询图数据中搜索最终查询图数据。通过上述方式,与常规的属性图查询方法相比,本技术采用的利用属性图查询装置解析从用户获取的查询指令后,基于对查询指令中查询图属性的图属性期望值计算查询批量数的方式,可以基于需要查询的数据库中数据的数量优化设置每次并行查询的数量,以达到对查询批量数合理设置并对查询过程进行合理优化的效果。本属性图查询方法能够基于属性图数据的统计结果生成图属性期望值并获得每次并行查询的数量,能够更有效地进行查询操作,还在保证了查询的速度的情况下合理设置查询数量,不浪费数据库资源。
50.以用户想要查询10个在中国银行附近徘徊的身高185的男性为例,属性图查询装置会对用户的查询指令进行解析,从中生成此查询过程中的查询索引为查询所有满足在中国银行附近徘徊的人。剩余的查询步骤为在所有满足在中国银行附近徘徊的人中查询满足身高为185的男性。属性图查询装置从剩余查询步骤中可以提取到两个图查询属性:身高为185,性别为男性。属性图查询装置基于整个图数据库中的图数据,获取所有带有身高属性的对象的总数为20万,其中不同身高取值中占比最小的为190以上的,所占数量为2万,则身高属性的图属性期望值则为20万/2万=10;所有带有性别属性的对象的总数为20万,其中不同性别取值中占比最小的为男性,所占数量为10万,则性别属性的图属性期望值则为20万/10万=2。根据这两个属性的图属性期望值可以计算出查询步骤代价值为10
×
2=20。整个查询路径的路径代价值可以根据查询顺序,将每个查询步骤代价值相乘,再乘上按照查询顺序倒叙得到的每个查询步骤对应的查询对象所占数量与其对应的上一个查询对象所占数量的比值,以此来计算整个查询路径代价。假设图数据库中所有事件对象的总数为10万,人对象的总数为20万,则此处的查询路径代价为20
×
10/20=10。
51.由于用户需要查询10个满足在中国银行附近徘徊的身高185的男性,则需要将此查询路径代价乘上所需图数据的数量,再乘上预设的系数6,即可获得此次查询的查询批量数为10
×
10
×
6=600。因此属性图查询装置在进行查询时,会在图数据库中每次抽取600个图数据进行查询是否满足用户的条件。
52.上述实施例的方法,可以利用一属性图查询装置来实现,下面结合图5进行描述,
图5是本技术提供的属性图查询装置第一实施例的结构示意图。
53.如图5所示,本技术实施例的属性图查询装置50包括指令获取模块51、指令解析模块52、批量数计算模块53、属性图查询模块54。
54.其中,指令获取模块51,用于获取用户的查询指令。
55.指令解析模块52,用于解析查询指令,根据解析结果生成若干查询步骤,每一查询步骤对应至少一个查询对象。
56.批量数计算模块53,用于基于第一个查询步骤的查询对象从图数据库中搜索若干初次查询图数据,基于其余查询步骤的查询对象,确定查询路径代价,并按照查询路径代价获取查询批量数。
57.属性图查询模块54,用于按照查询批量数从初次查询图数据中搜索最终查询图数据。
58.上述实施例的方法,可以利用一属性图查询装置来实现,下面结合图6,图6是本技术提供的属性图查询装置第二实施例的结构示意图,该属性图查询装置60包括存储器61和处理器62,存储器61用于存储程序数据,处理器62用于执行程序数据以实现如下的方法:获取用户的查询指令,解析查询指令,根据解析结果生成若干查询步骤,每一查询步骤对应至少一个查询对象,基于第一个查询步骤的查询对象从图数据库中搜索若干初次查询图数据,基于其余查询步骤的查询对象,确定查询路径代价,并按照查询路径代价获取查询批量数,按照查询批量数从初次查询图数据中搜索最终查询图数据。
59.参阅图7,图7是本技术提供的计算机可读存储介质一实施例的结构示意图,该计算机可读存储介质70存储有程序数据71,程序数据71在被处理器执行时,用于实现如下的方法:获取用户的查询指令,解析查询指令,根据解析结果生成若干查询步骤,每一查询步骤对应至少一个查询对象,基于第一个查询步骤的查询对象从图数据库中搜索若干初次查询图数据,基于其余查询步骤的查询对象,确定查询路径代价,并按照查询路径代价获取查询批量数,按照查询批量数从初次查询图数据中搜索最终查询图数据。
60.本技术的实施例以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
61.以上所述仅为本技术的实施方式,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1