基于垂直划分模式的分布并行Skyline查询方法技术

技术编号:7071215 阅读:344 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于垂直划分模式的分布并行Skyline查询方法,目的是提出一种新的Skyline查询方法,充分开发Skyline查询处理的并行性,提高效率。技术方案是先构建由一个协调节点和N个计算节点组成的分布并行计算环境,协调节点上安装有任务调度程序和结果分析处理程序,计算节点上安装有查询处理程序;协调节点执行任务调度程序,向各计算节点分发Skyline查询处理任务;各计算节点执行查询处理程序,接收来自协调节点的Skyline查询处理任务,并行进行Skyline查询处理;协调节点执行结果分析处理程序收集所有计算节点的Skyline集合LS,并对其进行Skyline查询处理,得到最终的Skyline查询结果。采用本发明专利技术可有效保证计算节点之间的负载均衡,既保证Skyline查询结果的正确性又提高查询效率。

【技术实现步骤摘要】

本专利技术涉及Skyline查询的分布并行处理方法,尤其是基于数据垂直划分模式的高效分布并行Skyline查询方法。
技术介绍
Skyline查询是海量数据管理领域亟待解决的核心问题之一。Skyline查询是指从给定的一个D维的数据对象集合S中选择一个子集,该子集中的任意一个数据对象都不能被S中的任意一个其他数据对象所控制。所谓控制关系是指在D维的数据对象集合S中, 如果数据对象P至少在某一维度上优于另一个数据对象q,而且数据对象P在其他维度上都不比数据对象q差(P优于或等于q),那么数据对象P能够控制数据对象q。Skyline查询是目前解决多目标优化问题的典型方法之一,Skyline查询已经成为数据分析和信息提取的重要技术手段,在城市导航、市场分析、环境监控等诸多领域都有着重要应用。近年来,随着计算机技术、网络技术和通信技术的快速发展,人们获取、存储和传递数据的能力日益增强,数据的规模急剧膨胀,“大数据”作为信息爆炸的产物应运而生。随着数据集规模的不断增大,Skyline查询的数据处理变得更加复杂,对存储资源和计算资源的需求也急剧增长,Skyline查询的处理效率逐渐成为影响数据分析和信息提取效果的关键因素。随着集群计算、网格计算、对等计算、云计算等网络计算模式的不断发展,分布并行计算技术已经日趋成熟,并逐渐成为提高海量数据处理效率的有效技术途径之一。分布并行计算将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算能力、存储空间和各种软件服务。将分布并行计算技术与海量数据的Skyline查询相结合,可以通过开发查询计算的并行性来提高查询处理效率。目前,数据分布的模式主要包括水平划分模式和垂直划分模式。水平划分模式是指数据分布在多个节点上,每个节点存储的数据是整个数据集的一部分,且各节点存储的数据是覆盖全部维度的完整的数据对象。垂直划分模式是指数据分布在多个节点上,每个节点存储的数据是整个数据集的一部分,且各节点存储的数据是所有数据对象在一个或者多个维度上的所有数据,而不是完整的数据对象。现有的基于垂直划分模式的分布并行 Skyline 查询方法(W. -T. Balke, U. Giintzer, J. Zheng. Efficient Distributed Skylining for Web Information Systems. In Proc of the Int. Conf. on Extending Database Technology (EDBT,04),Heraklion, Crete, Greece, 2004, 256-273.)将不同维度的数据分布存储在各计算节点上,各计算节点负责对各自存储的维度数据进行排序,然后统一发送给协调节点,协调节点负责基于各计算节点的排序结果进行Skyline查询处理。由此可见, 大量的查询处理任务主要集中在协调节点,Skyline查询处理的并行性没有得到充分开发, 计算节点的数据处理能力没有得到充分利用,从而导致分布并行Skyline查询方法的处理效率十分有限,难以充分满足海量数据分析和信息提取的实际需求。因此,如何针对海量数据及其Skyline查询的本质特点,结合分布并行计算环境的资源特点,设计基于垂直划分模式的高效分布并行Skyline查询方法,保证Skyline查询处理的效率和查询结果的正确性,已经成为并行与分布处理领域的热点研究问题。
技术实现思路
本专利技术要解决的技术问题是针对现有的基于垂直划分模式的分布并行Skyline 查询方法处理效率不高的问题,提出一种,充分开发Skyline查询处理的并行性,在保证查询结果的正确性的前提下,显著提高 Skyline查询处理的效率。本专利技术技术方案包括以下步骤第一步,构建一个分布并行计算环境,它由多个节点构成,每个节点都是一台可独立运行的计算机,各节点通过网络设备互连。分布并行计算环境中的节点分为两类协调节点和计算节点。分布并行计算环境包括一个协调节点,协调节点负责存储原始数据集中的所有数据对象的编号,负责与用户交互,接收用户提交的查询请求,向各计算节点分发查询处理任务和收集查询处理结果,并向用户返回查询结果。分布并行计算环境包括N个计算节点(N是原始数据集中数据对象的维度数目,N为正整数),每个计算节点负责存储原始数据集的一个维度上的所有数据, 计算节点执行查询处理任务,并向协调节点返回查询处理结果。协调节点和计算节点上均安装有操作系统、TCP/IP协议软件,配置了网络环境。协调节点上安装有任务调度程序和结果分析处理程序。任务调度程序接收用户提交的Skyline查询请求,向各计算节点分发Skyline查询处理任务。结果分析处理程序负责收集计算节点的Skyline查询处理结果,并对收集到的所有计算节点的Skyline查询处理结果再进行Skyline查询处理以得到最终的Skyline查询结果。计算节点上安装有查询处理程序。查询处理程序负责接收来自协调节点的Skyline查询请求,并对计算节点上存储的原始数据集进行Skyline查询处理。第二步,协调节点执行任务调度程序,向各计算节点分发Skyline查询处理任务;各计算节点执行查询处理程序,接收来自协调节点的Skyline查询处理任务,并行进行 Skyline查询处理。2. 1协调节点的任务调度程序接收用户提交的Skyline查询请求;2. 2协调节点的任务调度程序向所有计算节点分发Skyline查询处理任务。具体步骤如下2. 2. 1任务调度程序根据计算节点的数目N将原始数据集的所有M个数据对象编号(M为数据对象编号总数,M为正整数)分成大小均等的N个数据对象编号集合,每个数据对象编号集合包括个或者(+l)个数据对象编号,表示不超过M/N的最大整数;2. 2. 2任务调度程序向所有计算节点分发Skyline查询请求,并向每个计算节点分发一个数据对象编号集合。2. 3每个计算节点的查询处理程序接收来自协调节点的Skyline查询处理任务, 根据接收的Skyline查询请求对各自负责的数据对象集合(即收到的数据对象编号集合对应的数据对象构成的集合)进行Skyline查询处理,具体步骤如下2. 3. 1查询处理程序接收来自协调节点的Skyline查询请求和数据对象编号集合;2. 3. 2查询处理程序初始化查询处理结果集合简称Skyline集合LS=0;2. 3. 3查询处理程序从其他计算节点获取计算节点负责的数据对象集合中所有数据对象的全部维度数据,组成本地(即该查询处理程序所属计算节点)原始数据集Set ;2. 3. 4查询处理程序对本地原始数据集Set中的所有数据对象逐一进行数据对象之间的控制关系判断,将不被kt中任意一个其他数据对象所控制的数据对象放到 Skyline集合LS中,即,判断本地原始数据集Set中的每个数据对象DO与Set中的所有其他数据对象之间的控制关系,如果DO不被Set中任意一个其他数据对象所控制,则将DO放入计算节点的 Skyline 集合 LS 中,即,LS = LS+ {DO};2. 3. 5查询处理程序将Skyline集合LS返回给协调节点。第三步,协调节点的结果分析处理程序收集所有计算节点的本文档来自技高网
...

【技术保护点】
1.一种基于垂直划分模式的分布并行Skyline查询方法,其特征在于包括以下步骤:第一步,构建一个分布并行计算环境,它由多个节点构成,每个节点都是一台可独立运行的计算机,各节点通过网络设备互连;节点包括一个协调节点和N个计算节点,N是原始数据集中数据对象的维度数目,N为正整数;协调节点负责存储原始数据集中的所有数据对象的编号,负责与用户交互,接收用户提交的查询请求,向各计算节点分发查询处理任务和收集查询处理结果,并向用户返回查询结果;每个计算节点存储原始数据集的一个维度上的所有数据,计算节点执行查询处理任务,并向协调节点返回查询处理结果;协调节点和计算节点上均安装有操作系统、TCP/IP协议软件,配置了网络环境;协调节点上安装有任务调度程序和结果分析处理程序,任务调度程序接收用户提交的Skyline查询请求,向各计算节点分发Skyline查询处理任务,结果分析处理程序负责收集计算节点的Skyline查询处理结果,并对收集到的所有计算节点的Skyline查询处理结果再进行Skyline查询处理以得到最终的Skyline查询结果;计算节点上安装有查询处理程序,查询处理程序负责接收来自协调节点的Skyline查询请求,并对计算节点上存储的原始数据集进行Skyline查询处理;第二步,协调节点执行任务调度程序,向各计算节点分发Skyline查询处理任务;各计算节点执行查询处理程序,接收来自协调节点的Skyline查询处理任务,并行进行Skyline查询处理:2.1协调节点的任务调度程序接收用户提交的Skyline查询请求;2.2协调节点的任务调度程序向所有计算节点分发Skyline查询处理任务,具体步骤如下:2.2.1任务调度程序根据计算节点的数目N将原始数据集的所有M个数据对象编号分成大小均等的N个数据对象编号集合,每个数据对象编号集合包括[M/N]个或者[M/N]+1个数据对象编号,M为数据对象编号总数,M为正整数,[M/N]表示不超过M/N的最大整数;2.2.2任务调度程序向所有计算节点分发Skyline查询请求,并向每个计算节点分发一个数据对象编号集合;2.3每个计算节点的查询处理程序接收来自协调节点的Skyline查询处理任务,根据接收的Skyline查询请求对收到的数据对象编号集合对应的数据对象构成的集合进行Skyline查询处理,具体步骤如下:2.3.1查询处理程序接收来自协调节点的Skyline查询请求和数据对象编号集合;2.3.2查询处理程序初始化查询处理结果集合简称Skyline集合2.3.3查询处理程序从其他计算节点获取计算节点负责的数据对象集合中所有数据对象的全部维度数据,组成本地原始数据集Set;2.3.4查询处理程序对本地原始数据集合Set中的所有数据对象逐一进行数据对象之间的控制关系判断,将不被Set中任意一个其他数据对象所控制的数据对象放到Skyline集合LS中,即,判断本地原始数据集Set中的每个数据对象DO与Set中的所有其他数据对象之间的控制关系,如果DO不被Set中任意一个其他数据对象所控制,则将DO放入计算节点的Skyline集合LS中,即,LS=LS+{DO};2.3.5查询处理程序将Skyline集合LS返回给协调节点。第三步,协调节点的结果分析处理程序收集所有计算节点的Skyline集合LS,并对其进行Skyline查询处理,得到最终的Skyline查询结果:3.1结果分析处理程序收集所有计算节点的Skyline集合LS;3.2结果分析处理程序合并所有计算节点的Skyline集合LS,得到新数据集NS;3.3初始化协调节点的Skyline集合3.4结果分析处理程序对NS进行Skyline查询处理,即,判断NS中的每个数据对象N_DO与NS中所有其他数据对象之间的控制关系,如果N_DO不被NS中任意一个其他数据对象所控制,那么将N_DO放入协调节点的Skyline集合GS中,即,GS=GS+{N_DO};3.5结果分析处理程序将Skyline集合GS返回给用户。...

【技术特征摘要】

【专利技术属性】
技术研发人员:王意洁王媛邓瑞鹏裴晓强李小勇孙伟东马行空
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:43

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

1