数据聚合查询方法及装置制造方法及图纸

技术编号:12329946 阅读:84 留言:0更新日期:2015-11-16 00:43
本发明专利技术适用于大规模数据处理技术领域,尤其涉及数据聚合查询方法及装置。该方法包括:当接收到针对数据库集群的查询请求时,确定查询请求对应的哈希表,确定哈希表对应的多个分区表,并生成MapReduce查询任务;通过Hadoop Yarn框架中的调度节点根据MapReduce查询任务确定多个子任务,并将多个子任务分配到多个计算节点;通过多个计算节点执行多个子任务,得到多个计算结果,并通过多个计算节点将多个计算结果反馈给调度节点;通过调度节点对多个计算结果进行化简,得到查询请求对应的查询结果。本发明专利技术实现了数据库集群中相关联的多个分区表的关系型查询与统计,并减小了网络开销,提高了数据聚合查询的效率。

【技术实现步骤摘要】

本专利技术属于大规模数据处理
,尤其涉及数据聚合查询方法及装置
技术介绍
在数据库集群中,聚合查询是数据查询与分析的主要手段之一。数据库集群的查询涉及到数据库集群中的多个节点。现有的对数据库集群进行聚合查询的方式将分布在多个节点的数据汇聚到主节点后,由主节点执行聚合查询。现有的数据聚合查询的方式在将多个节点的数据汇聚到主节点的过程中需要传输大量数据,网络开销很大。此外,现有的数据聚合查询的方式仅由主节点对大量数据进行聚合查询,数据聚合查询的执行受到主节点的数据处理能力的限制,导致现有的数据聚合查询的效率较低。
技术实现思路
鉴于此,本专利技术实施例提供了一种数据聚合查询的方法及装置,以解决现有的数据聚合查询的网络开销较大且效率较低的问题。第一方面,本专利技术实施例提供了一种数据聚合查询的方法,包括:当接收到针对数据库集群的查询请求时,确定所述查询请求对应的哈希表,并确定所述哈希表对应的多个分区表,多个所述分区表在所述数据库集群中相关联;根据所述查询请求确定每个所述分区表对应的查询条件,并根据每个所述分区表对应的查询条件生成MapReduce查询任务;通过HadoopYarn框架中的调度节点根据所述MapReduce查询任务确定多个子任务,并将多个所述子任务分配到多个计算节点;通过多个所述计算节点执行多个所述子任务,得到多个计算结果,并通过多个所述计算节点将多个所述计算结果反馈给所述调度节点;通过所述调度节点对多个所述计算结果进行化简,得到所述查询请求对应的查询结果。第二方面,本专利技术实施例提供了一种数据聚合查询的装置,包括:分区表确定单元,用于当接收到针对数据库集群的查询请求时,确定所述查询请求对应的哈希表,并确定所述哈希表对应的多个分区表,多个所述分区表在所述数据库集群中相关联;查询任务生成单元,用于根据所述查询请求确定每个所述分区表对应的查询条件,并根据每个所述分区表对应的查询条件生成MapReduce查询任务;子任务分配单元,用于通过HadoopYarn框架中的调度节点根据所述MapReduce查询任务确定多个子任务,并将多个所述子任务分配到多个计算节点;分布式计算单元,用于通过多个所述计算节点执行多个所述子任务,得到多个计算结果,并通过多个所述计算节点将多个所述计算结果反馈给所述调度节点;化简单元,用于通过所述调度节点对多个所述计算结果进行化简,得到所述查询请求对应的查询结果。本专利技术实施例与现有技术相比存在的有益效果是:本专利技术实施例根据针对数据库集群的查询请求对应的哈希表生成MapReduce查询任务,由HadoopYarn框架中的调度节点将MapReduce查询任务划分为多个子任务,并将多个子任务分配到多个计算节点执行,由此由多个计算节点分别执行Map任务,并由调度节点执行Reduce任务,从而实现了数据库集群中相关联的多个分区表的关系型查询与统计,并减小了网络开销,提高了数据聚合查询的效率。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的数据聚合查询的方法的实现流程图;图2是本专利技术实施例提供的数据聚合查询方法步骤S103中所述通过HadoopYarn框架中的调度节点根据所述MapReduce查询任务确定多个子任务的具体实现流程图;图3是本专利技术实施例提供的数据聚合查询方法步骤S103中所述将多个所述子任务分配到多个计算节点的具体实现流程图;图4是本专利技术实施例提供的数据聚合查询装置的结构框图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。图1示出了本专利技术实施例提供的数据聚合查询的方法的实现流程图,详述如下:在步骤S101中,当接收到针对数据库集群的查询请求时,确定查询请求对应的哈希表,并确定哈希表对应的多个分区表,多个分区表在数据库集群中相关联。在本专利技术实施例中,数据库集群包括至少两台数据库服务器。查询请求可以为用户发出的SQL(StructuredQueryLanguage,结构化查询语言)查询请求。分区表指的是查询请求对应的哈希表在每个数据库服务器中的哈希分区表。在步骤S102中,根据查询请求确定每个分区表对应的查询条件,并根据每个分区表对应的查询条件生成MapReduce查询任务。根据接收到的查询请求、查询请求对应的哈希表以及哈希表对应的多个分区表,可以确定每个分区表对应的查询条件。生成的MapReduce查询任务送入HadoopYarn框架中的调度节点。优选地,所述根据每个所述分区表对应的查询条件生成MapReduce查询任务具体为:根据每个分区表对应的查询条件,每个分区表的分区描述信息以及数据库集群在HadoopYarn框架中的数据格式生成MapReduce查询任务。在步骤S103中,通过HadoopYarn框架中的调度节点根据MapReduce查询任务确定多个子任务,并将多个子任务分配到多个计算节点。调度节点在划分MapReduce查询任务时,判断MapReduce查询任务中剩余的数据块数是否大于N,其中,N为大于或等于1的整数。若MapReduce查询任务中剩余的数据块数大于N,则根据N个数据块确定出一个新的子任务;若MapReduce查询任务中剩余的数据块数小于或等于N,则根据所有剩余的数据块确定出的一个新的子任务。在确定出新的子任务后,将新的子任务分配到计算节点。需要说明的是,本专利技术实施例中的子任务指的是Map(映射)任务。作为本专利技术的一个实施例,每个子任务只针对多个分区表中的其中一个分区表。在步骤S104中,通过多个计算节点执行多个子任务,得到多个计算结果,并通过多个计算节点将多个计算结果反馈给调度节点。在步骤S105中,通过调度节点对多个计算结果进行化简,得到查询请求对应的查询结果。调度节点在接收到各个计算节点发送的计算结果后,执行Reduce(化简)任务。图2示出了本专利技术实施例提供的数据聚合查询方法步骤S103中所述通过Had本文档来自技高网...

【技术保护点】
一种数据聚合查询的方法,其特征在于,包括:当接收到针对数据库集群的查询请求时,确定所述查询请求对应的哈希表,并确定所述哈希表对应的多个分区表,多个所述分区表在所述数据库集群中相关联;根据所述查询请求确定每个所述分区表对应的查询条件,并根据每个所述分区表对应的查询条件生成MapReduce查询任务;通过Hadoop Yarn框架中的调度节点根据所述MapReduce查询任务确定多个子任务,并将多个所述子任务分配到多个计算节点;通过多个所述计算节点执行多个所述子任务,得到多个计算结果,并通过多个所述计算节点将多个所述计算结果反馈给所述调度节点;通过所述调度节点对多个所述计算结果进行化简,得到所述查询请求对应的查询结果。

【技术特征摘要】
1.一种数据聚合查询的方法,其特征在于,包括:
当接收到针对数据库集群的查询请求时,确定所述查询请求对应的哈希
表,并确定所述哈希表对应的多个分区表,多个所述分区表在所述数据库集群
中相关联;
根据所述查询请求确定每个所述分区表对应的查询条件,并根据每个所述
分区表对应的查询条件生成MapReduce查询任务;
通过HadoopYarn框架中的调度节点根据所述MapReduce查询任务确定多
个子任务,并将多个所述子任务分配到多个计算节点;
通过多个所述计算节点执行多个所述子任务,得到多个计算结果,并通过
多个所述计算节点将多个所述计算结果反馈给所述调度节点;
通过所述调度节点对多个所述计算结果进行化简,得到所述查询请求对应
的查询结果。
2.如权利要求1所述的方法,其特征在于,所述根据每个所述分区表对
应的查询条件生成MapReduce查询任务具体为:
根据每个所述分区表对应的查询条件,每个所述分区表的分区描述信息以
及所述数据库集群在所述HadoopYarn框架中的数据格式生成所述MapReduce
查询任务。
3.如权利要求1所述的方法,其特征在于,所述通过HadoopYarn框架
中的调度节点根据所述MapReduce查询任务确定多个子任务包括:
通过HadoopYarn框架中的调度节点确定所述HadoopYarn框架的初始配
置参数,所述初始配置参数包括所述HadoopYarn框架中的所有计算节点的总
CPU资源和总内存资源;
通过所述调度节点根据所述初始配置参数将所述MapReduce查询任务划
分为多个子任务。
4.如权利要求1所述的方法,其特征在于,所述将多个所述子任务分配
到多个计算节点包括:
根据每个所述计算节点的CPU资源、内存资源、硬盘资源和/或网络吞吐
量确定每个所述计算节点的计算能力;
根据每个所述计算节点的计算能力将多个所述子任务分配到多个所述计
算节点。
5.如权利要求4所述的方法,其特征在于,所述将多个所述子任务分配
到多个计算节点还包括:
通过所述调度节点实时监控所述HadoopYarn框架中的所有所述计算节点
的资源使用情况,并根据所有所述计算节点的资源使用情况对未分配的所述子
任务进行分配。
6.一种数据聚合查询的装置,其特征在于,包括:
分...

【专利技术属性】
技术研发人员:胡伟黄晓慧黄齐仁李浩陈晓攀熊志强
申请(专利权)人:国家超级计算深圳中心深圳云计算中心深圳市汉云科技有限公司
类型:发明
国别省市:广东;44

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

1