一种云环境下的大数据快速聚合查询方法技术

技术编号:13840015 阅读:49 留言:0更新日期:2016-10-16 06:46
本发明专利技术公开了一种云环境下的大数据快速聚合查询方法,包括步骤一:问题的定义和基本概念;步骤二:数据划分;步骤三:基于MapReduce的大数据聚合查询,假设数据集为T,数据集的势(cardinality)为m,则T={ti:1≤i≤m};数据的维度Dim(T)=d,因此,每个ti可以表示成{t1(d),t2(d),…,ti(d)},且所有的属性均为数值型;对于聚合问题而言,查询函数f通常是一个单调递增函数(increasingly monotone function);即,如果对1≤n≤d,ti(n)≤tj(n),则f(ti)≤f(tj)。本发明专利技术的方法能够大幅减少计算量,提高计算效率,同时,本发明专利技术的方法也有较好的扩展性。

【技术实现步骤摘要】

本专利技术涉及数据查询
,具体为一种云环境下的大数据快速聚合查询方法
技术介绍
数据量和信息量往往是矛盾的,海量数据并不一定意味着信息的丰富,很多时候反而会导致信息过载。对用户而言,有用的信息淹没在大数据的海啸之中。如何从大数据中快速提取出有用的信息,是目前大数据的核心问题之一。在搜索引擎、电子商务、移动App等诸多领域,聚合查询是一种极其常见的查询类型。用户通过对不同属性的权值设定来反映其自身偏好,而系统则根据用户提交的权值计算并返回符合该用户需求的前K个结果。聚合查询能帮助用户从大量数据中得到自己最关心的信息,因此,研究大数据背景下的聚合查询问题具有非常实际和广泛的应用价值。本文的主要工作就是在云环境下,结合MapReduce特性,从数据划分和数据筛选两个方面改进大数据的聚合查询效率。
技术实现思路
本专利技术的目的在于提供一种云环境下的大数据快速聚合查询方法,以解决上述
技术介绍
中提出的问题。为实现上述目的,本专利技术提供如下技术方案:一种云环境下的大数据快速聚合查询方法,其特征在于:包括步骤一:问题的定义和基本概念;步骤二:数据划分;步骤三:基于MapReduce的大数据聚合 查询;步骤一:假设数据集为T,数据集的势(cardinality)为m,则T={ti:1≤i≤m

【技术保护点】
一种云环境下的大数据快速聚合查询方法,其特征在于:包括步骤一:问题的定义和基本概念;步骤二:数据划分;步骤三:基于MapReduce的大数据聚合查询;步骤一:假设数据集为T,数据集的势(cardinality)为m,则T={ti:1≤i≤m};数据的维度Dim(T)=d,因此,每个ti可以表示成{t1(d),t2(d),…,ti(d)},且所有的属性均为数值型;对于聚合问题而言,查询函数f通常是一个单调递增函数(increasingly monotone function);即,如果对1≤n≤d,ti(n)≤tj(n),则f(ti)≤f(tj);最常用的单调函数是加权和(weighted sum),本文亦采用加权和进行相关的计算;假设权值向量w=(W1,W2,…,Wn),则此时的f(ti)值越大,代表排序越高;在此定义下的聚合查询就是返回最大的前k个值;不失一般性,本文假设wi∈[0,1],∑wi=1且这表明,权值向量中允许有分量为0,但不能全为0,表1对上述符号进行了归纳;为了简化问题以及阐述方便,本专利技术作如下合理的假设:1)数据集相对固定,或者数据的更新速度相对于整个数据集而言,可以在一定时间段内忽略不计,很多实际的应用场景符合这种假设,例如,淘宝网的商品数据虽然时刻在更新,但是相对于其整个庞大的商品基数而言,可以认为在某个固定时间内(比如1周)变化不大;对于变化频繁的数据集,比如流数据,本专利技术的方法并不适用;2)数据分布均匀,在数据量足够大的情况下,很多场景的数据基本上符合这个要求;3)任意记录在其任意维的值均不为负值,现实中的应用基本符合该假设,例如,对某饭店或某商品评分,每项分值肯定大于等于0;即使不符合,也可 以通过简单的数据转换,将其数据范围转换到非负区间;4)所使用的服务器数量大致和数据量保持一个合理的比例,数据过多或过少,可以分别通过增加或减少服务器来实现负载平衡;步骤二:在云环境的条件下,数据划分的基本原则是,尽可能地将数据均匀地划分到各个服务器上;这种均匀不仅体现在数据量的均匀上,更重要的是面对特定应用时,这种划分能够尽可能地保证每个服务器上的数据对最后结果均有贡献;在以MapReduce为数据处理框架的云环境下,垂直划分方式不太适合,因为每个子集只有原数据集的部分属性,这样在每次计算时需要访问所有子集才能得到一个完整的加权值,而在MapReduce中,slave节点之间一般不会进行信息交换;考虑到MapReduce的这种特点,本文采用水平划分方式;进一步地,在聚合领域具有代表性的水平划分方式有如下几种:随机划分、基于网格、基于角度和基于超平面;假设将记录的每个属性作为一个维度,则n维聚合问题中的每条记录等价于n维空间的一个数据点(下文中,数据点和记录表示同一概念,可以混用,不再解释);为了便于理解这几种数据划分方式,以二维数据(即,每条记录有两个属性)为代表,具体的划分方法如图3‑图6所示;图3是随机数据划分方式,对于新的数据点,通过某种方式,比如round‑robin,将数据点随机地分配到某个服务器;图4是网格划分,这种方法将整个数据空间划分成若干个网格,落入某个网格中的数据点则分配到相对应的服务器;图5描述了二维情况下基于角度的数据划分,这种方法首先将笛卡尔坐标系的数据点通过转换规则映射到超球坐标系(hyperspherical coordinate),在此基础上,对每个维度的数据进行划分,最终得到结果;图6是基于超平面的划分,该方法的本质是将空间数据映射到某个特定的超平面(在二维空间,超平面等价于一个直线),图例中选择的超平面为直线x+y=1,具体的映射规则是,将通过数据点和原点的直线与超平面的交点作为该数据 点在超平面上的映射点;完成映射之后,通过对各个数据维度进行划分来完成整个数据空间的划分;该方法可以很容易地推广到更高维空间;基于角度和基于超平面的划分都首先要对数据进行转换映射,区别在于:基于角度的划分数据坐标系发生改变,而基于超平面的划分还是在相同的坐标系;从计算复杂度来看,随机划分方式最为简单,而基于角度的划分方式最为复杂;针对聚合问题,随机划分和基于网格的划分效率不高,原因在于:虽然数据被划分到多个服务器上,但是每个服务器上计算的聚合值对最终聚合值的贡献是不同的;以加权和最大为聚合的衡量标准,则在图3、图4所示的随机划分和网格划分中,靠近右上角分区中的数据更有可能成为最终的全局聚合值,而左下角的分区数据极可能毫无贡献;这必然会造成计算资源的浪费和计算效率的低下;最理想的状态是:每个数据分区都能计算出部分的全局聚合值,这样就能够充分发挥系统的并行特性且充分利用计算资源;因此,基于角度的划分和基于超平面的划分是可能的候选方法,这两种数据划分方式最早都是在分布式Skyline计算中引入的;由...

【技术特征摘要】
1.一种云环境下的大数据快速聚合查询方法,其特征在于:包括步骤一:问题的定义和基本概念;步骤二:数据划分;步骤三:基于Ma...

【专利技术属性】
技术研发人员:魏孙鼎严荣程
申请(专利权)人:广州鼎鼎信息科技有限公司
类型:发明
国别省市:广东;44

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

1