当前位置: 首页 > 专利查询>清华大学专利>正文

数据处理方法和系统技术方案

技术编号:35928251 阅读:64 留言:0更新日期:2022-12-14 10:12
一种数据处理方法、系统。该数据处理方法包括:获取待处理的图的数据;以及以嵌套动态数组的方式存储图的数据,其中,嵌套动态数组的每个条目包括对应于所述图的一个顶点的边信息动态数组,边信息动态数组的每个条目存储对应于一个顶点的一条出边的边信息,嵌套动态数组的至少一个条目包括索引查找表,索引查找表关联地存储至少一个条目对应的顶点的每个出边的标识与表示对应出边的边信息在存储对应出边的边信息动态数组中的存储位置的索引,并且索引查找表中存储每个出边的标识的位置与对应出边的标识之间存在对应关系。该数据处理方法维护边的索引以避免冗余扫描,从而实现相比最新的技术几个数量级的性能提升。相比最新的技术几个数量级的性能提升。相比最新的技术几个数量级的性能提升。

【技术实现步骤摘要】
数据处理方法和系统


[0001]本公开的实施例涉及一种数据处理方法和系统,特别是涉及基于动态数组的数据处理方法和系统。

技术介绍

[0002]图(graph)是一种数据格式,可以用于表示社交网络、通信网络、蛋白分子网络等,图中的节点表示网络中的个体,连边表示个体之间的连接关系。图数据处理被越来越多地应用于学术界和工业界。在实际应用中,对应于诸如涉及动态交易的大数据的图通常是进化图(evolving graph),例如社交网络图、金融交易图等。现实世界中的进化图是大规模的且连续变化的,例如每秒钟可能有成千上万的更新。
[0003]进化图数据处理,例如单调性算法(例如,广度优先搜索算法、最短路径算法、可达性分析算法等)通常要求扫描图中大量的节点或边,甚至扫描整个图。增量计算(incremental computing)可以通过利用先前的结果来减少冗余计算,从而加速进化图数据处理算法。近年来,提出了若干种增量图数据处理系统,这些系统包括KickStarter、差分数据流(Differential Dataflow)。

技术实现思路

[0004]本公开的至少一实施例提供一种数据处理方法,包括:获取待处理的数据;以及以嵌套动态数组的方式将所述数据存储为图,其中,所述嵌套动态数组的每个条目包括对应于所述图的一个顶点的边信息动态数组,所述边信息动态数组的每个条目存储对应于所述一个顶点的一条出边的边信息;所述嵌套动态数组的至少一个条目包括索引查找表,所述索引查找表关联地存储所述至少一个条目对应的顶点的每个出边的标识与表示对应出边的边信息在存储所述对应出边的边信息动态数组中的存储位置的索引;并且所述索引查找表中存储每个出边的标识的位置与对应出边的标识之间存在对应关系。
[0005]例如,本公开的至少一实施例提供的数据处理方法还包括:在所述嵌套动态数组中查找目标边,其中,如果所述目标边的起始顶点具有对应的索引查找表,则在所述嵌套动态数组中查找目标边包括:根据所述目标边的标识,利用所述索引查找表中存储每个出边的标识的位置与对应出边的标识之间的对应关系,确定所述目标边的标识存储在所述索引查找表中的位置;根据所述目标边的标识存储在所述索引查找表中的位置,获得表示所述目标边的边信息在其对应的边信息动态数组中的存储位置的索引;以及根据所获得的索引从对应的边信息动态数组中查找所述目标边。
[0006]例如,本公开的至少一实施例提供的数据处理方法还包括:从所述嵌套动态数组中删除目标边,其中,如果所述目标边的起始顶点具有对应的索引查找表,则在所述嵌套动态数组中删除目标边包括:根据所述目标边的标识,利用所述索引查找表中存储每个出边的标识的位置与对应出边的标识之间的对应关系,确定所述目标边的标识存储在所述索引查找表中的位置;根据所述目标边的标识存储在所述索引查找表中的位置,获得表示所述
目标边的边信息在其对应的边信息动态数组中的存储位置的索引;以及根据所获得的索引将对应的边信息动态数组中所述目标边的重复数减1。
[0007]例如,本公开的至少一实施例提供的数据处理方法还包括:在所述嵌套动态数组中插入新边,其中,如果所述新边的起始顶点具有对应的索引查找表,则在所述嵌套动态数组中插入新边包括:根据所述新边的标识,确定所述索引查找表中是否已经存在所述新边的标识;如果所述索引查找表中已经存在所述新边的标识,则根据所述索引查找表中指示的表示所述新边在其对应的边信息动态数组中的存储位置的索引,将对应的边信息动态数组中所述新边的重复数加1;如果所述索引查找表中不存在所述新边的标识,则在所述新边的起始顶点所对应的边信息动态数组中添加所述新边的边信息,并在所述索引查找表中添加所述新边的标识并关联地添加表示所述新边的边信息在对应的边信息动态数组中的存储位置的索引。
[0008]例如,本公开的至少一实施例提供的数据处理方法还包括:在所述嵌套动态数组中查找目标顶点的所有出边,其包括:在所述目标顶点对应的边信息动态数组中遍历所述出边。
[0009]例如,本公开的至少一实施例提供的数据处理方法还包括:在所述边信息动态数组被填满时,倍增所述边信息动态数组的空间,释放所述边信息动态数组中重复数为0的边的空间,并更新对应的索引查找表。
[0010]例如,在本公开的至少一实施例提供的数据处理方法中,所述嵌套动态数组中包括索引查找表的条目为具有超过预定度的顶点所对应的条目。
[0011]例如,在本公开的至少一实施例提供的数据处理方法中,所述索引查找表中存储的出边的标识为由所述出边的终止顶点标识和权重构成的数据对。
[0012]例如,在本公开的至少一实施例提供的数据处理方法中,所述边信息动态数组中存储的出边的边信息包括所述出边的终止顶点标识、权重和重复数。
[0013]例如,在本公开的至少一实施例提供的数据处理方法中,所述索引查找表是哈希表、BTree或ARTree。
[0014]本公开的至少一实施例提供一种数据处理系统,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行时实现本公开的至少一实施例提供的数据处理方法的步骤。
附图说明
[0015]为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
[0016]图1示出了根据本公开的至少一实施例的数据处理系统所应用的高级体系结构的示意图;
[0017]图2示出了根据本公开的至少一实施例的数据处理方法的流程图;
[0018]图3示出了根据本公开的至少一实施例的索引邻接表的示意图;
[0019]图4示出了根据本公开的至少一实施例的在嵌套动态数组中插入新边的示意图;
[0020]图5示出了根据本公开的至少一实施例的在嵌套动态数组中删除目标边的示意图;
[0021]图6A示出了根据本公开的至少一实施例的插入新边的图存储性能的示意图;
[0022]图6B示出了根据本公开的至少一实施例的删除目标边的图存储性能的示意图;
[0023]图7示出了根据本公开的至少一实施例的数据处理系统的结构示意图;
[0024]图8示出了根据本公开的至少一实施例的非瞬时性存储介质的示意图。
具体实施方式
[0025]为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0026]除非另作定义,此处使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,包括:获取待处理的数据;以及以嵌套动态数组的方式将所述数据存储为图,其中所述嵌套动态数组的每个条目包括对应于所述图的一个顶点的边信息动态数组,所述边信息动态数组的每个条目存储对应于所述一个顶点的一条出边的边信息,所述嵌套动态数组的至少一个条目包括索引查找表,所述索引查找表关联地存储所述至少一个条目对应的顶点的每个出边的标识与表示对应出边的边信息在存储所述对应出边的边信息动态数组中的存储位置的索引,并且所述索引查找表中存储每个出边的标识的位置与对应出边的标识之间存在对应关系。2.如权利要求1所述的数据处理方法,还包括在所述嵌套动态数组中查找目标边,其中,如果所述目标边的起始顶点具有对应的索引查找表,则在所述嵌套动态数组中查找目标边包括:根据所述目标边的标识,利用所述索引查找表中存储每个出边的标识的位置与对应出边的标识之间的对应关系,确定所述目标边的标识存储在所述索引查找表中的位置;根据所述目标边的标识存储在所述索引查找表中的位置,获得表示所述目标边的边信息在其对应的边信息动态数组中的存储位置的索引;以及根据所获得的索引从对应的边信息动态数组中查找所述目标边。3.如权利要求1所述的数据处理方法,还包括从所述嵌套动态数组中删除目标边,其中,如果所述目标边的起始顶点具有对应的索引查找表,则在所述嵌套动态数组中删除目标边包括:根据所述目标边的标识,利用所述索引查找表中存储每个出边的标识的位置与对应出边的标识之间的对应关系,确定所述目标边的标识存储在所述索引查找表中的位置;根据所述目标边的标识存储在所述索引查找表中的位置,获得表示所述目标边的边信息在其对应的边信息动态数组中的存储位置的索引;以及根据所获得的索引将对应的边信息动态数组中所述目标边的重复数减1。4.如权利要求1所述的数据处理方法,还包括在所述嵌套动态数组中插入新边,其中,如果所述新边的起始顶点具有对应的索引查找表,则在所述嵌套动态数组中插入新边包括:根据所述新边的标识,确定所述索引查找表中是否已经存在所...

【专利技术属性】
技术研发人员:冯冠宇朱晓伟陈文光
申请(专利权)人:清华大学
类型:发明
国别省市:

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

1