聚合式大数据查询方法及装置与流程

文档序号:12271426阅读:261来源:国知局
聚合式大数据查询方法及装置与流程

本发明涉及数据查询领域,尤其涉及一种聚合式大数据查询方法及装置。



背景技术:

二十一世纪以来,随着电子商务、科学计算及社交网络等新一代大规模网络应用的迅猛发展,互联网数据量大幅增加。云计算的发展和大数据时代的到来使得基于单台主机的传统关系数据库系统在扩展能力和处理能力等方面都捉襟见肘,越来越无法满足管理海量数据的需求。

在大数据时代,基于大数据的数据分析处理需求得到了越来越多的重视。为了应对大数据带来的困难和挑战,以Google、Facebook、Linkedin、Microsoft等为代表的互联网企业和学术界近几年推出了各种不同类型的大数据处理系统。借助于新型的处理系统,深度学习、机器学习、数据挖掘等大数据分析技术也得到了迅速发展。由于高可用、低延迟、易扩展的大数据处理要求,Hadoop和Spark等当前业界和学术界使用最为广泛的大数据处理系统通过水平扩展来提升自身这方面的性能。水平扩展不仅仅是物理机器的扩展还蕴含着对存储的数据进行分区操作,即同一个数据大表的数据分割放置于不同的物理节点上。这种方式对于扩展集群的并发访问能力有着显著的提升。

但是,现有技术中的大数据处理系统,基于数据的操作及数据传送会带来网络开销。在系统面临聚合式数据查询,如Join,Aggregation,Group by等聚合式数据查询操作时,往往涉及到两个或多个数据表,数据表的元组数量巨大,而且数据跨越多个节点,因此会导致巨大的网络通信开销,影响整个系统的性能。



技术实现要素:

本发明实施例提供一种聚合式大数据查询方法及装置,用于解决现有技术中的聚合式大数据查询方法及装置导致巨大的网络通信开销,从而影响系统性能的问题。

第一方面,本发明实施例提供一种聚合式大数据查询方法,包括:

获取聚合式大数据查询请求;

根据所述聚合式大数据查询请求,从n个数据处理节点中获取n个查询任务;n为大于或等于1的整数;

将每个所述查询任务分解为m个数据组;m为大于或等于1的整数;

获取每个数据组的大小,并确定所述n个查询任务中具有相同键值的数据组中数据量最大的数据组;

确定所述数据量最大的数据组所对应的查询任务的数据处理节点为查询任务执行节点;

通过所述查询任务执行节点执行聚合式大数据查询任务。

可选地,所述通过所述查询任务执行节点执行聚合式大数据查询任务,包括:

通过所述查询任务执行节点从其它数据处理节点中,获取与所述数据量最大的数据组具有相同键值的数据组;

将所述查询任务执行节点中的所述数据量最大的数据组,及与所述数据量最大的数据组具有相同键值的数据组进行合并。

可选地,所述方法还包括:根据所述聚合式大数据处理请求,从所述n个数据处理节点存储的数据中选取热点数据,在每个数据处理节点的相邻数据处理节点中进行备份,其中,所述热点数据为被访问频率满足预设条件的数据;

所述通过所述查询任务执行节点执行聚合式大数据查询任务,包括:

在所述通过所述查询任务执行节点从其它数据处理节点中,获取与所述数据量最大的数据组具有相同键值的数据组之前,

确定所述查询任务执行节点本地是否存在其它数据处理节点的备份数据,且所述备份数据中包括与所述数据量最大的数据组具有相同键值的数据组;

若是,则所述查询任务执行节点从本地获取所述获取与所述数据量最大的数据组具有相同键值的数据组;

将所述查询任务执行节点中的所述数据量最大的数据组,及与所述数据量最大的数据组具有相同键值的数据组进行合并。

可选地,所述根据所述聚合式大数据查询请求,从n个数据处理节点中获取n个查询任务,包括:

根据所述聚合式大数据查询请求,从所述n个数据处理节点中存储的第一数据表及第二数据表的数据中获取与所述聚合式大数据处理请求相关的数据,生成所述n个查询任务。

第二方面,本发明实施例还提供一种聚合式大数据查询装置,包括:

获取模块,用于获取聚合式大数据查询请求;

所述获取模块,还用于,根据所述聚合式大数据查询请求,从n个数据处理节点中获取n个查询任务;n为大于等于1的整数;

数据分解模块,用于将每个所述查询任务分解为m个数据组;m为大于等于1的整数;

所述获取模块,还用于获取每个数据组的大小,

确定模块,用于确定所述n个查询任务中具有相同键值的数据组中数据量数据量最大的数据组;

所述确定模块,还用于确定所述数据量数据量最大的数据组所对应的查询任务对应的数据处理节点为查询任务执行节点;

查询处理模块,用于通过所述查询任务执行节点执行聚合式大数据查询任务。

可选地,所述查询处理模块,具体用于:

通过所述查询任务执行节点从其它数据处理节点中,获取与所述数据量最大的数据组具有相同键值的数据组;

并将所述查询任务执行节点中的所述数据量最大的数据组,及与所述数据量最大的数据组具有相同键值的数据组进行合并。

可选地,所述装置还包括:

备份模块,用于根据所述聚合式大数据处理请求,从所述n个数据处理节点存储的数据中选取热点数据,在每个数据处理节点的相邻数据处理节点中进行备份;其中,所述热点数据为被访问频率满足预设条件的数据;

所述查询处理模块,具体用于:

在所述通过所述查询任务执行节点从其它数据处理节点中,获取与所述数据量最大的数据组具有相同键值的数据组之前,

确定所述查询任务执行节点本地是否存在其它数据处理节点的备份数据,且所述备份数据中包括与所述数据量最大的数据组具有相同键值的数据组;

若是,则所述查询任务执行节点从本地获取所述获取与所述数据量最大的数据组具有相同键值的数据组;将所述查询任务执行节点中的所述数据量最大的数据组,及与所述数据量最大的数据组具有相同键值的数据组进行合并。

可选地,所述获取模块,具体用于:

根据所述聚合式大数据查询请求,从所述n个数据处理节点中存储的第一数据表及第二数据表的数据中获取与所述聚合式大数据处理请求相关的数据,生成所述n个查询任务。

本发明提供的聚合式大数据查询方法及装置,通过确定所述数据量最大的数据组所对应的查询任务的数据处理节点为查询任务执行节点,由于所述查询任务执行节点本地存储的数据组的数据量最大,执行所述聚合式大数据查询任务时,所述查询任务执行节点可以直接使用本地的数据组,从而减小所述查询任务执行节点通过网络从其他数据处理节点中获取的数据组的数据量,减小聚合式大数据查询过程中数据传输的网络开销。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例聚合式大数据查询系统的框架结构示意图;

图2为本发明实施例聚合式大数据查询方法的流程示意图;

图3为本发明实施例聚合式大数据查询操作的过程示意图;

图4为本发明实施例聚合式大数据查询操作的另一过程示意图;

图5为本发明实施例聚合式大数据查询装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种可以节省数据查询网络开销的聚合式大数据查询方法及装置。

图1为本发明实施例聚合式大数据查询系统的框架结构示意图。

请参阅图1,本发明实施例聚合式大数据查询系统包括客户端10、聚合式大数据查询装置20及多个数据处理节点30。所述聚合式大数据查询装置20包括查询请求处理模块21、查询类型判断模块22、数据备份管理模块23、数据分区管理模块24、及数据传送模块25。所述查询请求处理模块21用于从所述客户端10获取数据查询请求。所述查询类型判断模块22用于判断所述数据查询请求的类型。所述数据备份管理模块23用于对所述数据处理节点30中存储的数据进行备份管理。所述数据传送模块25用于从所述数据处理节点30中获取待查询数据,并从所述数据处理节点30中获取数据查询结果。所述聚合式大数据查询装置20通过所述客户端请求处理模块21获取到所述客户端10发送的聚合式大数据查询请求,并通过所述查询类型判断模块22判断所述数据处理请求是否为聚合式大数据处理请求,如果是,则所述数据分区管理模块24对所述查询任务进行分区,并从所述多个数据处理节点30中确定出执行聚合式大数据查询任务的查询任务执行节点,通过所述查询任务执行节点执行聚合式大数据查询任务。

图2为本发明实施例聚合式大数据查询方法的流程示意图。

请参阅图2,本发明实施例提供的聚合式大数据查询方法由图1中的聚合式大数据查询装置执行,所述方法包括:

S201:获取聚合式大数据查询请求;

具体地,所述聚合式大数据查询装置通过所述客户端请求处理模块从所述客户端获取所述聚合式大数据查询请求。

S202:根据所述聚合式大数据查询请求,从n个数据处理节点中获取n个查询任务;n为大于或等于1的整数;

具体地,所述根据所述聚合式大数据查询请求,从n个数据处理节点中获取n个查询任务,包括:

根据所述聚合式大数据查询请求,从所述n个数据处理节点中存储的第一数据表及第二数据表的数据中获取与所述聚合式大数据处理请求相关的数据,生成所述n个查询任务。

具体地,所述聚合式大数据查询装置通过所述数据传输模块从所述n个数据处理节点中获取与所述聚合式大数据处理请求相关的数据。所述查询任务执行节点通过所述数据传输模块将最终得到的聚合式大数据查询结果发送给所述聚合式大数据查询装置。所述聚合式大数据查询装置将所述查询结果返回给客户端。

所述聚合式大数据查询装置采用开源集群计算环境Spark,在Spark中,一个聚合式查询操作会分为3个阶段。

图3为本发明实施例聚合式大数据查询操作的过程示意图。

请参阅图3,第一阶段及第二阶段分别处理的是所述聚合式查询操作所涉及到的所述第一数据表及所述第二数据据表的数据,然后第三阶段对这些数据进行实际的聚合。Spark中每个阶段中都包含了许多具有相同工作的任务,只是他们所处理的数据不同。所述第一阶段及所述第二阶段输出所述n个查询任务,每个所述查询任务通过一个数据处理节点执行。

S203:将每个所述查询任务分解为m个数据组;m为大于等于1的整数;

所述步骤由所述聚合式大数据查询装置的数据分区管理模块执行。

图4为本发明实施例聚合式大数据查询操作的另一过程示意图。

具体地,请参阅图4,所述查询任务的数量为n。通过执行所述查询任务,每个查询任务输出m个数据组,所述m个数据组分别具有不同的键值。每个数据组由具有相同键值的数据相结合形成。所述n个查询任务中具有相同键值的数据组通过合并任务进行聚合。

S204:获取每个数据组的大小,并确定所述n个查询任务中具有相同键值的数据组中数据量最大的数据组;

具体地,由于每个查询任务被分解为m个数据组,一个合并任务用于处理具有同一个键值的所有数据组,即每个合并任务处理n个具有同一键值的数据组。实际处理过程中,其中的部分数据组中的数据可以为空。为了保证对所述查询任务中所有具有相同键值的数据组执行聚合,所述n个查询任务需要通过m个合并任务完成合并。

具体地,通过遍历每个合并任务所处理的数据组的数据量,并对所述每个合并任务所处理的数据组的数据量进行比较,确定出每个合并任务所处理的数据量最大的数据组,并记录所述数据量最大的数据组所对应的查询任务所在的数据处理节点。

S205:确定所述数据量最大的数据组所对应的查询任务的数据处理节点为查询任务执行节点;

为了保证在执行聚合式大数据查询任务的过程中读取数据时尽量减小数据的网络传输开销,所述聚合式大数据查询装置通过确定所述数据量最大的数据组所对应的查询任务的数据处理节点为查询任务执行节点。

S206:通过所述查询任务执行节点执行聚合式大数据查询任务。

具体地,所述通过所述查询任务执行节点执行聚合式大数据查询任务,包括:

通过所述查询任务执行节点从其它数据处理节点中,获取与所述数据量最大的数据组具有相同键值的数据组;

将所述查询任务执行节点中的所述数据量最大的数据组,及与所述数据量最大的数据组具有相同键值的数据组进行合并。

本发明实施例提供的聚合式大数据查询方法,通过获取聚合式大数据查询请求;根据所述聚合式大数据查询请求,从n个数据处理节点中获取n个查询任务;将每个所述查询任务分解为m个数据组;获取每个数据组的大小,并确定所述n个查询任务中具有相同键值的数据组中数据量最大的数据组;确定所述数据量最大的数据组所对应的查询任务的数据处理节点为查询任务执行节点;通过所述查询任务执行节点执行聚合式大数据查询任务。执行聚合式大数据查询任务时,需要从所述n个数据处理节点中分别获取具有相同键值的数据组进行合并。采用本发明实施例提供的聚合式大数据查询方法,通过确定所述数据量最大的数据组所对应的查询任务的数据处理节点为查询任务执行节点,由于所述查询任务执行节点本地存储的数据组的数据量最大,执行所述聚合式大数据查询任务时,所述查询任务执行节点可以直接使用本地的数据组,从而减小所述查询任务执行节点通过网络从其他数据处理节点中获取的数据组的数据量,减小聚合式大数据查询过程中数据传输的网络开销。

进一步地,在上述实施例的基础上,所述方法还包括:根据所述聚合式大数据处理请求,从所述n个数据处理节点存储的数据中选取热点数据,在每个数据处理节点的相邻数据处理节点中进行备份,其中,所述热点数据为被访问频率满足预设条件的数据;

所述通过所述查询任务执行节点执行聚合式大数据查询任务,包括:

在所述通过所述查询任务执行节点从其它数据处理节点中,获取与所述数据量最大的数据组具有相同键值的数据组之前,

确定所述查询任务执行节点本地是否存在其它数据处理节点的备份数据,且所述备份数据中包括与所述数据量最大的数据组具有相同键值的数据组;

若是,则所述查询任务执行节点从本地获取所述获取与所述数据量最大的数据组具有相同键值的数据组;

将所述查询任务执行节点中的所述数据量最大的数据组,及与所述数据量最大的数据组具有相同键值的数据组进行合并。

通过选取热点数据在相邻的数据处理节点中进行备份,使得所述查询任务执行节点中也可以对相邻的数据处理节点中的热点数据进行备份,则所述查询任务执行节点在执行数据组的数据合并的过程中,如果确定所述相邻的数据处理节点中存在需要合并的数据组,即可以从所述查询任务执行节点本地获取到相邻的数据处理节点中的数据组的数据,无需通过网络访问所述相邻数据处理节点,减小了网络开销。

图5为本发明实施例聚合式大数据查询装置的结构示意图。请参阅图5,本发明实施例提供一种聚合式大数据查询装置,包括:

获取模块510,用于获取聚合式大数据查询请求;

所述获取模块510,还用于,根据所述聚合式大数据查询请求,从n个数据处理节点中获取n个查询任务;n为大于等于1的整数;

数据分解模块520,用于将每个所述查询任务分解为m个数据组;m为大于等于1的整数;

所述获取模块510,还用于获取每个数据组的大小,

确定模块530,用于确定所述n个查询任务中具有相同键值的数据组中数据量最大的数据组;

所述确定模块530,还用于确定所述数据量最大的数据组所对应的查询任务对应的数据处理节点为查询任务执行节点;

查询处理模块540,用于通过所述查询任务执行节点执行聚合式大数据查询任务。

可选地,在上述实施例的基础上,所述查询处理模块540,具体用于:

通过所述查询任务执行节点从其它数据处理节点中,获取与所述数据量最大的数据组具有相同键值的数据组;

并将所述查询任务执行节点中的所述数据量最大的数据组,及与所述数据量最大的数据组具有相同键值的数据组进行合并。

可选地,在上述实施例的基础上,所述装置还包括:

备份模块550,用于根据所述聚合式大数据处理请求,从所述n个数据处理节点存储的数据中选取热点数据,在每个数据处理节点的相邻数据处理节点中进行备份;其中,所述热点数据为被访问频率满足预设条件的数据;

所述查询处理模块540,具体用于:

在所述通过所述查询任务执行节点从其它数据处理节点中,获取与所述数据量最大的数据组具有相同键值的数据组之前,

确定所述查询任务执行节点本地是否存在其它数据处理节点的备份数据,且所述备份数据中包括与所述数据量最大的数据组具有相同键值的数据组;

若是,则所述查询任务执行节点从本地获取所述获取与所述数据量最大的数据组具有相同键值的数据组;将所述查询任务执行节点中的所述数据量最大的数据组,及与所述数据量最大的数据组具有相同键值的数据组进行合并。

可选地,在上述实施例的基础上,所述获取模块510,具体用于:

根据所述聚合式大数据查询请求,从所述n个数据处理节点中存储的第一数据表及第二数据表的数据中获取与所述聚合式大数据处理请求相关的数据,生成所述n个查询任务。

本发明实施例提供的聚合式大数据查询装置,用于执行上述方法实施例提供的方法,其具体实现原理及技术效果与上述方法实施例类似,在此不再赘述。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1