[发明专利]基于MapReduce的XML数据查询方法和系统有效

专利信息
申请号: 201510391100.6 申请日: 2015-07-03
公开(公告)号: CN105005606B 公开(公告)日: 2018-06-29
发明(设计)人: 李东;邓泽航;李祖立 申请(专利权)人: 华南理工大学
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 广州市华学知识产权代理有限公司 44245 代理人: 罗观祥
地址: 510006 广东省*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 查询 查询计划树 层次编码 区间编码 解析 查询结果返回 服务器接收 查询处理 查询结果 查询请求 查询语句 代价估算 结构连接 可伸缩性 输出文件 输入文件 结果集 客户端 服务器 估算 客户
【权利要求书】:

1.一种基于MapReduce的XML数据查询方法,其特征在于,步骤如下:

步骤101、服务器接收客户端的XPath查询请求;

步骤102、服务器接收到XPath查询请求后,查看待查询XML文档是否已进行区间编码;

若否,则进入步骤103;

若是,则进入步骤104;

步骤103、对待查询XML文档进行区间编码,然后进入步骤104;

步骤104、服务器查看待查询XML文档是否已进行层次编码;

若否,则进入步骤105;

若是,则进入步骤106;

步骤105、对待查询XML文档进行层次编码,然后进入步骤106;

步骤106、服务器将XPath查询请求中的查询语句发送至Hadoop集群进行解析,提取出查询语句中出现的标签名、连接符号和谓词结构,并且作为解析结果保存到解析类中;

步骤107、逐步增加查询语句出现的连接结构生成查询计划树,对查询计划树的结构连接结果进行估算;

步骤108、对MapReduce作业建立代价模型,根据代价模型对查询计划树的执行代价估算;

步骤109、根据查询计划树的执行代价估算值,找出最优查询计划树;

步骤110、根据步骤109求出的最优查询计划树,解析出MapReduce作业的输入文件,然后启动MapReduce查询作业;

步骤111、执行MapReduce查询作业;

步骤112、将MapReduce作业输出文件构造成XML数据结果集作为查询结果,并且返回给服务器;

步骤113、服务器根据XML数据结果集将XML数据查询结果返回给客户端;

所述步骤108中,对查询计划树的执行代价估算时考虑三个因素:I/O开销、CPU的开销和网络传输的开销;

步骤108中,对MapReduce作业建立代价模型过程中,包括对Map过程中的两种操作分别建立代价模型和对Shuffle和Reduce阶段建立代价模型;

Map过程中的两种操作分别为不进行连接操作的Map阶段和进行连接操作的Map阶段;

不进行连接操作的Map阶段建立的代价模型为:

RC=NUM(Ii)*SIZE*Crh;

PC=NUM(Ii)*Cm;

WC=NUM(Ii)*Cwl*SIZE;

其中RC为从HDFS上读取输入文件的代价,PC为数据集进行分区输出的CPU代价,WC为Map数据输出到本地文件的代价;其中NUM(Ii)表示的是数据集Ii的数目,SIZE为一个节点编码的数据大小,Cm为读取本地磁盘一个数据的代价,Cwl为写到本地磁盘上一个数据的代价;Crh为读取HDFS上一个数据的代价;

路径Path(i,i)在不进行连接操作的Map阶段的代价CMi为:

进行连接操作的Map阶段的建立的代价模型为:

RAC=NUM(Ii-1)*SIZE*Crh;

PPC=R(Ii-1,Ii)*Cm;

WPC=R(Ii-1,Ii)*Cwl*2*SIZE;

其中RAC为在HDFS读取祖先节点数据集的代价,PPC对连接结果数据集进行分区输出的CPU代价,WPC为结果数据集输出节点到本地磁盘的代价;NUM(Ii-1)表示的是数据集Ii-1的数目;R(Ii-1,Ii)表示数据集Ii-1和数据集Ii连接结果数据集;

路径Path(j-1,j)在进行连接操作的Map阶段的代价CM(j-1,j)为:

Path(x1,x2)为指x1节点到x2节点组成的路径表达式,当x1=x2时,代表Path(x1,x2)为一个节点名称,当x1<x2时,路径Path(x1,x2)为长路径,当x1=x2-1时,Path(x1,x2)表示一个二元连接结构;Path(i,i)对应的节点数据集为Ii;Path(j-1,j)表示的是j-1节点到j节点组成的路径表达式;

Shuffle和Reduce阶段建立的代价模型为:

CR=Cshuffle(RI)+Crjoin(RI)+NUM(RO)*Cwh;

其中Cshuffle(RI)代表从Map获取输出文件到Reduce输入的整个shuffle过程的全部代价;Crjoin(RI)代表对Reduce端对集合RI进行连接的CPU代价;NUM(RO)*Cwh代表的是Reduce的输出代价;

一个查询的MapReduce作业的全部代价计算公式如下:

Cost(Job)=(∑CMi+∑CM(j-1,j))/K+CR;

Job表示一个MapReduce作业,∑CMi是查询计划树中Map阶段不进行连接操作的数据集的执行代价总和,∑CM(j-1,j)是查询计划树中Map阶段进行连接操作的数据集的执行代价总和;其中K=min(N,M),其中N为查询计划的Map任务数,M为集群最大的并行Map任务数。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学,未经华南理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201510391100.6/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top