[发明专利]基于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任务数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学,未经华南理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510391100.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种专辑分类方法和装置
- 下一篇:连拍照片的处理方法