用于图计算的处理方法、装置、系统及计算机可读介质与流程

文档序号:30893355发布日期:2022-07-26 22:42阅读:48来源:国知局

1.本发明涉及图数据处理技术领域,具体地说,涉及一种用于图计算的处理方法、装置、系统及计算机可读介质。


背景技术:

2.现实世界中,图数据无处不在,图数据通常用来表达多个数据对象的多个数据类型间的拓扑结构。基于图数据的图计算具有广泛的应用前景:从网络攻击识别、路由优化到关系预测等。在图计算相关的应用领域中,一般包含图查询、图分析及图学习三大核心模块。由于业务场景的复杂性,一般需要将三大核心模块进行有机组合从而解决实际的业务问题。
3.图数据大多由节点数据和边数据构成,在一个数据对象的群体中,一个节点数据用于表达某一具体类别的数据,边数据则通常用以表达两个节点数据间的关联。
4.以互联网交易数据为例,对于某一个交易群体,用于表达该交易群体的特征类型的数据则可以定义为用户节点数据;用户节点数据的格式可为如下形式:用户1,身高1,体重1;用户2,身高2,体重2;用于表达该交易群体的所购买商品类型的数据则可以定义为商品节点数据,商品节点数据可为如下形式:商品1,销量1,价格1;商品2,销量2,价格2;用于表达用户节点数据与商品节点数据间的关联的边数据则可以表达为如下:用户1
‑‑
商品2;用户2
‑‑
商品2。
5.通过如上可以看出,通过图数据的方式,能够较佳地实现对庞大数据的存储。基于图数据的数据存储方式,使得多种基于图数据的庞大数据群体的计算成为了可能,也即图计算。
6.图计算能够高效地实现图查询、图分析及图学习的功能,具有广阔的应用前景。在业务应用中,通常需要以探索的方式查询图数据,此时可以借助于图查询的功能进行查询。基于图分析模块,用户可以基于图的方法来分析关系数据,挖掘感兴趣的模式,计算实体/边之间的特定关系。一般的,图的查询关注于局部数据分析,而图分析通常关注整张图的数据和迭代分析计算。基于图学习模块,用户可以挖掘图的深度关系,发现隐藏的信息,对实体/边的行为进行预测。比如通过有监督的算法进行实体/节点的边标签预测,通过无监督的方式进行聚类,通过半监督的方式进行标签传播与扩散。
7.目前图计算平台种类繁多,然而受限于各自的商业环境,不同平台的功能侧重点各异。如neo4j平台则侧重于图查询,graphx平台则侧重于图分析,plato和euler平台则侧重于图学习。
8.然而,在实际使用时,为了实现复杂的图计算任务,往往同时需要图查询、图分析及图学习功能,基于现有的图计算平台的功能,用户往往需要同时管理、维护不同的图计算平台,从而完成复杂的图计算任务,导致整体系统维护成本高,代码开发难度大。
9.此外,由于不同图计算平台之间内存数据是相互独立的,平台之间的数据需要通过文件系统进行共享,导致系统计算效率低。结合图1,以常用的复杂图计算任务“pipeline”为例,其同时涉及图查询、图分析和图学习任务,其需要进行两次的文件读写操作,导致整体系统效率低下。
10.总而言之,目前的图计算应用平台存在以下缺点:1、复杂场景图计算效率低:受限于各自的商业场景,不同图计算平台功能侧重点不一样,为了实现复杂的图计算任务,往往需要多个计算平台共同完成任务,由于不同平台之间内存数据无法共享,需要借助于文件系统进行数据的传输,因此导致在复杂图计算场景下计算效率低下;2、开发门槛高:多种图计算平台和复杂的业务场景导致复杂图算法开发难度大。


技术实现要素:

11.本发明提供了一种用于图计算的处理方法,其能够克服现有图平台所存在的因数据不通而导致的图计算效率较为低下的等问题。
12.根据本发明的用于图计算的处理方法,其包括如下步骤:步骤s1、图数据存储该步骤中,将图数据存储于分布式文件系统中;步骤s2、图数据加载该步骤中,将存储于分布式文件系统的相关存储服务器中的数据片段分别加载至对应存储服务器的内存中,所有存储服务器的内存共同构成共享内存;步骤s3、基于共享内存中的图数据进行图计算,图计算包括执行图查询任务和/或图分析任务和/或图学习任务;步骤s4、图数据更新该步骤中,对共享内存中发生变化的数据更新至分布式文件系统的对应存储服务器处。
13.本发明中,通过将图数据存储于分布式文件系统中,并通过构建共享内存的方式,使得图查询、图分析及图学习任务的相关数据均能够直接应用加载于对应存储服务器的内存中的数据,故而能够较为高效支持图查询、图分析和图学习任务及任务之间的高效组合,降低用户的代码开发成本。另外,由于能够将图查询、图分析及图学习三大模块进行一站式的系统融合,故而能够较佳地降低模块之间的系统割裂,提升了图计算的效率。
14.作为优选,步骤s1具体包括如下步骤,步骤s11、构建图数据,图数据包括多个节点数据和边数据;其中,每个节点数据均具有节点id、节点类型和节点属性信息;节点id为节点数据的编号,其依次取值于自然数;节点类型为节点数据所收录的数据类型的编码;节点属性信息用于记载对应数据类型下的数据对象的相关数据;其中,每个边数据均具有边id,边类型,起始节点id、指向节点id、起始节点类型、
指向节点类型和边属性信息;边id为边数据的编号,其依次取值于自然数;边类型用于记载所对应两个节点数据间的关联方式;起始节点id和指向节点id以及起始节点类型和指向节点类型分别为所对应两个节点数据的节点id以及节点类型;边属性信息用于记载数据对象在所对应两个节点数据中的关联;步骤s12、对节点数据进行存储该步骤中,首先对分布式文件系统中的m个存储服务器以正整数进行依次编号;之后,依据公式,mod(节点id) = 节点id % n + 1,获取每个节点节点数据的存储位置mod(节点id);之后相应节点数据存储于对应存储服务器中即可;其中,“%”为取模运算,n为节点数据的总数;步骤s13、对边数据进行存储该步骤中,依据边数据中的起始节点id和指向节点id,将相应边数据分别存储于起始节点和指向节点所在的存储服务器中;步骤s14、构建元数据并进行存储其中,元数据用于记载图数据的节点数据的数量、边数据的数量以及节点数据的分配方式;元数据存储于编号为“1”的存储服务器中。
15.在步骤s1中,通过对图数据的切片处理(即步骤s12和步骤s13),能够较佳地将数据量较大的图数据进行存储,故而能够较佳地实现数据库的保障。
16.作为优选,步骤s2具体包括如下步骤,步骤s21、读取元数据;步骤s22、依据元数据所记载信息将图数据的相关数据片段加载至对应存储服务器的内存中其中,对于节点数据,以字典数据结构对其进行加载;具体地,以节点id为key值、以节点类型和节点属性信息为value值加载至内存中;其中,对于边数据,将起始节点id和指向节点id为当前节点数据的节点id的两份边数据分别命名为出边集合和入边结合并作为value值加载至内存中。
17.基于上述,能够较佳地将分布式文件系统中的对应存储服务器中相关数据加载至该存储服务器的内存中,故而能够较佳地实现数据的高效、互通的使用。
18.作为优选,步骤s3中,在执行图查询任务时,具体包括如下步骤,步骤s31a、输入所需查询节点数据的节点id及度数d;步骤s32a、依据元数据和节点id确定该节点数据所在的存储服务器的编号,之后自对应存储服务器中查询与该节点id对应的key值,并返回与该key值对应的value值;步骤s33a、依据value值中的出边集合,获取该节点数据的一度邻居的节点数据的节点id(即出边集合中的指向节点id);依步骤s32a,获取该节点数据的一度邻居的节点数据的value值;步骤s34a、重复步骤s33a,直至度数达到d。
19.通过上述,能够较佳地实现图查询任务的执行。
20.作为优选,步骤s3中,在执行图分析任务和/或图学习任务时,具体包括如下步骤,步骤s31b、确定执行图分析任务和/或图学习任务所需要的节点数据的节点id;步骤s32b、依据元数据和节点id获取相应节点数据所在的存储服务器编号;
步骤s33b、将相关计算程序发送至对应的存储服务器处并基于对应内存中的节点数据执行图分析任务和/或图学习任务;步骤s34b、返回结果。
21.通过上述,能够较佳地实现图分析任务和/或图学习任务的执行。
22.作为优选,步骤s4具体包括如下步骤,步骤s41、获取图数据中发生变化的节点数据和边数据;步骤s42、依据节点数据的节点id,获取该节点数据所在的存储服务器的编号,以更新后节点数据中的节点属性信息替换原节点数据的中的节点属性信息;步骤s43、依据边数据中的起始节点id和指向节点id,获取边数据所在的存储服务器的编号,以更新后边数据对原边数据进行替换;步骤s44、将存储服务器内存中的数据更新至分布式文件系统中。
23.通过上述,能够较佳地实现对图数据的更新。
24.此外,本发明还提供了一种用于图计算的处理装置,包括存储器和处理器,所述存储器中存储有计算机程序,其所述处理器执行所述计算机程序时,实现任一项上述的处理方法的步骤。故而能够较佳地实现相关功能。
25.同时,本发明还提供了一种用于图计算的处理系统,其特征在于:包括分布式文件系统及任一上述的处理装置;其中,分布式文件系统具有存储服务器,存储服务器具有内存及磁盘。故而能够较佳地实现相关功能。
26.作为优选,分布式文件系统为hdfs或oss。故而能够较佳地便于实现。
27.另外,本发明还提供了一种计算机可读介质,其上存储有计算机程序,其所述计算机程序被执行时实现任一项上述的处理方法的步骤。故而能够较佳地实现相关功能。
附图说明
28.图1为现有图计算的流程示意图;图2为实施例1中的处理方法的流程示意图。
具体实施方式
29.为进一步了解本发明的内容,结合附图和实施例对本发明作详细描述。应当理解的是,实施例仅仅是对本发明进行解释而并非限定。
30.实施例1结合图2所示,本实施例提供了一种用于图计算的处理方法,其包括如下步骤:步骤s1、图数据存储该步骤中,将图数据存储于分布式文件系统中;步骤s2、图数据加载该步骤中,将存储于分布式文件系统的相关存储服务器中的数据片段分别加载至对应存储服务器的内存中,所有存储服务器的内存共同构成共享内存;步骤s3、基于共享内存中的图数据进行图计算,图计算包括执行图查询任务和/或图分析任务和/或图学习任务;步骤s4、图数据更新
该步骤中,对共享内存中发生变化的数据更新至分布式文件系统的对应存储服务器处。
31.本实施例中,通过将图数据存储于分布式文件系统中,并通过构建共享内存的方式,使得图查询、图分析及图学习任务的相关数据均能够直接应用加载于对应存储服务器的内存中的数据,故而能够较为高效支持图查询、图分析和图学习任务及任务之间的高效组合,降低用户的代码开发成本。另外,由于能够将图查询、图分析及图学习三大模块进行一站式的系统融合,故而能够较佳地降低模块之间的系统割裂,提升了图计算的效率。
32.本实施例的步骤s1具体包括如下步骤,步骤s11、构建图数据,图数据包括多个节点数据和边数据;其中,每个节点数据均具有节点id、节点类型和节点属性信息;节点id为节点数据的编号,其依次取值于自然数;节点类型为节点数据所收录的数据类型的编码;节点属性信息用于记载对应数据类型下的数据对象的相关数据;其中,每个边数据均具有边id,边类型,起始节点id、指向节点id、起始节点类型、指向节点类型和边属性信息;边id为边数据的编号,其依次取值于自然数;边类型用于记载所对应两个节点数据间的关联方式;起始节点id和指向节点id以及起始节点类型和指向节点类型分别为所对应两个节点数据的节点id以及节点类型;边属性信息用于记载数据对象在所对应两个节点数据中的关联;步骤s12、对节点数据进行存储该步骤中,首先对分布式文件系统中的m个存储服务器以正整数进行依次编号;之后,依据公式,mod(节点id) = 节点id % n + 1,获取每个节点节点数据的存储位置mod(节点id);之后相应节点数据存储于对应存储服务器中即可;其中,“%”为取模运算,n为节点数据的总数;步骤s13、对边数据进行存储该步骤中,依据边数据中的起始节点id和指向节点id,将相应边数据分别存储于起始节点和指向节点所在的存储服务器中;步骤s14、构建元数据并进行存储其中,元数据用于记载图数据的节点数据的数量、边数据的数量以及节点数据的分配方式;元数据存储于编号为“1”的存储服务器中。
33.在步骤s1中,通过对图数据的切片处理(即步骤s12和步骤s13),能够较佳地将数据量较大的图数据进行存储,故而能够较佳地实现数据库的保障。
34.本实施例的步骤s2具体包括如下步骤,步骤s21、读取元数据;步骤s22、依据元数据所记载信息将图数据的相关数据片段加载至对应存储服务器的内存中其中,对于节点数据,以字典数据结构对其进行加载;具体地,以节点id为key值、以节点类型和节点属性信息为value值加载至内存中;其中,对于边数据,将起始节点id和指向节点id为当前节点数据的节点id的两份边数据分别命名为出边集合和入边结合并作为value值加载至内存中。
35.基于上述,能够较佳地将分布式文件系统中的对应存储服务器中相关数据加载至
该存储服务器的内存中,故而能够较佳地实现数据的高效、互通的使用。
36.本实施例的步骤s3中,在执行图查询任务时,具体包括如下步骤,步骤s31a、输入所需查询节点数据的节点id及度数d;步骤s32a、依据元数据和节点id确定该节点数据所在的存储服务器的编号,之后自对应存储服务器中查询与该节点id对应的key值,并返回与该key值对应的value值;步骤s33a、依据value值中的出边集合,获取该节点数据的一度邻居的节点数据的节点id(即出边集合中的指向节点id);依步骤s32a,获取该节点数据的一度邻居的节点数据的value值;步骤s34a、重复步骤s33a,直至度数达到d。
37.通过上述,能够较佳地实现图查询任务的执行。
38.本实施例的步骤s3中,在执行图分析任务和/或图学习任务时,具体包括如下步骤,步骤s31b、确定执行图分析任务和/或图学习任务所需要的节点数据的节点id;步骤s32b、依据元数据和节点id获取相应节点数据所在的存储服务器编号;步骤s33b、将相关计算程序发送至对应的存储服务器处并基于对应内存中的节点数据执行图分析任务和/或图学习任务;步骤s34b、返回结果。
39.通过上述,能够较佳地实现图分析任务和/或图学习任务的执行。
40.本实施例的步骤s4具体包括如下步骤,步骤s41、获取图数据中发生变化的节点数据和边数据;步骤s42、依据节点数据的节点id,获取该节点数据所在的存储服务器的编号,以更新后节点数据中的节点属性信息替换原节点数据的中的节点属性信息;步骤s43、依据边数据中的起始节点id和指向节点id,获取边数据所在的存储服务器的编号,以更新后边数据对原边数据进行替换;步骤s44、将存储服务器内存中的数据更新至分布式文件系统中。
41.通过上述,能够较佳地实现对图数据的更新。
42.通过本实施例中的方法,使得:1、所提出的分布式文件系统+共享内存的永久存储+临时存储方案,能够较佳地实现图数据的永久存储,以及在执行相关图计算任务时的数据共通;从而取消了不必要的基于文件系统的数据同步操作,提升了复杂图计算的串行计算效率;2、通过对图查询、图分析和图学习任务间的工作流程的设计,实现了不同算法模块间的高效的串行调用关系;由于图查询、图分析和图学习任务间能够依据实际使用场景进行自由编排,故而较佳地实现复杂图计算应用场景下的低代码开发,降低了图计算应用开发成本。
43.以电商交易图数据为例,通过本发明的方法,通过图查询、图分析和图学习任务间的不同编排方式,能够较佳地实现下述功能:1、图查询:查询一个月内购买商品量大于n的用户;2、图分析:计算存在频繁购买相同商品的用户团伙;3、图学习:通过深度神经网络预测用户可能购买的商品;
4、图查询+图分析:通过图查询过滤低频购买用户,然后在高频购买图数据中挖掘频繁购买的用户团伙;5、图查询+图学习:通过图查询找到低频购买用户,通过图学习预测用户可能会购买的商品;6、图分析+图查询:通过图分析的方式计算的得到图上的团伙,再通过图查询找到密度大的团伙;7、图分析+图学习:通过图分析的方式进行节点标签扩散,然后通过图学习进行节点的标签预测;8、图学习+图查询:通过图学习预测节点的风险标签,然后查询风险节点;9、图学习+图分析:通过图学习的方式预测节点的风险标签,然后通过图分析找到风险团伙;10、图查询+图分析+图学习:通过图查询找到频繁购买的用户及对应购买的商品,再通过图分析找到其中频繁购买的团伙,最终通过图学习进行团伙的提前预测;11、图查询+图学习+图分析:通过图查询找到新品及对应的购买用户,通过图学习预测商品的销量变化,再通过图分析找到可能成为爆款的商品;12、图分析+图查询+图学习:通过图分析的方式计算得到图上的团伙,再通过图查询找到密度大的团伙(高密团伙),最后通过图学习进行高密团伙的预测;13、图分析+图学习+图查询:通过图分析的方式进行节点标签扩散,然后通过图学习进行节点的标签预测,最后查询指定标签的节点数据;14、图学习+图查询+图分析:通过图学习预测节点的风险标签,然后查询风险节点,最后通过图分析找到风险团伙;15、图学习+图分析+图查询:通过图学习的方式预测节点的风险标签,然后通过图分析找到风险团伙,最后通过图查询输出高风险的团伙。
44.同时,本实施例还提供了一种用于图计算的处理装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本实施例中的处理方法的步骤。故而能够较佳地实现相关功能。
45.此外,本实施例还提供了一种用于图计算的处理系统,其包括分布式文件系统及本实施例中的处理装置;其中,分布式文件系统具有存储服务器,存储服务器具有内存及磁盘。其中磁盘用于实现数据的永久存储,其能够为硬盘等设备。故而能够较佳地实现相关功能。
46.其中,分布式文件系统为hdfs或oss。故而能够较佳地便于实现。
47.另外,本实施例还提供了一种计算机可读介质,其上存储有计算机程序,其所述计算机程序被执行时实现本实施例中的处理方法的步骤。故而能够较佳地实现相关功能。
48.以上示意性的对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。所以,如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1