本发明涉及数据处理技术领域,特别涉及一种图数据的处理方法及装置。
背景技术:
随着计算机和信息技术的快速发展,每时每刻都会产生海量数据。基于关系型数据库,需要将这些海量数据存储到关系型数据库中进行处理,而这种数据结构的处理速度较慢。为了快速处理海量数据,图数据的数据结构越来越受到重视。但是,现有技术无法对图数据进行处理。
技术实现要素:
本发明实施例提供了一种图数据的处理方法及装置,能够对图数据进行处理。
一方面,本发明实施例提供了一种图数据的处理方法,包括:
获取待处理的图数据;
确定所述图数据中的至少一个目标节点;
从所述图数据中,确定每个所述目标节点的邻接点;
对所述至少一个目标节点以及每个所述目标节点的邻接点进行去重后,得到至少一个待处理节点;
在所述图数据中,根据所述至少一个待处理节点之间的连接关系,确定所述至少一个目标节点对应的至少一条关系路径。
进一步地,该方法进一步包括:
预先设置所述图数据中任意两个相连的节点之间的每种关系的权重;
在所述在所述图数据中,根据所述至少一个待处理节点之间的连接关系,确定所述至少一个目标节点对应的至少一条关系路径之后,进一步包括:
针对每条所述关系路径,执行:
根据公式一,确定当前关系路径中任意两个相邻的节点之间的子路径的亲密度,所述公式一为:
其中,d为所述当前关系路径中任意两个相邻的节点之间的子路径的亲密度,wj为第j种关系的权重,tj为第j种关系发生的次数,m为第i个节点与第i+1个节点之间关系的数量;
根据公式二,确定所述当前关系路径的亲密度,所述公式二为:
其中,c为所述当前关系路径的亲密度,dk为所述当前关系路径中第i个节点与第i+1个节点之间的子路径的亲密度,n为所述当前关系路径中子路径的个数;
判断所述当前关系路径的亲密度是否大于等于预设亲密度,如果是,则确定所述当前关系路径为待输出关系路径,输出所述待输出关系路径,否则,舍弃所述当前关系路径。
进一步地,该方法进一步包括:
预先设置关系路径集合;
在所述从所述图数据中,确定每个所述目标节点的邻接点之后,进一步包括:
将每个所述目标节点与对应的邻接点的关系路径保存到所述关系路径集合中;
所述在所述图数据中,根据所述至少一个待处理节点之间的连接关系,确定所述至少一个目标节点对应的至少一条关系路径,包括:
a1:将所述至少一个待处理节点分成两个集合,所述两个集合包括第一集合和第二集合;
a2:根据所述图数据,从所述第一集合中确定存在属于所述第二集合的邻接点的第一节点,将每个所述第一节点与其邻接点的关系路径保存到所述关系路径集合中,并将所述第一集合中不存在属于所述第二集合的邻接点的第二节点保存到第三集合中,将第三集合作为第一当前集合;
a3:根据所述图数据,确定存在属于所述第三集合的邻接点的第三节点,将每个所述第三节点与其邻接点的关系路径保存到所述关系路径集合中,并将所述第二集合中不存在属于所述第二集合的邻接点的第四节点保存到第四集合中,将第四集合作为第二当前集合;
a4:将当前路径深度加1,判断所述当前路径深度是否大于等于预设深度值,如果是,则执行a8,否则,执行a5;其中,所述当前路径深度初始值为0;
a5:判断第一当前集合中节点的个数是否小于等于第二当前集合中节点的个数,如果是,则执行a6,否则,执行a7;
a6:根据所述图数据,判断所述第一当前集合中是否存在第一当前节点,如果是,将每个所述第一当前节点与其邻接点的关系路径保存到所述关系路径集合中,并将所述第一当前集合中不存在属于所述第二当前集合的邻接点的第二当前节点保存到第三当前集合中,将所述第三当前集合作为所述第一当前集合,返回a4;否则,执行a8;其中,所述第一当前节点为存在属于所述第二当前集合的邻接点且在所述第一当前集合中的节点;
a7:根据所述图数据,判断所述第二当前集合中是否存在第三当前节点,如果是,将每个所述第三当前节点与其邻接点的关系路径保存到所述关系路径集合中,并将所述第二当前集合中不存在属于所述第一当前集合的邻接点的第四当前节点保存到第四当前集合中,将所述第四当前集合作为所述第二当前集合,返回a4,否则,执行a8;其中,所述第三当前节点为存在属于所述第一当前集合的邻接点且在所述第二当前集合中的节点;
a8:根据所述关系路径集合,确定所述至少一个目标节点对应的所述至少一条关系路径。
进一步地,所述将所述至少一个待处理节点分成两个集合,所述两个集合包括第一集合和第二集合,包括:
计算每个所述待处理节点的节点度,其中,所述节点度为节点在所述图数据中的邻接点的个数;
将所述至少一个待处理节点按照所述节点度进行排序;
按照排序,将所述节点度最大的预设数量个所述待处理节点均匀分配到所述第一集合和所述第二集合中。
进一步地,所述将所述至少一个待处理节点分成两个集合,所述两个集合包括第一集合和第二集合,包括:
将所述至少一个待处理节点均匀分配到所述第一集合和所述第二集合中。
另一方面,本发明实施例提供了一种图数据的处理装置,包括:
待处理节点,用于获取待处理的图数据;确定所述图数据中的至少一个目标节点;从所述图数据中,确定每个所述目标节点的邻接点;对所述至少一个目标节点以及每个所述目标节点的邻接点进行去重后,得到至少一个待处理节点;
路径确定单元,用于在所述图数据中,根据所述至少一个待处理节点之间的连接关系,确定所述至少一个目标节点对应的至少一条关系路径。
进一步地,该装置进一步包括:
权重设置单元,用于设置所述图数据中任意两个相连的节点之间的每种关系的权重;
所述路径确定单元,进一步用于在所述在所述图数据中,根据所述至少一个待处理节点之间的连接关系,确定所述至少一个目标节点对应的至少一条关系路径之后,针对每条所述关系路径,执行:
根据公式一,确定当前关系路径中任意两个相邻的节点之间的子路径的亲密度,所述公式一为:
其中,d为所述当前关系路径中任意两个相邻的节点之间的子路径的亲密度,wj为第j种关系的权重,tj为第j种关系发生的次数,m为第i个节点与第i+1个节点之间关系的数量;
根据公式二,确定所述当前关系路径的亲密度,所述公式二为:
其中,c为所述当前关系路径的亲密度,dk为所述当前关系路径中第i个节点与第i+1个节点之间的子路径的亲密度,n为所述当前关系路径中子路径的个数;
判断所述当前关系路径的亲密度是否大于等于预设亲密度,如果是,则确定所述当前关系路径为待输出关系路径,输出所述待输出关系路径,否则,舍弃所述当前关系路径。
进一步地,该装置进一步包括:
集合设置单元,用于设置关系路径集合;
所述待处理节点,进一步用于在所述从所述图数据中,确定每个所述目标节点的邻接点之后,将每个所述目标节点与对应的邻接点的关系路径保存到所述关系路径集合中;
所述路径确定单元,用于执行:
a1:将所述至少一个待处理节点分成两个集合,所述两个集合包括第一集合和第二集合;
a2:根据所述图数据,从所述第一集合中确定存在属于所述第二集合的邻接点的第一节点,将每个所述第一节点与其邻接点的关系路径保存到所述关系路径集合中,并将所述第一集合中不存在属于所述第二集合的邻接点的第二节点保存到第三集合中,将第三集合作为第一当前集合;
a3:根据所述图数据,确定存在属于所述第三集合的邻接点的第三节点,将每个所述第三节点与其邻接点的关系路径保存到所述关系路径集合中,并将所述第二集合中不存在属于所述第二集合的邻接点的第四节点保存到第四集合中,将第四集合作为第二当前集合;
a4:将当前路径深度加1,判断所述当前路径深度是否大于等于预设深度值,如果是,则执行a8,否则,执行a5;其中,所述当前路径深度初始值为0;
a5:判断第一当前集合中节点的个数是否小于等于第二当前集合中节点的个数,如果是,则执行a6,否则,执行a7;
a6:根据所述图数据,判断所述第一当前集合中是否存在第一当前节点,如果是,将每个所述第一当前节点与其邻接点的关系路径保存到所述关系路径集合中,并将所述第一当前集合中不存在属于所述第二当前集合的邻接点的第二当前节点保存到第三当前集合中,将所述第三当前集合作为所述第一当前集合,返回a4;否则,执行a8;其中,所述第一当前节点为存在属于所述第二当前集合的邻接点且在所述第一当前集合中的节点;
a7:根据所述图数据,判断所述第二当前集合中是否存在第三当前节点,如果是,将每个所述第三当前节点与其邻接点的关系路径保存到所述关系路径集合中,并将所述第二当前集合中不存在属于所述第一当前集合的邻接点的第四当前节点保存到第四当前集合中,将所述第四当前集合作为所述第二当前集合,返回a4,否则,执行a8;其中,所述第三当前节点为存在属于所述第一当前集合的邻接点且在所述第二当前集合中的节点;
a8:根据所述关系路径集合,确定所述至少一个目标节点对应的所述至少一条关系路径。
进一步地,所述路径确定单元,在执行所述将所述至少一个待处理节点分成两个集合,所述两个集合包括第一集合和第二集合时,具体用于:
计算每个所述待处理节点的节点度,其中,所述节点度为节点在所述图数据中的邻接点的个数;
将所述至少一个待处理节点按照所述节点度进行排序;
按照排序,将所述节点度最大的预设数量个所述待处理节点均匀分配到所述第一集合和所述第二集合中。
进一步地,所述路径确定单元,在执行所述将所述至少一个待处理节点分成两个集合,所述两个集合包括第一集合和第二集合时,具体用于:
将所述至少一个待处理节点均匀分配到所述第一集合和所述第二集合中。
在本发明实施例中,确定每个目标节点在图数据中的邻接点,找到在图数据中与目标节点有直接关系的节点,将这些节点作为待处理节点,通过对这些待处理节点在图数据中的连接关系,能够确定出目标节点的至少一条关系路径,实现对图数据进行处理。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种图数据的处理方法的流程图;
图2是本发明一实施例提供的另一种图数据的处理方法的流程图;
图3是本发明一实施例提供的一种图数据的处理装置的示意图;
图4是本发明一实施例提供的另一种图数据的处理装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种图数据的处理方法,该方法可以包括以下步骤:
步骤101:获取待处理的图数据;
步骤102:确定所述图数据中的至少一个目标节点;
步骤103:从所述图数据中,确定每个所述目标节点的邻接点;
步骤104:对所述至少一个目标节点以及每个所述目标节点的邻接点进行去重后,得到至少一个待处理节点;
步骤105:在所述图数据中,根据所述至少一个待处理节点之间的连接关系,确定所述至少一个目标节点对应的至少一条关系路径。
在本发明实施例中,确定每个目标节点在图数据中的邻接点,找到在图数据中与目标节点有直接关系的节点,将这些节点作为待处理节点,通过对这些待处理节点在图数据中的连接关系,能够确定出目标节点的至少一条关系路径,实现对图数据进行处理。
在本发明一实施例中,该方法进一步包括:
预先设置所述图数据中任意两个相连的节点之间的每种关系的权重;
在所述在所述图数据中,根据所述至少一个待处理节点之间的连接关系,确定所述至少一个目标节点对应的至少一条关系路径之后,进一步包括:
针对每条所述关系路径,执行:
根据公式一,确定当前关系路径中任意两个相邻的节点之间的子路径的亲密度,所述公式一为:
其中,d为所述当前关系路径中任意两个相邻的节点之间的子路径的亲密度,wj为第j种关系的权重,tj为第j种关系发生的次数,m为第i个节点与第i+1个节点之间关系的数量;
根据公式二,确定所述当前关系路径的亲密度,所述公式二为:
其中,c为所述当前关系路径的亲密度,dk为所述当前关系路径中第i个节点与第i+1个节点之间的子路径的亲密度,n为所述当前关系路径中子路径的个数;
判断所述当前关系路径的亲密度是否大于等于预设亲密度,如果是,则确定所述当前关系路径为待输出关系路径,输出所述待输出关系路径,否则,舍弃所述当前关系路径。
在本发明实施例中,可以计算出每条关系路径的亲密度,通过亲密度可以反映出关系路径两端的节点的亲密程度。输出待输出关系路径,可以对这些待输出关系路径进行显示,方便用户查看亲密程度比较高的关系路径。
在本发明一实施例中,该方法进一步包括:
预先设置关系路径集合;
在所述从所述图数据中,确定每个所述目标节点的邻接点之后,进一步包括:
将每个所述目标节点与对应的邻接点的关系路径保存到所述关系路径集合中;
所述在所述图数据中,根据所述至少一个待处理节点之间的连接关系,确定所述至少一个目标节点对应的至少一条关系路径,包括:
a1:将所述至少一个待处理节点分成两个集合,所述两个集合包括第一集合和第二集合;
a2:根据所述图数据,从所述第一集合中确定存在属于所述第二集合的邻接点的第一节点,将每个所述第一节点与其邻接点的关系路径保存到所述关系路径集合中,并将所述第一集合中不存在属于所述第二集合的邻接点的第二节点保存到第三集合中,将第三集合作为第一当前集合;
a3:根据所述图数据,确定存在属于所述第三集合的邻接点的第三节点,将每个所述第三节点与其邻接点的关系路径保存到所述关系路径集合中,并将所述第二集合中不存在属于所述第二集合的邻接点的第四节点保存到第四集合中,将第四集合作为第二当前集合;
a4:将当前路径深度加1,判断所述当前路径深度是否大于等于预设深度值,如果是,则执行a8,否则,执行a5;其中,所述当前路径深度初始值为0;
a5:判断第一当前集合中节点的个数是否小于等于第二当前集合中节点的个数,如果是,则执行a6,否则,执行a7;
a6:根据所述图数据,判断所述第一当前集合中是否存在第一当前节点,如果是,将每个所述第一当前节点与其邻接点的关系路径保存到所述关系路径集合中,并将所述第一当前集合中不存在属于所述第二当前集合的邻接点的第二当前节点保存到第三当前集合中,将所述第三当前集合作为所述第一当前集合,返回a4;否则,执行a8;其中,所述第一当前节点为存在属于所述第二当前集合的邻接点且在所述第一当前集合中的节点;
a7:根据所述图数据,判断所述第二当前集合中是否存在第三当前节点,如果是,将每个所述第三当前节点与其邻接点的关系路径保存到所述关系路径集合中,并将所述第二当前集合中不存在属于所述第一当前集合的邻接点的第四当前节点保存到第四当前集合中,将所述第四当前集合作为所述第二当前集合,返回a4,否则,执行a8;其中,所述第三当前节点为存在属于所述第一当前集合的邻接点且在所述第二当前集合中的节点;
a8:根据所述关系路径集合,确定所述至少一个目标节点对应的所述至少一条关系路径。
在本发明实施例中,通过上述方式将与目标节点相关的关系路径存储到关系路径集合中,方便后续处理。具体地,通过关系路径集合中的关系路径可以确定任一目标节点达到另一个目标节点的至少一条关系路径。
举例来说,目标节点分别是节点a、节点b、节点c。该至少一条关系路径可以包括:由节点a到节点b的至少一条关系路径、由节点a到节点c的至少一条关系路径、由节点b到节点c的至少一条关系路径。
在本发明一实施例中,所述将所述至少一个待处理节点分成两个集合,所述两个集合包括第一集合和第二集合,包括:
计算每个所述待处理节点的节点度,其中,所述节点度为节点在所述图数据中的邻接点的个数;
将所述至少一个待处理节点按照所述节点度进行排序;
按照排序,将所述节点度最大的预设数量个所述待处理节点均匀分配到所述第一集合和所述第二集合中。
在本发明实施例中,节点度反映的是一个节点对关系网络中其他节点的直接影响力。节点度越大,该节点的影响力越大。在需要分析n个人的关系网络时,如果能找到这个网络中度最大的那个节点,即中心节点,那么从这个节点开始遍历网络的收敛速度会比从普通节点开始遍历更快。因此,通过本发明实施例,可以有效减少确定关系路径集合的递归次数。
在本发明一实施例中,所述将所述至少一个待处理节点分成两个集合,所述两个集合包括第一集合和第二集合,包括:
将所述至少一个待处理节点均匀分配到所述第一集合和所述第二集合中。
在本发明实施例中,保证第一集合和第二集合的节点数量之差的绝对值小于等于1。
如图2所示,本发明实施例提供了一种图数据的处理方法,该方法可以包括以下步骤:
步骤201:预先设置关系路径集合。
具体地,关系路径集合初始值为空。
步骤202:获取待处理的图数据,确定图数据中的至少一个目标节点。
具体地,图数据可以存储在图数据库中。基于图数据库存储结构,以hbase为核心的海量关系主题库的建模、存储架构;将原始数据进行数据清洗汇聚并且通过关系规则进行预处理,删减了不符合规则的数据和无用的数据,将关系数据采集存储到人员关系主题库。这里的关系数据可以是待处理的图数据。
具体地,目标节点可以根据用户需要选择。
步骤203:从图数据中,确定每个目标节点的邻接点。
具体地,与节点直接相连的为其邻接点。
步骤204:将每个目标节点与对应的邻接点的关系路径保存到关系路径集合中。
步骤205:对该至少一个目标节点以及每个目标节点的邻接点进行去重后,得到至少一个待处理节点。
步骤206:计算每个待处理节点的节点度;将所述至少一个待处理节点按照节点度进行排序。按照排序,将节点度最大的预设数量个待处理节点均匀分配到第一集合和第二集合中,并将剩余的待处理节点均匀分配到第一集合和第二集合中。
其中,节点度为节点在图数据中的邻接点的个数。
具体地,保证第一集合中节点的数量与第二集合中节点的数量之差的绝对值小于等于1。
步骤207:根据图数据,从第一集合中确定存在属于第二集合的邻接点的第一节点,将每个第一节点与其邻接点的关系路径保存到关系路径集合中,并将第一集合中不存在属于第二集合的邻接点的第二节点保存到第三集合中,将第三集合作为第一当前集合。
举例来说,第一集合中存在节点a和节点b,第二集合中存在节点c和节点d。节点a与节点c直接相连,节点b不与第二集合中的任何节点直接相连。这时,节点a为第一节点,节点b为第二节点。
步骤208:根据图数据,确定存在属于第三集合的邻接点的第三节点,将每个第三节点与其邻接点的关系路径保存到关系路径集合中,并将第二集合中不存在属于第二集合的邻接点的第四节点保存到第四集合中,将第四集合作为第二当前集合。
步骤209:将当前路径深度加1,判断当前路径深度是否大于等于预设深度值,如果是,则执行步骤215,否则,执行步骤210。
其中,当前路径深度初始值为0。
步骤210:判断第一当前集合中节点的个数是否小于等于第二当前集合中节点的个数,如果是,则执行步骤211,否则,执行步骤213。
步骤211:根据图数据,判断第一当前集合中是否存在第一当前节点,如果是,执行步骤212,否则,执行步骤215。
其中,第一当前节点为存在属于第二当前集合的邻接点且在第一当前集合中的节点。
步骤212:将每个第一当前节点与其邻接点的关系路径保存到关系路径集合中,并将第一当前集合中不存在属于第二当前集合的邻接点的第二当前节点保存到第三当前集合中,将第三当前集合作为第一当前集合,返回步骤209。
步骤213:根据图数据,判断第二当前集合中是否存在第三当前节点,如果是,执行步骤214,否则,执行步骤215。
其中,第三当前节点为存在属于第一当前集合的邻接点且在第二当前集合中的节点。
步骤214:将每个第三当前节点与其邻接点的关系路径保存到关系路径集合中,并将第二当前集合中不存在属于第一当前集合的邻接点的第四当前节点保存到第四当前集合中,将第四当前集合作为第二当前集合,返回步骤209。
步骤215:根据关系路径集合,确定该至少一个目标节点对应的至少一条关系路径。
具体地,根据关系路径集合,针对任意两个当前目标节点,确定有一个当前目标节点到另一个当前目标节点的至少一条关系路径,
在本发明实施例中,通过对图数据中关系网络进行遍历分析,既能在较短时间找出关系路径集合,又能不限制层次深度遍历到所有关系节点进行全面覆盖解析。
在本发明实施例中,本算法还加入了节点度、亲密度等的参数,令关系网络的分析更加全面有效。
通过本发明实施例解决了对庞大繁杂的图数据分析处理速度较慢问题,并且降低了查找关系网络路径的时间复杂度。
在本发明实施例中,对图数据进行关系路径解析,根据各节点的依赖关系,计算各节点所处的层数,并将各关系节点按层数进行分层,既能在较短时间由亲密度高到低的路径依次找到节点间的最短关系路径,又能不限制层次深度遍历到所有关系节点进行全面覆盖查找方法。
如图3、图4所示,本发明实施例提供了一种图数据的处理装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的一种图数据的处理装置所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的cpu将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的一种图数据的处理装置,包括:
待处理节点401,用于获取待处理的图数据;确定所述图数据中的至少一个目标节点;从所述图数据中,确定每个所述目标节点的邻接点;对所述至少一个目标节点以及每个所述目标节点的邻接点进行去重后,得到至少一个待处理节点;
路径确定单元402,用于在所述图数据中,根据所述至少一个待处理节点之间的连接关系,确定所述至少一个目标节点对应的至少一条关系路径。
在本发明一实施例中,该装置进一步包括:
权重设置单元,用于设置所述图数据中任意两个相连的节点之间的每种关系的权重;
所述路径确定单元,进一步用于在所述在所述图数据中,根据所述至少一个待处理节点之间的连接关系,确定所述至少一个目标节点对应的至少一条关系路径之后,针对每条所述关系路径,执行:
根据公式一,确定当前关系路径中任意两个相邻的节点之间的子路径的亲密度,所述公式一为:
其中,d为所述当前关系路径中任意两个相邻的节点之间的子路径的亲密度,wj为第j种关系的权重,tj为第j种关系发生的次数,m为第i个节点与第i+1个节点之间关系的数量;
根据公式二,确定所述当前关系路径的亲密度,所述公式二为:
其中,c为所述当前关系路径的亲密度,dk为所述当前关系路径中第i个节点与第i+1个节点之间的子路径的亲密度,n为所述当前关系路径中子路径的个数;
判断所述当前关系路径的亲密度是否大于等于预设亲密度,如果是,则确定所述当前关系路径为待输出关系路径,输出所述待输出关系路径,否则,舍弃所述当前关系路径。
在本发明一实施例中,该装置进一步包括:
集合设置单元,用于设置关系路径集合;
所述待处理节点,进一步用于在所述从所述图数据中,确定每个所述目标节点的邻接点之后,将每个所述目标节点与对应的邻接点的关系路径保存到所述关系路径集合中;
所述路径确定单元,用于执行:
a1:将所述至少一个待处理节点分成两个集合,所述两个集合包括第一集合和第二集合;
a2:根据所述图数据,从所述第一集合中确定存在属于所述第二集合的邻接点的第一节点,将每个所述第一节点与其邻接点的关系路径保存到所述关系路径集合中,并将所述第一集合中不存在属于所述第二集合的邻接点的第二节点保存到第三集合中,将第三集合作为第一当前集合;
a3:根据所述图数据,确定存在属于所述第三集合的邻接点的第三节点,将每个所述第三节点与其邻接点的关系路径保存到所述关系路径集合中,并将所述第二集合中不存在属于所述第二集合的邻接点的第四节点保存到第四集合中,将第四集合作为第二当前集合;
a4:将当前路径深度加1,判断所述当前路径深度是否大于等于预设深度值,如果是,则执行a8,否则,执行a5;其中,所述当前路径深度初始值为0;
a5:判断第一当前集合中节点的个数是否小于等于第二当前集合中节点的个数,如果是,则执行a6,否则,执行a7;
a6:根据所述图数据,判断所述第一当前集合中是否存在第一当前节点,如果是,将每个所述第一当前节点与其邻接点的关系路径保存到所述关系路径集合中,并将所述第一当前集合中不存在属于所述第二当前集合的邻接点的第二当前节点保存到第三当前集合中,将所述第三当前集合作为所述第一当前集合,返回a4;否则,执行a8;其中,所述第一当前节点为存在属于所述第二当前集合的邻接点且在所述第一当前集合中的节点;
a7:根据所述图数据,判断所述第二当前集合中是否存在第三当前节点,如果是,将每个所述第三当前节点与其邻接点的关系路径保存到所述关系路径集合中,并将所述第二当前集合中不存在属于所述第一当前集合的邻接点的第四当前节点保存到第四当前集合中,将所述第四当前集合作为所述第二当前集合,返回a4,否则,执行a8;其中,所述第三当前节点为存在属于所述第一当前集合的邻接点且在所述第二当前集合中的节点;
a8:根据所述关系路径集合,确定所述至少一个目标节点对应的所述至少一条关系路径。
在本发明一实施例中,所述路径确定单元,在执行所述将所述至少一个待处理节点分成两个集合,所述两个集合包括第一集合和第二集合时,具体用于:
计算每个所述待处理节点的节点度,其中,所述节点度为节点在所述图数据中的邻接点的个数;
将所述至少一个待处理节点按照所述节点度进行排序;
按照排序,将所述节点度最大的预设数量个所述待处理节点均匀分配到所述第一集合和所述第二集合中。
在本发明一实施例中,所述路径确定单元,在执行所述将所述至少一个待处理节点分成两个集合,所述两个集合包括第一集合和第二集合时,具体用于:
将所述至少一个待处理节点均匀分配到所述第一集合和所述第二集合中。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行本发明实施例提供的任意一种图数据的处理方法。
本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的执行指令,以使所述存储控制器执行本发明实施例提供的任意一种图数据的处理方法。
本发明各个实施例至少具有如下有益效果:
1、在本发明实施例中,确定每个目标节点在图数据中的邻接点,找到在图数据中与目标节点有直接关系的节点,将这些节点作为待处理节点,通过对这些待处理节点在图数据中的连接关系,能够确定出目标节点的至少一条关系路径,实现对图数据进行处理。
2、在本发明实施例中,通过对图数据中关系网络进行遍历分析,既能在较短时间找出关系路径集合,又能不限制层次深度遍历到所有关系节点进行全面覆盖解析。
3、在本发明实施例中,本算法还加入了节点度、亲密度等的参数,令关系网络的分析更加全面有效。
4、通过本发明实施例解决了对庞大繁杂的图数据分析处理速度较慢问题,并且降低了查找关系网络路径的时间复杂度。
5、在本发明实施例中,对图数据进行关系路径解析,根据各节点的依赖关系,计算各节点所处的层数,并将各关系节点按层数进行分层,既能在较短时间由亲密度高到低的路径依次找到节点间的最短关系路径,又能不限制层次深度遍历到所有关系节点进行全面覆盖查找方法。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃····〃”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。