图数据库的数据处理方法、设备和存储介质与流程

文档序号:28285342发布日期:2021-12-31 22:04阅读:82来源:国知局
图数据库的数据处理方法、设备和存储介质与流程

1.本公开涉及计算机技术领域,具体涉及知识图谱技术领域等人工智能技术领域,尤其涉及图数据库的数据处理方法、设备和存储介质。


背景技术:

2.知识图谱是一种基于图模型的关联网络知识表达。知识图谱将实体抽象为顶点,将实体之间的关系抽象为边,通过结构化的形式对知识进行建模和描述,并将知识可视化。知识图谱是图数据库关联最为紧密、场景最广泛的应用方向。知识图谱以图数据库作为存储引擎,对海量信息进行智能化处理,形成大规模的知识库并进而支撑业务应用。。


技术实现要素:

3.本公开提供了一种用于图数据库的数据处理方法、设备和存储介质。
4.根据本公开的一方面,提供了一种图数据库的数据处理方法,所述方法包括:获取所述图数据库中待处理的实体节点集合;对所述实体节点集合进行划分,以得到多个实体节点子集合;针对每个所述实体节点子集合,确定所述实体节点子集合中每个实体节点所属于的存储节点,其中,所述实体节点所属于的存储节点包括所述实体节点与对应的下一跳实体节点;根据所述实体节点子集合中每个实体节点对应的下一跳实体节点,确定所述实体节点子集合对应的下一跳实体节点集合;根据每个所述实体节点子集合对应的下一跳实体节点集合,确定所述实体节点集合对应的下一跳实体节点集合。
5.根据本公开的另一方面,提供了一种图数据库的数据处理装置,所述装置包括:第一获取模块,用于获取所述图数据库中待处理的实体节点集合;划分模块,用于对所述实体节点集合进行划分,以得到多个实体节点子集合;第一确定模块,用于针对每个所述实体节点子集合,确定所述实体节点子集合中每个实体节点所属于的存储节点,其中,所述实体节点所属于的存储节点包括所述实体节点与对应的下一跳实体节点;第二确定模块,用于根据所述实体节点子集合中每个实体节点对应的下一跳实体节点,确定所述实体节点子集合对应的下一跳实体节点集合;第三确定模块,用于根据每个所述实体节点子集合对应的下一跳实体节点集合,确定实体节点集合对应的下一跳实体节点集合。
6.根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开的图数据库的数据处理方法。
7.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开实施例公开的图数据库的数据处理方法。
8.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现本公开的图数据库的数据处理方法。
9.上述申请中的一个实施例具有如下优点或有益效果:
10.在对图数据库中的实体节点集合进行处理时,将待处理的实体节点集合进行划分,以得到多个小批量的实体节点子集合,在每个实体节点子集合完成实体节点存储位置分析后,直接通过对应存储节点对实体节点进行查询,以得到对应实体节点子的下一跳实体节点,并基于对应实体节点子集合中各个实体节点对应的下一跳实体节点,确定下一跳实体节点集合,并根据实体节点子集合的下一跳实体节点集合进行处理,以得到实体节点集合对应的下一跳实体节点集合。由此,可以实现多个小批量的实体节点子集合进行并发处理,合理利用网络资源。
11.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
12.附图用于更好地理解本方案,不构成对本公开的限定。其中:
13.图1是根据本公开一个实施例提供的一种图数据库的数据处理方法的流程示意图;
14.图2是根据本公开另一个实施例提供的根据每个实体节点子集合对应的下一跳实体节点集合,确定实体节点集合对应的下一跳实体节点集合的细化流程示意图;
15.图3是根据本公开另一个实施例提供的根据实体节点子集合中每个实体节点所属于的存储节点确定实体节点子集合对应的下一跳实体节点集合的细化流程示意图;
16.图4是根据本公开另一个实施例提供的分别对每个实体节点子集合对应的下一跳实体节点集合进行去重,以得到每个实体节点子集合各自对应的去重结果的细化流程示意图;
17.图5是根据本公开另一个实施例提供的一种图数据库的数据处理方法的流程示意图;
18.图6是根据本公开一个实施例提供的一种图数据库的数据处理装置的结构示意图;
19.图7是根据本公开另一个实施例提供的一种图数据库的数据处理装置的结构示意图;
20.图8是根据本公开另一个实施例提供的一种图数据库的数据处理装置的结构示意图;
21.图9是用来实现本公开实施例的图数据库的数据处理方法的电子设备的框图。
具体实施方式
22.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
23.图游走是图检索领域的基本问题,其基本含义是在一个抽象的逻辑图模型(即拓扑图)中进行多层的遍历。目前,针对分布式图数据库的图游走,通常采用单步游走策略,即
每次游走之前,由计算节点统一分析输入节点相关关系信息的存储位置,然后发给对应的存储节点进行查询,查询得到的结果收集到一起之后进行结果去重,去重之后的结果作为下一次游走步的输入。然而,上述方式,在每一个时刻只有一个过程在执行,资源使用不充分,并发度低。
24.为此,本技术提出了一种图数据库的数据处理方法,该方法在对图数据库中的实体节点集合进行处理时,将待处理的实体节点集合进行划分,以得到多个小批量的实体节点子集合,在每个实体节点子集合完成实体节点存储位置分析后,直接通过对应存储节点对实体节点进行查询,以得到对应实体节点子的下一跳实体节点,并基于对应实体节点子集合中各个实体节点对应的下一跳实体节点,确定下一跳实体节点集合,并根据实体节点子集合的下一跳实体节点集合进行处理,以得到实体节点集合对应的下一跳实体节点集合。由此,可以实现多个小批量的实体节点子集合进行并发处理,合理利用网络资源。
25.下面参考附图描述本公开实施例的图数据库的数据处理方法、设备和存储介质。
26.图1是根据本公开一个实施例提供的一种图数据库的数据处理方法的流程示意图。其中,本实施例中的图数据库是基于存储计算分离架构设计下的分布式图数据库,其中,图数据库包括计算节点和多个存储节点,各个存储节点保存知识图谱的不同部分,每个存储节点所存储的不同部分的知识图谱拼接起来即可得到完整的知识图谱,其中,知识图谱中包括多个实体节点以及多个实体节点之间的连接边。其中,需要说明的是,本实施例的方法应用在图数据库中的计算节点中。
27.如图1所示,该图数据库的数据处理方法可以包括:
28.步骤101,获取图数据库中待处理的实体节点集合。
29.步骤102,对实体节点集合进行划分,以得到多个实体节点子集合。
30.在一些实施例中,在获取图数据库中待处理的实体节点集合后,可按照每预设数量个实体节点为一组,对实体节点集合进行划分,以得到多个实体节点子集合。
31.其中,预设数量是在计算节点中预先设置的节点数量,例如,预设数量可以为10万,或者,30万,在实际应用中,可根据实际业务需求设置预设数量,该实施例对预设数量不作具体限定。
32.在一些实施例中,在图游走场景中,针对每一步游走,可获取当前步游走待处理的实体节点集合。
33.其中,当前步游走待处理的实体节点集合是当前步游走对应的上一步游走所得到的实体节点结果。
34.步骤103,针对每个实体节点子集合,确定实体节点子集合中每个实体节点所属于的存储节点。
35.其中,对应实体节点所属于的存储节点包括对应实体节点与对应的下一跳实体节点。
36.步骤104,根据实体节点子集合中每个实体节点对应的下一跳实体节点,确定实体节点子集合对应的下一跳实体节点集合。
37.在一些实施例中,上述根据实体节点子集合中每个实体节点对应的下一跳实体节点,确定实体节点子集合对应的下一跳实体节点集合的一种可能的实现方式为:根据实体节点子集合中每个实体节点所属于的存储节点,将属于同一个存储节点的实体节点划分为
一组,以得到多组实体节点;针对每组实体节点,接收与当前实体节点组对应的存储节点针对当前实体节点组返回的去重后的下一跳实体节点结果;根据每组实体节点的下一跳实体节点结果,确定实体节点子集合对应的下一跳实体节点集合。
38.在一些示例性的实施例中,在计算节点采用单线程的方式对实体节点的存储位置进行分析的情况下,计算节点可按照遍历顺序,对多个实体节点子集合进行依次遍历,对于当前遍历到的当前实体节点子集合,计算节点可对当前实体节点子集合中每个实体节点的存储位置进行分析,以确定出当前实体节点子集合中每个实体节点所属于的存储节点。对应地,计算节点在确定出当前实体节点子集合中每个实体节点所属于的存储节点后,根据当前实体节点子集合中每个实体节点所属于的存储节点,将属于同一个存储节点的实体节点划分为一组,以得到多组实体节点,针对每组实体节点,向与当前实体节点组对应的存储节点发送查询请求。对应地,存储节点根据查询请求查询自身保存的那部分知识图谱,以得到当前实体节点组中每个实体节点进行一步游走之后所得到的实体节点,并将所得到的实体节点作为对应实体节点的下一跳实体节点,并根据当前实体节点组中每个实体节点对应的下一跳实体节点,得到当前实体节点组的下一跳实体节点结果。
39.其中,需要理解的是,对于任意一个实体节点而言,在该实体节点所属于的存储节点确定出与该实体节点对应的下一跳实体节点,即可确定该实体节点完成了一步游走。
40.对应地,计算节点接收存储节点针对当前实体节点组返回的的下一跳实体节点结果,根据每组实体节点的下一跳实体节点结果,确定当前实体节点子集合对应的下一跳实体节点集合。
41.在一些实施例中,为了降低存储节点所需要发送的数据量的同时,减少计算节点所处理的节点数量,在存储节点得到当前实体节点组的下一跳实体节点结果后,存储节点可对当前实体节点组对应的下一跳实体节点结果进行去重处理。
42.其中,对节点进行去重可通过多种方式,关于对节点进行去重的方式将在后续实施例中进行描述。
43.在另一些实施例中,在计算节点采用多线程对多个实体节点子集合进行处理的过程中,在与对应实体节点子集合所对应的线程,确定出实体节点子集合中每个实体节点所属于的存储节点后,可向对应的存储节点进行查询。对应地,存储节点根据自身保存的那部分知识图谱查询实体节点子集合中每个实体节点所对应的下一跳实体节点,并根据每个实体节点所对应的下一跳节点,得到实体节点子集合对应的下一跳实体节点集合。
44.在一些实施例中,为了降低存储节点所需要发送的数据量的同时,减少计算节点所处理的节点数量,存储节点在向计算节点发送实体节点子集合对应的下一跳实体节点集合之前,存储节点还可以对节点发送实体节点子集合对应的下一跳实体节点集合进行去重处理。
45.步骤105,根据每个实体节点子集合对应的下一跳实体节点集合,确定实体节点集合对应的下一跳实体节点集合。
46.本公开实施例的图数据库的数据处理方法,在对图数据库中的实体节点集合进行处理时,将待处理的实体节点集合进行划分,以得到多个小批量的实体节点子集合,在每个实体节点子集合完成实体节点存储位置分析后,直接通过对应存储节点对实体节点进行查询,以得到对应实体节点子的下一跳实体节点,并基于对应实体节点子集合中各个实体节
点对应的下一跳实体节点,确定下一跳实体节点集合,并根据实体节点子集合的下一跳实体节点集合进行处理,以得到实体节点集合对应的下一跳实体节点集合。由此,可以实现多个小批量的实体节点子集合进行并发处理,合理利用网络资源。
47.基于上述描述,可以看出,与现有的游走方式相比,现有的游走方式中计算节点需对本步游走输入的所有实体节点分析完后,再与存储节点进行交互,而本实施中的计算节点对本步游走的实体节点集合进行划分,以得到多个小批量的实体节点子集合,在每个实体节点子集合完成实体节点存储位置分析后,直接通过对应存储节点对实体节点进行查询,以得到对应实体节点子集合的下一跳实体节点集合,并通过计算节点对对应实体节点子集合的下一跳实体节点集合进行处理。由此,使得计算节点在分析出的部分实体节点的存储位置,即可与对应存储节点进行交互,可以实现多个小批量的实体节点子集合进行并发处理,合理利用网络资源,提高查询效率。
48.其中,在不同应用场景中,上述根据每个实体节点子集合对应的下一跳实体节点集合,确定实体节点集合对应的下一跳实体节点集合可通过多种方式实现,示例性说明如下。
49.在一些实施例中,如图2所示,可以包括:
50.步骤201,分别对每个实体节点子集合对应的下一跳实体节点集合进行去重,以得到每个实体节点子集合各自对应的去重结果。
51.步骤202,对所有实体节点子集合各自对应的去重结果进行合并,以得到实体节点集合对应的候选的下一跳实体节点集合。
52.步骤203,对候选的下一跳实体节点集合再次进行去重,以得到实体节点集合对应的下一跳实体节点集合。
53.本实施例中,对所有实体节点子集合各自对应的去重结果进行合并后,为了避免不同实体节点子集合各自对应的去重结果中可能存在相同实体节点的情况下,避免对相同的实体节点进行重复游走,本实施例对合并后的实体节点集合再次进行去重,并将再次去重后的实体节点集合作为实体节点集合对应的下一跳实体节点集合,即,将再次去重后的实体节点集合作为实体节点集合对应的节点查询结果。
54.在另一些实施例中,在基于遍历顺序对实体节点子集合所对应的下一跳实体节点集合进行处理的过程,对当前遍历到的实体节点子集合所对应的下一跳实体节点进行去重时,可结合遍历顺序,获取上一个遍历到的实体节点子集合所对应的节点去重结果,并基于节点去重结果对当前遍历到的实体节点子集合所对应的下一跳实体节点集合进行去重处理,直至对所有下一跳实体节点集合完成去重。对应地,将所有去重后的下一跳实体节点集合进行合并,并将合并结果作为实体节点集合对应的下一跳实体节点集合。
55.在另一些实施例中,根据每个实体节点子集合对应的下一跳实体节点集合,确定实体节点集合对应的下一跳实体节点集合的一种实现方式为:对所有的节点子集合对应的下一跳实体节点集合进行合并处理,以得到合并的下一跳实体节点集合;对合并的下一跳实体节点集合进行去重处理,以得到实体节点集合对应的下一跳实体节点集合。
56.在本实施例中,直接将多个实体节点子集合对应的下一跳实体节点集合进行合并处理,并对合并处理的实体节点进行去重处理,以得到实体节点集合对应的下一跳实体节点集合。从而实现了实体节点集合对应的实体节点集合进行去重处理,避免了对重复的实
体节点进行下一步游走,减少网络资源浪费,提高了游走获取结果的效率。
57.基于上述实施例的基础上,为了降低存储节点所需要发送的数据量的同时,减少计算节点所处理的节点数量,上述根据实体节点子集合中每个实体节点对应的下一跳实体节点,确定实体节点子集合对应的下一跳实体节点集合的一种可能实现方式,如图3所示,可以包括:
58.步骤301,根据实体节点子集合中每个实体节点所属于的存储节点,将属于同一个存储节点的实体节点划分为一组,以得到多组实体节点。
59.步骤302,针对每组实体节点,接收与当前实体节点组对应的存储节点针对当前实体节点组返回的去重后的下一跳实体节点结果。
60.步骤303,根据每组实体节点的下一跳实体节点结果,确定实体节点子集合对应的下一跳实体节点集合。
61.在本公开的一个实施例中,为了减少去重过程中的内存消耗,上述分别对每个实体节点子集合对应的下一跳实体节点集合进行去重,以得到每个实体节点子集合各自对应的去重结果的一种可能实现方式,如图4所示,可以包括:
62.步骤401,针对每个实体节点子集合,对实体节点子集合对应的下一跳实体节点集合进行节点遍历。
63.步骤402,对于遍历到的目标实体节点,确定目标实体节点的节点标识所属于的区间。
64.其中,区间是对节点标识的取值范围进行分段而得到的。
65.其中,本实施例中节点标识的数据类型可以为整型数据,例如,可以采用8字节的整型数据来表示节点标识,其中,节点标识的取值范围为1
‑2^64

66.在一些实施例中,可将目标实体节点的节点标识,与预设的多个区间对应的区间范进行比较,并根据比较结果,确定出目标节点的节点标识所属于的区间。
67.例如,目标实体节点的节点标识为1000,如果区间1对应的区间范围0
‑2^32
,区间2对应的区间范围为2
^32
‑2^33
、区间3对应的区间范围为2
^33

3*2
^32
、区间4对应的区间范围为3*2
^32
‑2^34
、区间5对应的区间范围2
^34
‑2^64
,此时,通过将节点标识与上述各个区间对应的区间范围进行比较,可确定节点标识1000在区间1对应的区间范围0
‑2^32
内,此时,可确定目标节点的节点标识所属于区间1。
68.步骤403,根据区间对应的去重方式,确定已遍历的节点中已出现过目标实体节点。
69.其中,在不同应用场景中,根据区间对应的去重方式,确定已遍历的节点中已出现过目标实体节点的实现方式不同,示例性说明如下:
70.作为一种示例性的实施方式,获取区间所对应的多个位集;对节点标识的比特位进行分段,以得到节点标识对应的多个比特段;针对每个比特段,从多个位集中获取与比特段对应的目标位集,其中,目标位集的比特长度大于或者等于比特段的比特长度;从目标位集中获取与比特段的取值对应的比特位;在多个比特段对应的比特位上的取值均为第一取值的情况,确定已遍历的节点中已出现过目标实体节点,其中,第一取值表示对应比特段的取值已出现过。
71.在本实施例中,在对实体节点子集合对应的下一跳实体节点集合进行节点去重的
过程中,结合多个小于节点标识的比特长度的位集,对下一跳实体节点集合中的实体节点进行去重,减少去重过程中位集所占用的内存资源。
72.作为另一种示例性的实施方式,获取区间对应的哈希表;获取节点标识的高n个比特位以及低m个比特位,其中,n为大于1,且小于k的整数,k表示节点标识的比特长度,m为k与n之间的差值;从哈希表中获取与高n个比特位的取值所对应的位集;从位集中获取与低m个比特位的取值对应的目标比特位;在目标比特位上的取值为第一取值的情况下,确定已遍历的节点中已出现过目标实体节点,其中,第一取值用于表示该低m个比特位的取值已出现过。
73.在本实施例中,在对实体节点子集合对应的下一跳实体节点集合进行节点去重的过程中,结合哈希表和位集对下一跳实体节点集合中的实体节点进行去重,可减少哈希表和位集所占用的内存资源,减少去重过程中所占用的内存资源。
74.作为另一种示例性的实施方式,获取区间对应的位集;从位集中获取与节点标识对应的目标比特位;在目标比特位上的取值为第一取值的情况下,确定已遍历的节点中已出现过目标实体节点,其中,第一取值表示该节点标识已出现过。
75.在本实施例中,在对实体节点进行去重的过程中,结合小于实体节点的节点标识的比特位的位集,对实体节点进行去重,可减少去重过程中位集所占用的内存消耗。
76.作为另一种示例性的实施方式,可获取该区间对应的哈希表,对节点标识进行哈希计算,以得到节点标识所对应的哈希值,并从哈希表中获取与该哈希值对应的至少一个候选值,在至少一个候选值中存在取值为第一取值的候选值时,确定已遍历的节点中已出现过目标实体节点,其中,第一取值表示节点标识已出现过。
77.在本实施例中,在对实体节点进行节点去重的过程中,结合节点标识所属区间对应的哈希表,对实体节点进行去重,由此,可减少查找哈希表的时间,并且,可降低内存消耗。
78.步骤404,删除下一跳实体节点集合中的目标实体节点。
79.在一些实施例中,上述对候选的下一跳实体节点集合再次进行去重,以得到本步游走所得到的下一跳实体节点集合的一种可能实现方式为:对候选的下一跳实体节点集合进行节点遍历,对于遍历到的下一跳实体节点,可确定该下一跳实体节点的节点标识所属于的区间;根据区间对应的去重方式,确定已遍历的节点中已出现过该下一跳实体节点,删除候选的下一跳实体节点集合中的该下一跳实体节点。
80.其中,根据区间对应的去重方式,确定已遍历的节点中已出现过该下一跳实体节点的过程,与上述根据区间对应的去重方式,确定已遍历的节点中已出现过目标实体节点的过程类似,该实施例对此不再赘述。
81.为了使得本领域的技术人员可以清楚了解本公开,下面结合图5对该实施例的方法进行进一步描述,其中,需要说明的是,本实施例以计算节点和存储节点均以单线程的方式进行数据处理为例,其中,需要说明的是,图5中的a表示第一批输入数据,b表示第二批输入数据,c表示第三批输入数据,d表示第四批输入数据。
82.如图5所示,可以包括:
83.在本实施例中,在计算节点获取本步游走输入的输入数据后,计算节点可将输入数据分为多批输入数据。其中,图5中以将输入数据分为四批输入数据为例进行描述。对应
地,计算节点按照顺序依次分析多批输入数据,在分析完第一批输入数据后,将第一批输入数据发送给对应存储节点,存储节点收集第一批输入数据的关系数据,并将关系数据发送给计算节点。
84.其中,需要说明的是,这里的输入数据为实体节点集合。
85.其中,需要说明的是,在存储节点收集第一批输入数据的关系数据的的过程中,计算节点对第二批输入数据分析存储位置,在分析出第二批输入数据中每个输入数据所对应的存储位置后,计算节点向与存储位置对应的存储节点发送查询请求,以查询输入数据对应的关系数据。
86.其中,需要说明的是,对于当前批输入数据,在计算节点对上一批输入数据的查询结果进行去重的过程中,如果计算节点接收到当前批输入数据的查询结果,由于不同批输入数据对应的查询结果可能存在相同的实体节点,因此,计算节点可完成对上一批输入数据的查询结果的去重后,结合上一批输入数据的去重后的查询结果,对当前批输入数据的查询结果进行去重处理。其中,需要说明的是,为了减少计算节点的去重量的同时,减少网络上需要传输的数据量,上述存储节点在获取到对应批输入数据的查询结果后,存储节点可对批输入数据的查询结果进行去重处理。
87.其中,去重处理的方式可参见上述实施例的相关描述,此处不再赘述。
88.在本实施例中,通过对本步游走的输入数据进行拆分,以得到多批输入数据,并通过并行的方式对多批输入数据进行处理,从而提高了不同的执行步骤之间的并发度,合理利用的网络资源,提高获取查询结果的效率。
89.另外,本实施例中采用两级去重的方式,先在存储节点中对节点进行游走所得到的查询结果进行去重,并在计算节点中对查询结果再次进行去重。通过在存储节点中进行去重,可以减少网络上需要传输的数据量,并且可减少计算节点去重的节点数量,可降低计算节点去重的负担。
90.为了实现上述实施例,本公开实施例还提供一种图数据库的数据处理装置。
91.图6是根据本公开一个实施例提供的一种图数据库的数据处理装置的结构示意图。
92.如图6所示,该图数据库的数据处理装置600可以包括第一获取模块601、划分模块602、第一确定模块603、第二确定模块604、第三确定模块605,其中:
93.第一获取模块601,用于获取图数据库中待处理的实体节点集合。
94.划分模块602,用于对实体节点集合进行划分,以得到多个实体节点子集合。
95.第一确定模块603,用于针对每个实体节点子集合,确定实体节点子集合中每个实体节点所属于的存储节点,其中,实体节点所属于的存储节点包括实体节点与对应的下一跳实体节点。
96.第二确定模块604,用于根据实体节点子集合中每个实体节点对应的下一跳实体节点,确定实体节点子集合对应的下一跳实体节点集合。
97.第三确定模块605,用于根据每个实体节点子集合对应的下一跳实体节点集合,确定实体节点集合对应的下一跳实体节点集合。
98.其中,需要说明的是,前述对图数据库的数据处理方法实施例的解释说明也适用于本实施例,本实施对此不再赘述。
99.本公开实施例的图数据库的数据处理装置,在对图数据库中的实体节点集合进行处理时,将待处理的实体节点集合进行划分,以得到多个小批量的实体节点子集合,在每个实体节点子集合完成实体节点存储位置分析后,直接通过对应存储节点对实体节点进行查询,以得到对应实体节点子的下一跳实体节点,并基于对应实体节点子集合中各个实体节点对应的下一跳实体节点,确定下一跳实体节点集合,并根据实体节点子集合的下一跳实体节点集合进行处理,以得到实体节点集合对应的下一跳实体节点集合。由此,可以实现多个小批量的实体节点子集合进行并发处理,合理利用网络资源。
100.在本公开的一个实施例中,如图7所示,该图数据库的数据处理装置可以包括:第一获取模块701、划分模块702、第一确定模块703、第二确定模块704、第三确定模块705,其中,上述第二确定模块704包括:第一去重单元7041、第一合并单元7042、第二去重单元7043;第一去重单元7041可以包括:节点遍历子单元70411、第一确定子单元70412、第二确定子单元70413、删除子单元70414。
101.其中,关于第一获取模块701、划分模块702、第一确定模块703和第三确定模块705的详细描述请参考图6所示实施例中第一获取模块601、划分模块602、第一确定模块603和第三确定模块605的说明,此处不再进行描述。
102.在本公开的一个实施例中,如图7所示,第二确定模块704,包括:
103.第一去重单元7041,用于分别对每个实体节点子集合对应的下一跳实体节点集合进行去重,以得到每个实体节点子集合各自对应的去重结果;
104.第一合并单元7042,用于对所有实体节点子集合各自对应的去重结果进行合并,以得到实体节点集合的候选的下一跳实体节点集合;
105.第二去重单元7043,用于对候选的下一跳实体节点集合再次进行去重,以得到实体节点集合对应的下一跳实体节点集合。
106.在本公开的一个实施例中,上述第一确定模块703,具体用于:根据实体节点子集合中每个实体节点所属于的存储节点,将属于同一个存储节点的实体节点划分为一组,以得到多组实体节点;针对每组实体节点,接收与当前实体节点组对应的存储节点针对当前实体节点组返回的去重后的下一跳实体节点结果;根据每组实体节点的下一跳实体节点结果,确定实体节点子集合对应的下一跳实体节点集合。
107.在本公开的一个实施例中,如图7所示,该第一去重单元7041,包括:
108.节点遍历子单元70411,用于针对每个实体节点子集合,对实体节点子集合对应的下一跳实体节点集合进行节点遍历;
109.第一确定子单元70412,用于对于遍历到的目标实体节点,确定目标实体节点的节点标识所属于的区间,其中,区间是对节点标识的取值范围进行分段而得到的;
110.第二确定子单元70413,用于根据区间对应的去重方式,确定已遍历的节点中已出现过目标实体节点;
111.删除子单元70414,用于删除下一跳实体节点集合中的目标实体节点。
112.在本公开的一个实施例中,第二确定子单元70413,具体用于:获取区间所对应的多个位集;对节点标识的比特位进行分段,以得到节点标识对应的多个比特段;针对每个比特段,从多个位集中获取与比特段对应的目标位集,其中,目标位集的比特长度大于或者等于比特段的比特长度;从目标位集中获取与比特段的取值对应的比特位;在多个比特段对
应的比特位上的取值均为第一取值的情况,确定已遍历的节点中已出现过目标实体节点,其中,第一取值表示对应比特段的取值已出现过。
113.在本公开的一个实施例中,第二确定子单元70413,具体用于:获取区间对应的哈希表;获取节点标识的高n个比特位以及低m个比特位,其中,n为大于1,且小于k的整数,k表示节点标识的比特长度,m为k与n之间的差值;从哈希表中获取与高n个比特位的取值所对应的位集;从位集中获取与低m个比特位的取值对应的目标比特位;在目标比特位上的取值为第一取值的情况下,确定已遍历的节点中已出现过目标实体节点,其中,第一取值用于表示该低m个比特位的取值已出现过。
114.在本公开的一个实施例中,第二确定子单元70413,具体用于:获取区间对应的位集;从位集中获取与节点标识对应的目标比特位;在目标比特位上的取值为第一取值的情况下,确定已遍历的节点中已出现过目标实体节点,其中,第一取值表示节点标识已出现过。
115.在本公开的一个实施例中,如图8所示,该图数据库的数据处理装置可以包括:第一获取模块801、划分模块802、第一确定模块803、第二确定模块804、第三确定模块805,其中,上述第二确定模块804可以包括:第二合并单元8041和第三去重单元8042。
116.在本公开的一个实施例中,如图8所示,第二确定模块804,包括:
117.第二合并单元8041,用于对所有的节点子集合对应的下一跳实体节点集合进行合并处理,以得到合并的下一跳实体节点集合;
118.第三去重单元8042,用于对合并的下一跳实体节点集合进行去重处理,以得到本步游走所得到的下一跳实体节点集合。
119.其中,需要说明的是,前述对图数据库的数据处理方法实施例的解释说明也适用于本实施例中的图数据库的数据处理装置,此处不再赘述。
120.根据本公开的实施例,本公开还提供了一种电子设备和一种可读存储介质和一种计算机程序产品。
121.图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
122.如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(rom)902中的计算机程序或者从存储单元908加载到随机访问存储器(ram)903中的计算机程序,来执行各种适当的动作和处理。在ram 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、rom 902以及ram 903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。
123.设备900中的多个部件连接至i/o接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
124.计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如图数据库的数据处理方法。例如,在一些实施例中,图数据库的数据处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由rom 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到ram 903并由计算单元901执行时,可以执行上文描述的图数据库的数据处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行图数据库的数据处理方法。
125.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
126.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
127.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd

rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
128.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
129.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算
系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、互联网和区块链网络。
130.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端

服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务("virtual private server",或简称"vps")中,存在的管理难度大,业务扩展性弱的缺陷。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
131.其中,需要说明的是,人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
132.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
133.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1