针对知识图谱进行划分分区的方法及装置制造方法及图纸

技术编号:33275093 阅读:24 留言:0更新日期:2022-04-30 23:33
本说明书实施例提供一种针对知识图谱进行划分分区的方法及装置,在划分分区的方法中,获取对应于不同关系类型的多个数据块组,并将其排布为数据块阵列,该数据块阵列沿第一方向的一个第一数据单元对应于一个数据块组。对数据块阵列中与第一方向垂直的第二方向的各个第二数据单元,依次进行对应于各分区的标记处理,以确定对应于各分区的分区结果。其中,确定对应于任意的第一分区的分区结果包括,选取目标数据块,对该目标数据块及其关联数据块进行第一标记处理,并跳转至下一个第二数据单元,直至经过第一标记处理的各数据块的累计数目大于等于第一分区的预分配块数。至少基于经过第一标记处理的各数据块,确定对应于第一分区的分区结果。区的分区结果。区的分区结果。

【技术实现步骤摘要】
针对知识图谱进行划分分区的方法及装置


[0001]本说明书一个或多个实施例涉及计算机信息处理
,尤其涉及一种针对知识图谱进行划分分区的方法及装置。

技术介绍

[0002]知识图谱是对现实世界中实体之间的关系的描述,目标广泛地应用于各种计算机信息处理中。一般地,知识图谱包括节点集合和边集合,节点代表现实世界中的实体,边代表现实世界中实体之间的关联关系。例如,在社交网络中,人就是实体,人和人之间的关联关系就是边。
[0003]在很多情况下,希望对知识图谱中的节点、边等的拓扑特性进行分析,从中提取出有效信息,实现这类过程的计算方法称为图计算。需要说明,在知识图谱的规模比较庞大(比如万亿级别)时,通常会通过分布式图计算的方法来提取信息。然而分布式图计算的前提是需要针对知识图谱进行划分分区,以便于一个分布式计算任务(也称分布式实例)可以只针对一个分区(partition)的数据进行处理。因此,对知识图谱进行准确分区,以均衡各分布式计算任务之间的处理量就成为要解决的问题。

技术实现思路

[0004]本说明书一个或多个实施例描述了一种针对知识图谱进行划分分区的方法及装置,可以确保划分到各个分区的数据量达到均衡。
[0005]第一方面,提供了一种针对知识图谱进行划分分区的方法,包括:获取对应于不同关系类型的多个数据块组,其中,任意的第i数据块组中的数据块存储有若干目标节点的节点信息,以及各目标节点的对应于第i关系类型的连接边的边信息;将所述多个数据块组排布为数据块阵列,所述数据块阵列沿第一方向的一个第一数据单元对应于一个数据块组;对所述数据块阵列中与第一方向垂直的第二方向的各个第二数据单元,依次进行对应于各分区的标记处理,以确定对应于所述各分区的分区结果;其中,确定对应于任意的第一分区的分区结果包括,从当前的第二数据单元中选取目标数据块,对该目标数据块以及该目标数据块的、未经过对应于所述第一分区的第一标记处理的关联数据块进行第一标记处理,并跳转至下一个第二数据单元,直至经过第一标记处理的各数据块的累计数目大于等于所述第一分区的预分配块数;至少基于经过第一标记处理的各数据块,确定对应于所述第一分区的分区结果。
[0006]第二方面,提供了一种针对知识图谱进行划分分区的方法,包括:获取对应于不同关系类型的多个数据块组,其中,任意的第i数据块组中的数据块存储有若干目标节点的节点信息,以及各目标节点的对应于第i关系类型的连接边的边信息;
根据各分区的预分配节点数,从所述各数据块组中,确定出对应于各分区的分界数据块;根据对应于各分区的分界数据块,确定对应于各分区的分区结果。
[0007]第三方面,提供了一种针对知识图谱进行划分分区的装置,包括:获取模块,用于获取对应于不同关系类型的多个数据块组,其中,任意的第i数据块组中的数据块存储有若干目标节点的节点信息,以及各目标节点的对应于第i关系类型的连接边的边信息;排布模块,用于将所述多个数据块组排布为数据块阵列,所述数据块阵列沿第一方向的一个第一数据单元对应于一个数据块组;标记模块,用于对所述数据块阵列中与第一方向垂直的第二方向的各个第二数据单元,依次进行对应于各分区的标记处理,以确定对应于所述各分区的分区结果;所述标记模块具体用于:从当前的第二数据单元中选取目标数据块,对该目标数据块以及该目标数据块的、未经过对应于第一分区的第一标记处理的关联数据块进行第一标记处理,并跳转至下一个第二数据单元,直至经过第一标记处理的各数据块的累计数目大于等于所述第一分区的预分配块数;至少基于经过第一标记处理的各数据块,确定对应于所述第一分区的分区结果。
[0008]第四方面,提供了一种针对知识图谱进行划分分区的装置,包括:获取模块,用于获取对应于不同关系类型的多个数据块组,其中,任意的第i数据块组中的数据块存储有若干目标节点的节点信息,以及各目标节点的对应于第i关系类型的连接边的边信息;确定模块,用于根据各分区的预分配节点数,从所述各数据块组中,确定出对应于各分区的分界数据块;所述确定模块,还用于根据对应于各分区的分界数据块,确定对应于各分区的分区结果。
[0009]第五方面,提供了一种计算机存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面的方法。
[0010]第六方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面的方法。
[0011]本说明书一个或多个实施例提供的针对知识图谱进行划分分区的方法及装置,首先将对应于不同关系类型的多个数据块组排布为数据块阵列,之后通过对数据块阵列中的各个第二数据单元依次进行标记处理,并统计标记数据块的累计数目的方法,来确定对应于各分区的分区结果,由此可以确保划分到各个分区的数据量达到均衡,进而可以提升分布式图计算的性能。
附图说明
[0012]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0013]图1示出知识图谱的底层存储结构示意图;图2为本说明书披露的一个实施例的实施场景示意图;图3示出根据一个实施例的针对知识图谱进行划分分区的方法流程图;图4a示出在一个实施例中数据块阵列示意图;图4b示出在另一实施例中数据块阵列示意图;图5a示出确定分区0的分区结果的过程示意图;图5b示出确定分区1的分区结果的过程示意图;图5c示出确定分区2的分区结果的过程示意图;图6示出根据另一个实施例的针对知识图谱进行划分分区的方法流程图;图7示出在另一个实施例中确定各分区的分区结果的过程示意图;图8示出根据一个实施例的针对知识图谱进行划分分区的装置示意图;图9示出根据另一个实施例的针对知识图谱进行划分分区的装置示意图。
具体实施方式
[0014]下面结合附图,对本说明书提供的方案进行描述。
[0015]如前所述,分布式图计算的前提是需要针对知识图谱进行划分分区。传统的划分分区方法,通常会先批量加载实体和关系数据,然后再采用预定义的分区规则,基于实体ID的hash和关系ID的hash进行划分分区。然而,由于该方法对数据进行了洗牌(shuffle),也就是说划分过程没有考虑实体之间的关联关系,由此会造成分区不准确的问题。此外,在知识图谱的规模比较庞大时,数据的传输会带来较大的IO开销。
[0016]为此,本申请的专利技术人提出,基于知识图谱的底层存储结构,来进行划分分区的构思。具体地,将数据块(KGBlock)作为分区单位,按实体关系总量负载均衡和按实体数量负载均衡两种方法进行划分分区。这里的数据块存储有代表实体的节点(Vertex)以及节点的连接边(Edge)。
[0017]图1示出知识图谱的底层存储结构示意图。图1中,实线框代表普通数据块(Normal Block本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对知识图谱进行划分分区的方法,其中,所述知识图谱至少包括代表目标实体类型的多个目标节点;所述方法包括:获取对应于不同关系类型的多个数据块组,其中,任意的第i数据块组中的数据块存储有若干目标节点的节点信息,以及各目标节点的对应于第i关系类型的连接边的边信息;将所述多个数据块组排布为数据块阵列,所述数据块阵列沿第一方向的一个第一数据单元对应于一个数据块组;对所述数据块阵列中与第一方向垂直的第二方向的各个第二数据单元,依次进行对应于各分区的标记处理,以确定对应于所述各分区的分区结果;其中,确定对应于任意的第一分区的分区结果包括,从当前的第二数据单元中选取目标数据块,对该目标数据块以及该目标数据块的、未经过对应于所述第一分区的第一标记处理的关联数据块进行第一标记处理,并跳转至下一个第二数据单元,直至经过第一标记处理的各数据块的累计数目大于等于所述第一分区的预分配块数;至少基于经过第一标记处理的各数据块,确定对应于所述第一分区的分区结果。2.根据权利要求1所述的方法,其中,所述关联数据块包括直接关联数据块和间接关联数据块;所述直接关联数据块是指与所述目标数据块具有重合节点的数据块;所述间接关联数据块是指与所述直接关联数据块具有重合节点的数据块。3.根据权利要求1所述的方法,其中,所述节点信息包括节点标识;所述多个数据块组中的同一数据块组中,在先的数据块中的各节点标识均小于在后的数据块中的各节点标识;所述从当前的第二数据单元中选取目标数据块,包括:从当前的第二数据单元中,选取其中存储的最大节点标识最小的数据块;判断所选取的数据块是否已经过所述第一标记处理,若否,则将其作为所述目标数据块。4.根据权利要求3所述的方法,其中,所述对应于第一分区的分区结果包括,所述第一分区的左边界和右边界,以及经过第一标记处理的各数据块的块标识;其中,所述左边界为首次选取的目标数据块中存储的最小节点标识,所述右边界为最后一次选取的目标数据块中存储的最大节点标识。5.根据权利要求4所述的方法,还包括:获取新增节点的新增节点标识;根据所述各分区的分区结果中的左边界和右边界,确定所述新增节点标识所落入的目标分区。6.根据权利要求1所述的方法,其中,所述第一分区的预分配块数是根据所述第一分区的分区标识、数据块的总数目以及预设的分区数确定的。7.根据权利要求1所述的方法,还包括:在经过第一标记处理的各数据块的累计数目大于所述第一分区的预分配块数的情况下,将超出的数据块直接进行第二标记处理;所述第二标记处理为对应于第一分区的下一分区的标记处理。8.一种针对知识图谱进行划分分区的方法,其中,所述知识图谱至少包括代表目标实体类型的多个目标节点;所述方法包括:
获取对应于不同关系类型的多个数据块组,其中,任意的第i数据块组中的数据块存储有若干目标节点的节点信息,以及各目标节点的对应于第i关系类型的连接边的边信息;根据各分区的预分配节点数,从所述各数据块组中,确定出对应于各分区的分界数据块;根据对应于各分区的分界数据块,确定对应于各分区的分区结果。9.根据权利要求8所述的方法,其中,所述各分区的预分配节点数是根据所述目标节点的数目以及预设的分区数确定的。10.根据权利要求8所述的方法,其中,所述节点信息包括节点标识;所述多个数据块组中的同一数据块组中...

【专利技术属性】
技术研发人员:张达
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

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

1