CN104809168A - 超大规模rdf图数据的划分与并行分布处理方法 - Google Patents
超大规模rdf图数据的划分与并行分布处理方法 Download PDFInfo
- Publication number
- CN104809168A CN104809168A CN201510157833.3A CN201510157833A CN104809168A CN 104809168 A CN104809168 A CN 104809168A CN 201510157833 A CN201510157833 A CN 201510157833A CN 104809168 A CN104809168 A CN 104809168A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- super limit
- classification
- graph
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种超大规模RDF图数据的划分与并行分布处理方法,包括:对原始的RDF图数据进行预处理,生成对应的哈希字典文件和整形三列表数据,并将整形三列表数据转换成关联矩阵M;建立关联矩阵M的超图模型,在该超图模型中,M的主语、谓词和宾语即为超边,与超边相关的数据即为超边数据;判断该RDF图数据是连通图还是非连通图,如果是非连通图,则将该非连通图划分为多个连通图;基于超图模型,并发的广度遍历并等分放置路径上的超边数据,将超边数据进行分类排序并等分成K份放入K个从节点上,同时建立超边数据与从节点的映射关系。本发明的划分速度快,划分质量高,数据和任务负载均衡,查询处理的并行度高、速度快。
Description
技术领域
本发明属于大数据处理领域,更具体地,涉及一种超大规模RDF图数据的划分与并行分布处理方法。
背景技术
资源描述框架(Resource Description Framework,简称RDF)是整个语义网系统结构中的核心,它被广泛用来描述互联网上存在的各种信息资源。随着RDF数据的不断增长,在单机上处理已经显得力不从心了,所以必须将RDF数据划分到多机上进行处理。
对超大规模RDF图数据的划分,常用的方法有启发式划分和并行层次划分。对于启发式方法,一般是提供一个目标函数,然后划分围绕着这个函数的最优化方向展开,但是目标函数的选取比较困难。对于并行层次划分,则包含三个划分阶段:粗化阶段(Coarsen)、初始化阶段(Initial)和细化提纯阶段(Uncoarsen refinement),粗化阶段则把大图收缩为小图,初始化阶段则对小图进行划分,细化提纯阶段则将小图还原回大图,最终完成划分。这两种方法普遍存在划分时间过长、划分质量不高和任务负载不均衡的问题,最终导致数据的查询处理性能低效。另外,还有采用Metis划分工具将RDF数据的顶点划分成两两不相交的部分,然后以每个顶点为中心向外延伸n跳,最后使用Hadoop处理节点之间的数据传输和结果收集,它的缺点主要是数据冗余度太大,数据处理速度比较慢。
目前,对超大规模图数据的划分和并行分布处理还处于发展阶段,现有的解决方案存在一些技术问题:图数据的划分速度慢,划分质量差;此外,其无法有效地保证数据间关系的完整性、节点数据分布的均匀性和任务负载的均衡性。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种超大规模图数据的划分与并行分布处理方法和系统,其目的在于,通过采用基于超图的生成树划分方法,并发的广度遍历并等分放置路径上的超边数据,从而兼顾数据分布的均匀性和任务负载的均衡性,并通过采用位块传输和流水线式的处理方式,解决现有划分方法的划分时间过长、划分质量不高和任务负载不均衡的问题。
为实现上述目的,按照本发明的一个方面,提供了一种超大规模RDF图数据的划分与并行分布处理方法,包括以下步骤:
(1)对原始的RDF图数据进行预处理,生成对应的哈希字典文件和整形三列表数据,并将整形三列表数据转换成关联矩阵M;
(2)建立关联矩阵M的超图模型,在该超图模型中,M的主语、谓词和宾语即为超边,与超边相关的数据即为超边数据;
(3)判断该RDF图数据是连通图还是非连通图,如果是连通图则转入步骤(4),如果是非连通图,则将该非连通图划分为多个连通图,并对每一个连通图执行步骤(4);
(4)基于超图模型,并发的广度遍历并等分放置路径上的超边数据,并将超边数据进行分类排序并等分成K份放入K个从节点上,其中K为正整数,同时建立超边数据与从节点的映射关系;
(5)对划分到每个从节点上的数据进行后续处理,去除冗余数据,生成相应的关联矩阵、统计信息和索引文件;
(6)各个从节点加载相应的关联矩阵、统计信息和索引文件到内存中,并等待主节点发送来的查询任务;
(7)主节点接收用户提交的查询任务,并将其分解为子查询任务,将子查询任务分发到对应的从节点上进行处理,最终生成投影变量数据;
(8)各从节点采用位块的方式对投影变量数据进行封装和压缩,并以流水线方式将封装和压缩后的数据进行传输和后续的连接处理;
(9)将各个从节点上的中间处理结果进行差值压缩,并将压缩后的结果发送回主节点;
(10)主节点接收来自各个从节点的压缩结果,对结果进行解压操作和最终的汇总处理,并把汇总结果返回给用户。
优选地,步骤(4)包括以下子步骤:
(4-1)获取超图模型中所有的谓词,选取度数最大的谓词作为遍历的起始点,并获得该谓词的超边数据;
(4-2)将该谓词的超边数据进行分类,并按照每一类别的超边数量进行降序排序;
(4-3)将分类排序所获得的每一类别下的数据进行K等分切,然后放入K个从节点上;
(4-4)将该谓词标记为已访问,同时建立该谓词的超边数据与从节点的映射关系;
(4-5)从分类排序所获得的类别中得到一批新的超边,剔除已访问的超边,并获取每个主语对应的超边数据,将每一个主语的超边数据进行分类,并按照每一类别的超边数量进行降序排序;
(4-6)并发的将分类排序所获得的每一类别下的数据进行K等分切,然后放入K个从节点上;
(4-7)标记已访问的超边并建立超边数据与从节点的映射关系;
(4-8)从分类排序所获得的类别中又得到一批新的超边,剔除已访问的超边,并获取每个宾语对应的超边数据,将每一个宾语的超边数据进行分类,并按照每一类别的超边数量进行降序排序;
(4-9)并发的将分类排序所获得的每一类别下的数据进行K等分切,然后放入K个从节点上;
(4-10)标记已访问的超边并建立超边数据与从节点的映射关系;
(4-11)跳转到步骤(4-5),直至所有的超边都遍历完一遍为止。
优选地,步骤(4-3)、(4-6)和(4-9)中K等分切的具体执行标准如下,其中Deg表示某超边的某一分类的度:
当Deg<K/2时,通过哈希生成一个节点号,然后将该分类的全部数据放入该节点上;
当K/2≤Deg<K时,将该分类数据进行冗余补全,使其冗余之后的Deg恰好为K,此时就可以等分成K份;
当Deg≥K时,直接将该分类数据等分成K份放入K个从节点上。
优选地,步骤(7)具体包括以下步骤:
(7-1)接收用户提交的查询任务Q;
(7-2)对查询任务Q进行初步的解析,生成原始的查询图G;
(7-3)根据建立的超边数据与从节点的映射关系,对查询图G进行分析,初步确定G中的每一个超边数据的节点分布,并生成超边数据的节点分布情况;
(7-4)根据节点分布情况来确定查询任务的每一分句的节点归属,由此生成每个从节点对应的子查询任务;
(7-5)对于每一个子查询任务,判断其是连通图还是非连通图,若为连通图则转到步骤(7-6),若不连通,则补全所有与该子查询任务的连接变量相关的语句,使之成为一个连通图,然后转入步骤(7-6);
(7-6)将各个子查询任务进行压缩,并将它们分发到相应的从节点上进行处理;
(7-7)各从节点接收相应的数据,对其进行解压,获取对应的子查询;
(7-8)各从节点利用本地的统计信息和索引文件生成该查询任务对应的查询计划,接着执行相应的查询任务,以生成投影变量数据。
优选地,步骤(8)具体包括以下步骤:
(8-1)确定需要进行交互的数据,即不同节点所拥有的公共变量所包含的ID段;
(8-2)比较不同节点待传输数据量的大小,选取数据量较小的节点作为发送方;
(8-3)将发送方的数据ID段按照连接变量进行分块,分块的标准是保证同一个块内的ID范围比较相近,不同块之间的ID范围则相隔渐远,这里假定分成了N块;
(8-4)设置计数器count=1;
(8-5)将第count个数据块转换成相应的位块,通过待传输的数据总量确定前后两个ID的差值阈值D0,这里的D0用来判别当前ID是归入当前位块还是下一个位块;
(8-6)获取一个新ID,计算新ID与上一个ID的差值,记为Di;若Di≤D0,则先在位块上填充Di-1个bit-0,然后再填充一个bit-1,修改delta为delta+Di;否则,一个位块形成,将delta值填入该位块,传输该位块,再重新生成一个位块,将该ID填入startID,并将delta置为1;
(8-7)接收方接收相应的位块;
(8-8)接收方解压相应的位块,获取原始ID段,并进行连接处理,与此同时发送方在压缩并传输下一个位块,即接收方在执行步骤(8-8)的时候,发送方在并发的执行步骤(8-5),形成流水线式的执行方式;
(8-9)设置计数器count=count+1;
(8-10)判断count是否大于N,若是则进入步骤(8-11),否则返回到步骤(8-5);
(8-11)收集并合并各个削减后的数据块,根据查询任务中的投影变量来生成本地的最终处理结果。
按照本发明的另一方面,提供了一种超大规模RDF图数据的划分与并行分布处理系统,包括:
第一模块,用于对原始的RDF图数据进行预处理,生成对应的哈希字典文件和整形三列表数据,并将整形三列表数据转换成关联矩阵M;
第二模块,用于建立关联矩阵M的超图模型,在该超图模型中,M的主语、谓词和宾语即为超边,与超边相关的数据即为超边数据;
第三模块,用于判断该RDF图数据是连通图还是非连通图,如果是连通图则转入第四模块,如果是非连通图,则将该非连通图划分为多个连通图,并对每一个连通图执行第四模块;
第四模块,用于基于超图模型,并发的广度遍历并等分放置路径上的超边数据,并将超边数据进行分类排序并等分成K份放入K个从节点上,其中K为正整数,同时建立超边数据与从节点的映射关系;
第五模块,用于对划分到每个从节点上的数据进行后续处理,去除冗余数据,生成相应的关联矩阵、统计信息和索引文件;
第六模块,用于各个从节点加载相应的关联矩阵、统计信息和索引文件到内存中,并等待主节点发送来的查询任务;
第七模块,用于主节点接收用户提交的查询任务,并将其分解为子查询任务,将子查询任务分发到对应的从节点上进行处理,最终生成投影变量数据;
第八模块,用于各从节点采用位块的方式对投影变量数据进行封装和压缩,并以流水线方式将封装和压缩后的数据进行传输和后续的连接处理;
第九模块,用于将各个从节点上的中间处理结果进行差值压缩,并将压缩后的结果发送回主节点;
第十模块,用于主节点接收来自各个从节点的压缩结果,对结果进行解压操作和最终的汇总处理,并把汇总结果返回给用户。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)划分速度快,划分质量高:由于采用了步骤(2)和步骤(4),通过并发的广度遍历和等分路径上的超边数据,在提升划分速度的同时保证了数据间关系的完整性,提高了划分质量;
(2)任务负载均衡性好:由于采用了步骤(4),通过将遍历路径上的超边数据等分到K个从节点上,使得各个从节点的数据分布均衡,进而保证各个从节点的任务负载均衡,不至于出现节点瓶颈;
(3)数据的查询处理速度快:由于采用了步骤(8),使用位块传输和并行半连接技术来减少节点间的数据通信,位块的传输和中间结果的连接处理以流水线的方式进行,进一步的加快数据的传输和查询处理速度。
附图说明
图1是本发明超大规模RDF图数据的划分与并行分布处理方法的流程图;
图2是本发明方法中步骤(4)的细化流程图;
图3是本发明方法中步骤(7)的细化流程图;
图4是本发明方法中步骤(8)的细化流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,本发明的超大规模RDF图数据的划分与并行分布处理方法包括以下步骤:
(1)对原始的RDF图数据进行预处理,生成对应的哈希字典文件和整形三列表数据,并将整形三列表数据转换成关联矩阵M;
(2)建立关联矩阵M的超图模型,在该超图模型中,M的主语(S)、谓词(P)和宾语(O)即为超边,与超边相关的数据即为超边数据;
(3)判断该RDF图数据是连通图还是非连通图,如果是连通图则转入步骤(4),如果是非连通图,则将该非连通图划分为多个连通图,并对每一个连通图执行步骤(4);
(4)基于超图模型,并发的广度遍历并等分放置路径上的超边数据,并将超边数据进行分类排序并等分成K份放入K个从节点上(K为正整数,且其取值大小是由用户基于RDF图数据的大小来设定),同时建立超边数据与从节点的映射关系。如图2所示,本步骤具体包括以下子步骤:
(4-1)获取超图模型中所有的谓词,选取度数最大的谓词作为遍历的起始点,并获得该谓词的超边数据;
(4-2)将该谓词的超边数据进行分类,即把同一宾语的超边数据归为一类,并按照每一类别的超边数量进行降序排序;
(4-3)将分类排序所获得的每一类别下的数据进行K等分切,然后放入K个从节点上;
(4-4)将该谓词标记为已访问,同时建立该谓词的超边数据与从节点的映射关系;
(4-5)从分类排序所获得的类别中得到一批新的超边(即主语),剔除已访问的超边,并获取每个主语对应的超边数据,将每一个主语的超边数据进行分类,即把同一谓词的超边数据归为一类,并按照每一类别的超边数量进行降序排序;
(4-6)并发的将分类排序所获得的每一类别下的数据进行K等分切,然后放入K个从节点上;
(4-7)标记已访问的超边并建立超边数据与从节点的映射关系;
(4-8)从分类排序所获得的类别中又得到一批新的超边(即宾语),剔除已访问的超边,并获取每个宾语对应的超边数据,将每一个宾语的超边数据进行分类,即把同一谓词的超边数据归为一类,并按照每一类别的超边数量进行降序排序;
(4-9)并发的将分类排序所获得的每一类别下的数据进行K等分切,然后放入K个从节点上;
(4-10)标记已访问的超边并建立超边数据与从节点的映射关系;
(4-11)跳转到步骤(4-5),直至所有的超边都遍历完一遍为止;
其中步骤(4-3)、(4-6)和(4-9)中提到的K等分切的具体执行标准如下(假定某超边的某一分类的度为Deg):
当Deg<K/2时,通过哈希生成一个节点号,然后将该分类的全部数据放入该节点上;
当K/2≤Deg<K时,将该分类数据进行冗余补全,使其冗余之后的Deg恰好为K,此时就可以等分成K份;
当Deg≥K时,直接将该分类数据等分成K份放入K个从节点上。
(5)对划分到每个从节点上的数据进行后续处理,去除冗余数据,生成相应的关联矩阵、统计信息和索引文件;
(6)各个从节点加载相应的关联矩阵、统计信息和索引文件到内存中,并等待主节点发送来的查询任务;
(7)主节点接收用户提交的查询任务,并将其分解为子查询任务,将子查询任务分发到对应的从节点上进行处理,最终生成投影变量数据。如图3所示,具体包括以下步骤:
(7-1)接收用户提交的查询任务Q;
(7-2)对查询任务Q进行初步的解析,生成原始的查询图G;
(7-3)根据建立的超边数据与从节点的映射关系,对查询图G进行分析,初步确定G中的每一个超边数据的节点分布,并生成超边数据的节点分布情况;
(7-4)根据节点分布情况来确定查询任务的每一分句的节点归属,由此生成每个从节点对应的子查询任务;
(7-5)对于每一个子查询任务,判断其是连通图还是非连通图,若为连通图则转到步骤(7-6),若不连通,则补全所有与该子查询任务的连接变量相关的语句,使之成为一个连通图;
(7-6)将各个子查询任务进行压缩,并将它们分发到相应的从节点上进行处理;
(7-7)各从节点接收相应的数据,对其进行解压,获取对应的子查询;
(7-8)各从节点利用本地的统计信息和索引文件生成该查询任务对应的查询计划,接着执行相应的查询任务,以生成投影变量数据;
(8)各从节点采用位块的方式对投影变量数据进行封装和压缩,并以流水线方式将封装和压缩后的数据进行传输和后续的连接处理。如图4所示,具体包括以下步骤(以节点Node1和Node2的交互为例):
(8-1)确定需要进行交互的数据,即Node1和Node2所拥有的公共变量所包含的ID段;
(8-2)比较Node1和Node2待传输数据量的大小,选取数据量较小的那个节点作为发送方;
(8-3)将发送方的数据ID段按照连接变量进行分块,分块的标准是保证同一个块内的ID范围比较相近,不同块之间的ID范围则相隔渐远,这里假定分成了N块;
(8-4)设置计数器count=1;
(8-5)将第count个数据块转换成相应的位块,通过待传输的数据总量确定前后两个ID的差值阈值D0,这里的D0用来判别当前ID是归入当前位块还是下一个位块,其中,位块的结构如下:
startID | delta | 1 | 0 | 1 | 0 | … | 1 | 1 |
结构中的bit-0代表对应的ID不存在,bit-1代表对应的ID存在,此外还需标志该位块所对应的起始ID和ID范围,这里我们以startID和delta表示;
(8-6)获取一个新ID,计算新ID与上一个ID的差值,记为Di;若Di≤D0,则先在位块上填充Di-1个bit-0,然后再填充一个bit-1,修改delta为delta+Di;否则,一个位块形成,将delta值填入该位块,传输该位块,再重新生成一个位块,将该ID填入startID,并将delta置为1;
(8-7)接收方接收相应的位块;
(8-8)接收方解压相应的位块,获取原始ID段,并进行连接处理,与此同时发送方在压缩并传输下一个位块,即接收方在执行步骤(8-8)的时候,发送方在并发的执行步骤(8-5),形成流水线式的执行方式;
(8-9)设置count=count+1;
(8-10)判断count是否大于N,若是则进入步骤(8-11),否则返回到步骤(8-5);
(8-11)收集并合并各个削减后的数据块,根据查询任务中的投影变量来生成本地的最终处理结果;
(9)将各个从节点上的中间处理结果进行差值压缩,并将压缩后的结果发送回主节点;
(10)主节点接收来自各个从节点的压缩结果,对结果进行解压操作和最终的汇总处理,并把汇总结果返回给用户。
本发明的优点在于:
(1)划分速度快,划分质量高:由于采用了步骤(2)和步骤(4),通过并发的广度遍历和等分路径上的超边数据,在提升划分速度的同时保证了数据间关系的完整性,提高了划分质量;
(2)任务负载均衡性好:由于采用了步骤(4),通过将遍历路径上的超边数据等分到K个从节点上,使得各个从节点的数据分布均衡,进而保证各个从节点的任务负载均衡,不至于出现节点瓶颈;
(3)数据的查询处理速度快:由于采用了步骤(8),使用位块传输和并行半连接技术来减少节点间的数据通信,位块的传输和中间结果的连接处理以流水线的方式进行,进一步的加快数据的传输和查询处理速度。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种超大规模RDF图数据的划分与并行分布处理方法,其特征在于,包括以下步骤:
(1)对原始的RDF图数据进行预处理,生成对应的哈希字典文件和整形三列表数据,并将整形三列表数据转换成关联矩阵M;
(2)建立关联矩阵M的超图模型,在该超图模型中,M的主语、谓词和宾语即为超边,与超边相关的数据即为超边数据;
(3)判断该RDF图数据是连通图还是非连通图,如果是连通图则转入步骤(4),如果是非连通图,则将该非连通图划分为多个连通图,并对每一个连通图执行步骤(4);
(4)基于超图模型,并发的广度遍历并等分放置路径上的超边数据,并将超边数据进行分类排序并等分成K份放入K个从节点上,其中K为正整数,同时建立超边数据与从节点的映射关系;
(5)对划分到每个从节点上的数据进行后续处理,去除冗余数据,生成相应的关联矩阵、统计信息和索引文件;
(6)各个从节点加载相应的关联矩阵、统计信息和索引文件到内存中,并等待主节点发送来的查询任务;
(7)主节点接收用户提交的查询任务,并将其分解为子查询任务,将子查询任务分发到对应的从节点上进行处理,最终生成投影变量数据;
(8)各从节点采用位块的方式对投影变量数据进行封装和压缩,并以流水线方式将封装和压缩后的数据进行传输和后续的连接处理;
(9)将各个从节点上的中间处理结果进行差值压缩,并将压缩后的结果发送回主节点;
(10)主节点接收来自各个从节点的压缩结果,对结果进行解压操作和最终的汇总处理,并把汇总结果返回给用户。
2.根据权利要求1所述的划分与并行分布处理方法,其特征在于,步骤(4)包括以下子步骤:
(4-1)获取超图模型中所有的谓词,选取度数最大的谓词作为遍历的起始点,并获得该谓词的超边数据;
(4-2)将该谓词的超边数据进行分类,并按照每一类别的超边数量进行降序排序;
(4-3)将分类排序所获得的每一类别下的数据进行K等分切,然后放入K个从节点上;
(4-4)将该谓词标记为已访问,同时建立该谓词的超边数据与从节点的映射关系;
(4-5)从分类排序所获得的类别中得到一批新的超边,剔除已访问的超边,并获取每个主语对应的超边数据,将每一个主语的超边数据进行分类,并按照每一类别的超边数量进行降序排序;
(4-6)并发的将分类排序所获得的每一类别下的数据进行K等分切,然后放入K个从节点上;
(4-7)标记已访问的超边并建立超边数据与从节点的映射关系;
(4-8)从分类排序所获得的类别中又得到一批新的超边,剔除已访问的超边,并获取每个宾语对应的超边数据,将每一个宾语的超边数据进行分类,并按照每一类别的超边数量进行降序排序;
(4-9)并发的将分类排序所获得的每一类别下的数据进行K等分切,然后放入K个从节点上;
(4-10)标记已访问的超边并建立超边数据与从节点的映射关系;
(4-11)跳转到步骤(4-5),直至所有的超边都遍历完一遍为止。
3.根据权利要求2所述的划分与并行分布处理方法,其特征在于,步骤(4-3)、(4-6)和(4-9)中K等分切的具体执行标准如下,其中Deg表示某超边的某一分类的度:
当Deg<K/2时,通过哈希生成一个节点号,然后将该分类的全部数据放入该节点上;
当K/2≤Deg<K时,将该分类数据进行冗余补全,使其冗余之后的Deg恰好为K,此时就可以等分成K份;
当Deg≥K时,直接将该分类数据等分成K份放入K个从节点上。
4.根据权利要求1所述的划分与并行分布处理方法,其特征在于,步骤(7)具体包括以下步骤:
(7-1)接收用户提交的查询任务Q;
(7-2)对查询任务Q进行初步的解析,生成原始的查询图G;
(7-3)根据建立的超边数据与从节点的映射关系,对查询图G进行分析,初步确定G中的每一个超边数据的节点分布,并生成超边数据的节点分布情况;
(7-4)根据节点分布情况来确定查询任务的每一分句的节点归属,由此生成每个从节点对应的子查询任务;
(7-5)对于每一个子查询任务,判断其是连通图还是非连通图,若为连通图则转到步骤(7-6),若不连通,则补全所有与该子查询任务的连接变量相关的语句,使之成为一个连通图,然后转入步骤(7-6);
(7-6)将各个子查询任务进行压缩,并将它们分发到相应的从节点上进行处理;
(7-7)各从节点接收相应的数据,对其进行解压,获取对应的子查询;
(7-8)各从节点利用本地的统计信息和索引文件生成该查询任务对应的查询计划,接着执行相应的查询任务,以生成投影变量数据。
5.根据权利要求1所述的划分与并行分布处理方法,其特征在于,步骤(8)具体包括以下步骤:
(8-1)确定需要进行交互的数据,即不同节点所拥有的公共变量所包含的ID段;
(8-2)比较不同节点待传输数据量的大小,选取数据量较小的节点作为发送方;
(8-3)将发送方的数据ID段按照连接变量进行分块,分块的标准是保证同一个块内的ID范围比较相近,不同块之间的ID范围则相隔渐远,这里假定分成了N块;
(8-4)设置计数器count=1;
(8-5)将第count个数据块转换成相应的位块,通过待传输的数据总量确定前后两个ID的差值阈值D0,这里的D0用来判别当前ID是归入当前位块还是下一个位块;
(8-6)获取一个新ID,计算新ID与上一个ID的差值,记为Di;若Di≤D0,则先在位块上填充Di-1个bit-0,然后再填充一个bit-1,修改delta为delta+Di;否则,一个位块形成,将delta值填入该位块,传输该位块,再重新生成一个位块,将该ID填入startID,并将delta置为1;
(8-7)接收方接收相应的位块;
(8-8)接收方解压相应的位块,获取原始ID段,并进行连接处理,与此同时发送方在压缩并传输下一个位块,即接收方在执行步骤(8-8)的时候,发送方在并发的执行步骤(8-5),形成流水线式的执行方式;
(8-9)设置计数器count=count+1;
(8-10)判断count是否大于N,若是则进入步骤(8-11),否则返回到步骤(8-5);
(8-11)收集并合并各个削减后的数据块,根据查询任务中的投影变量来生成本地的最终处理结果。
6.一种超大规模RDF图数据的划分与并行分布处理系统,其特征在于,包括:
第一模块,用于对原始的RDF图数据进行预处理,生成对应的哈希字典文件和整形三列表数据,并将整形三列表数据转换成关联矩阵M;
第二模块,用于建立关联矩阵M的超图模型,在该超图模型中,M的主语、谓词和宾语即为超边,与超边相关的数据即为超边数据;
第三模块,用于判断该RDF图数据是连通图还是非连通图,如果是连通图则转入第四模块,如果是非连通图,则将该非连通图划分为多个连通图,并对每一个连通图执行第四模块;
第四模块,用于基于超图模型,并发的广度遍历并等分放置路径上的超边数据,并将超边数据进行分类排序并等分成K份放入K个从节点上,其中K为正整数,同时建立超边数据与从节点的映射关系;
第五模块,用于对划分到每个从节点上的数据进行后续处理,去除冗余数据,生成相应的关联矩阵、统计信息和索引文件;
第六模块,用于各个从节点加载相应的关联矩阵、统计信息和索引文件到内存中,并等待主节点发送来的查询任务;
第七模块,用于主节点接收用户提交的查询任务,并将其分解为子查询任务,将子查询任务分发到对应的从节点上进行处理,最终生成投影变量数据;
第八模块,用于各从节点采用位块的方式对投影变量数据进行封装和压缩,并以流水线方式将封装和压缩后的数据进行传输和后续的连接处理;
第九模块,用于将各个从节点上的中间处理结果进行差值压缩,并将压缩后的结果发送回主节点;
第十模块,用于主节点接收来自各个从节点的压缩结果,对结果进行解压操作和最终的汇总处理,并把汇总结果返回给用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510157833.3A CN104809168B (zh) | 2015-04-06 | 2015-04-06 | 超大规模rdf图数据的划分与并行分布处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510157833.3A CN104809168B (zh) | 2015-04-06 | 2015-04-06 | 超大规模rdf图数据的划分与并行分布处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104809168A true CN104809168A (zh) | 2015-07-29 |
CN104809168B CN104809168B (zh) | 2017-12-29 |
Family
ID=53693990
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510157833.3A Active CN104809168B (zh) | 2015-04-06 | 2015-04-06 | 超大规模rdf图数据的划分与并行分布处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104809168B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105117488A (zh) * | 2015-09-19 | 2015-12-02 | 大连理工大学 | 一种基于混合层次聚类的rdf数据平衡分割算法 |
CN105912404A (zh) * | 2016-04-27 | 2016-08-31 | 华中科技大学 | 一种基于磁盘的大规模图数据中寻找强连通分量的方法 |
CN106095951A (zh) * | 2016-06-13 | 2016-11-09 | 哈尔滨工程大学 | 基于负载均衡和查询日志的数据空间多维索引方法 |
CN106294548A (zh) * | 2016-07-25 | 2017-01-04 | 华中科技大学 | 一种溯源数据的压缩方法及系统 |
CN106709006A (zh) * | 2016-12-23 | 2017-05-24 | 武汉科技大学 | 一种对查询友好的关联数据压缩方法 |
CN107193899A (zh) * | 2017-05-10 | 2017-09-22 | 华中科技大学 | 一种图算法友善的强连通图划分方法 |
CN109040214A (zh) * | 2018-07-25 | 2018-12-18 | 北京邮电大学 | 一种云环境下可靠性增强的服务部署方法 |
CN109063191A (zh) * | 2018-08-29 | 2018-12-21 | 上海交通大学 | 在rdf数据集上进行optional查询的方法及存储介质 |
CN111400555A (zh) * | 2020-03-05 | 2020-07-10 | 湖南大学 | 图数据查询任务处理方法、装置、计算机设备和存储介质 |
CN112711659A (zh) * | 2020-12-31 | 2021-04-27 | 南京冰鉴信息科技有限公司 | 基于海量图数据的模型计算方法及装置 |
CN113468275A (zh) * | 2021-07-28 | 2021-10-01 | 浙江大华技术股份有限公司 | 图数据库的数据导入方法和装置、存储介质及电子设备 |
CN115658975A (zh) * | 2022-10-27 | 2023-01-31 | 西安邮电大学 | 用于实现负载均衡的图数据划分方法 |
WO2024110016A1 (en) * | 2022-11-22 | 2024-05-30 | Huawei Technologies Co., Ltd. | Devices and methods for generating a query plan based on a sql query |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103116625A (zh) * | 2013-01-31 | 2013-05-22 | 重庆大学 | 一种基于Hadoop的海量RDF数据分布式查询处理方法 |
CN103778251A (zh) * | 2014-02-19 | 2014-05-07 | 天津大学 | 面向大规模rdf图数据的sparql并行查询方法 |
US20140304251A1 (en) * | 2013-04-03 | 2014-10-09 | International Business Machines Corporation | Method and Apparatus for Optimizing the Evaluation of Semantic Web Queries |
US20140310260A1 (en) * | 2013-04-12 | 2014-10-16 | Oracle International Corporation | Using persistent data samples and query-time statistics for query optimization |
US20150052175A1 (en) * | 2013-08-14 | 2015-02-19 | International Business Machines Corporation | Method and Apparatus for Identifying the Optimal Schema to Store Graph Data in a Relational Store |
CN104462609A (zh) * | 2015-01-06 | 2015-03-25 | 福州大学 | 结合星型图编码的rdf数据存储与查询方法 |
-
2015
- 2015-04-06 CN CN201510157833.3A patent/CN104809168B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103116625A (zh) * | 2013-01-31 | 2013-05-22 | 重庆大学 | 一种基于Hadoop的海量RDF数据分布式查询处理方法 |
US20140304251A1 (en) * | 2013-04-03 | 2014-10-09 | International Business Machines Corporation | Method and Apparatus for Optimizing the Evaluation of Semantic Web Queries |
US20140310260A1 (en) * | 2013-04-12 | 2014-10-16 | Oracle International Corporation | Using persistent data samples and query-time statistics for query optimization |
US20150052175A1 (en) * | 2013-08-14 | 2015-02-19 | International Business Machines Corporation | Method and Apparatus for Identifying the Optimal Schema to Store Graph Data in a Relational Store |
CN103778251A (zh) * | 2014-02-19 | 2014-05-07 | 天津大学 | 面向大规模rdf图数据的sparql并行查询方法 |
CN104462609A (zh) * | 2015-01-06 | 2015-03-25 | 福州大学 | 结合星型图编码的rdf数据存储与查询方法 |
Non-Patent Citations (1)
Title |
---|
袁平鹏等: "高可扩展的RDF数据存储系统", 《计算机研究与发展》 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105117488A (zh) * | 2015-09-19 | 2015-12-02 | 大连理工大学 | 一种基于混合层次聚类的rdf数据平衡分割算法 |
CN105117488B (zh) * | 2015-09-19 | 2018-07-06 | 大连理工大学 | 一种基于混合层次聚类的分布式存储rdf数据平衡分割方法 |
CN105912404B (zh) * | 2016-04-27 | 2019-03-08 | 华中科技大学 | 一种基于磁盘的大规模图数据中寻找强连通分量的方法 |
CN105912404A (zh) * | 2016-04-27 | 2016-08-31 | 华中科技大学 | 一种基于磁盘的大规模图数据中寻找强连通分量的方法 |
CN106095951A (zh) * | 2016-06-13 | 2016-11-09 | 哈尔滨工程大学 | 基于负载均衡和查询日志的数据空间多维索引方法 |
CN106095951B (zh) * | 2016-06-13 | 2019-04-23 | 哈尔滨工程大学 | 基于负载均衡和查询日志的数据空间多维索引方法 |
CN106294548A (zh) * | 2016-07-25 | 2017-01-04 | 华中科技大学 | 一种溯源数据的压缩方法及系统 |
CN106709006A (zh) * | 2016-12-23 | 2017-05-24 | 武汉科技大学 | 一种对查询友好的关联数据压缩方法 |
CN107193899A (zh) * | 2017-05-10 | 2017-09-22 | 华中科技大学 | 一种图算法友善的强连通图划分方法 |
CN107193899B (zh) * | 2017-05-10 | 2019-09-13 | 华中科技大学 | 一种图算法友善的强连通图划分方法 |
CN109040214A (zh) * | 2018-07-25 | 2018-12-18 | 北京邮电大学 | 一种云环境下可靠性增强的服务部署方法 |
CN109040214B (zh) * | 2018-07-25 | 2020-07-17 | 北京邮电大学 | 一种云环境下可靠性增强的服务部署方法 |
CN109063191A (zh) * | 2018-08-29 | 2018-12-21 | 上海交通大学 | 在rdf数据集上进行optional查询的方法及存储介质 |
CN109063191B (zh) * | 2018-08-29 | 2021-07-06 | 上海交通大学 | 在rdf数据集上进行optional查询的方法及存储介质 |
CN111400555A (zh) * | 2020-03-05 | 2020-07-10 | 湖南大学 | 图数据查询任务处理方法、装置、计算机设备和存储介质 |
CN111400555B (zh) * | 2020-03-05 | 2023-09-26 | 湖南大学 | 图数据查询任务处理方法、装置、计算机设备和存储介质 |
CN112711659A (zh) * | 2020-12-31 | 2021-04-27 | 南京冰鉴信息科技有限公司 | 基于海量图数据的模型计算方法及装置 |
CN112711659B (zh) * | 2020-12-31 | 2024-03-15 | 南京冰鉴信息科技有限公司 | 基于海量图数据的模型计算方法及装置 |
CN113468275A (zh) * | 2021-07-28 | 2021-10-01 | 浙江大华技术股份有限公司 | 图数据库的数据导入方法和装置、存储介质及电子设备 |
CN115658975A (zh) * | 2022-10-27 | 2023-01-31 | 西安邮电大学 | 用于实现负载均衡的图数据划分方法 |
WO2024110016A1 (en) * | 2022-11-22 | 2024-05-30 | Huawei Technologies Co., Ltd. | Devices and methods for generating a query plan based on a sql query |
Also Published As
Publication number | Publication date |
---|---|
CN104809168B (zh) | 2017-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104809168A (zh) | 超大规模rdf图数据的划分与并行分布处理方法 | |
CN111177148B (zh) | 一种水电数据库自动建表分表的方法 | |
CN103064875B (zh) | 一种服务化空间数据分布式查询方法 | |
CN104504154B (zh) | 一种数据聚合查询的方法及装置 | |
CN104408159B (zh) | 一种数据关联、加载、查询方法及装置 | |
CN103778251B (zh) | 面向大规模rdf图数据的sparql并行查询方法 | |
CN104809130A (zh) | 数据查询的方法、设备及系统 | |
CN104424018A (zh) | 分布式计算事务处理方法及装置 | |
CN106161633A (zh) | 一种基于云计算环境下打包文件的传输方法及系统 | |
CN101739398A (zh) | 分布式数据库多连接查询优化算法 | |
WO2014117295A1 (en) | Performing an index operation in a mapreduce environment | |
CN104361031A (zh) | 一种政务大数据预处理系统及处理方法 | |
CN105446952B (zh) | 用于处理语义片段的方法和系统 | |
CN108170535A (zh) | 一种基于MapReduce模型的提升表连接效率的方法 | |
CN115934097A (zh) | 生成可执行语句的方法、装置、存储介质及电子装置 | |
CN104281636B (zh) | 海量报表数据并发分布式处理方法 | |
JP7109572B2 (ja) | トランザクション処理の方法およびサーバー、ならびにトランザクション処理のシステム | |
KR102172138B1 (ko) | 분산 컴퓨팅 프레임워크 및 분산 컴퓨팅 방법 | |
CN105282045B (zh) | 一种基于一致性哈希算法的分布式计算和储存方法 | |
CN112182031B (zh) | 数据查询方法及装置、存储介质、电子装置 | |
CN104239537A (zh) | 一种大数据预处理文本数据生成处理流程实现方法 | |
WO2022268089A1 (zh) | 一种数据处理方法、系统及相关设备 | |
CN116401277A (zh) | 数据处理方法、装置、系统、设备及介质 | |
CN104090895B (zh) | 获取基数的方法、装置、服务器及系统 | |
CN113239039B (zh) | 动态数据的存储方法、查询方法、管理方法及管理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |