数据查询的方法、设备及系统的制作方法

文档序号:6372539阅读:96来源:国知局
专利名称:数据查询的方法、设备及系统的制作方法
技术领域
本发明涉及数据处理技术,具体涉及数据查询的方法、设备及系统,属于计算机领域。
背景技术
目前,对于海量数据的存储查询方案主要分为集中式和分布式。其中,在集中式方案中,采用数据库加单存储节点的架构,但随着单存储节点上数据的不断増大,要从海量数据中查询前N条数据,如TOP N查询;与单存储节点配合的传统数据库产品已难以满足实时性需求。在分布式方案中存在多个存储节点,对于大規模数据采用多个存储节点的分布式存储,但分布式存储主要针对的多为网页、图片等等单列数据 的存储或查询需求,而对多列数据存储和查询,如TOP N查询需求,还没有可满足实时性需求的成熟解决方案。现有技术中,要从分散存储的海量数据中做TOP N查询,都要取出大量冗余数据,再通过映射/归并(Map/Reduce)的方式进行排序并筛选結果,这样,当有ー个部分的数据读取缓慢时,就要一直等待这部分数据,导致数据查询的实时性差,数据查询效率低下。

发明内容
本发明实施例提供一种数据查询的方法,可以提高数据查询的实时性。本发明实施例还提供了相应的设备及系统。一方面,本发明实施例提供一种数据查询的方法,包括获取查询任务所拆分成的多个查询子任务,并将每个查询子任务分别分配给不同的执行节点;按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到ー个归并集合,并指定所述归并集合中的ー个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;重复执行所述划分归并集合和指定归并的步骤,直到获取最后的归并数据,所述最后的归并数据为最后一个归并集合中指定的执行节点执行所述归并步骤得到的;向用户端返回所述最后的归并数据。另ー方面,本发明实施例提供一种服务器,包括获取单元,用于获取查询任务所拆分成的多个查询子任务;分配単元,用于将所述获取单元获取的每个查询子任务分别分配给不同的执行节点;划分单元,用于在所述分配単元分配所述每个查询子任务后,按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合;指定単元,用于指定所述划分单元划分后的归并集合中的ー个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;所述获取単元,还用于在所述划分単元和所述指定单元重复执行所述划分归并集合和所述指定归并的步骤后,获取最后的归并数据,所述最后的归并数据为最后一个归并集合中指定的执行节点执行所述归并步骤得到的;发送单元,用于向用户端返回所述获取单元获取的最后的归并数据。另ー方面,本发明实施例提供ー种数据查询系统,包括调度服务器、任务服务器、多个执行节点、用户端;所述调度服务器从所述任务服务器获取查询任务所拆分成的多个查询子任务,并将每个查询子任务分别分配给不同的执行节点;按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的ー个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;重复执行所述划分归并集合和指定归并的步骤,直到获取最后一个归并集合中指定的执行节点执行所述归并步骤得到的最后的归并数据;向用户端返回所述最后的归并数据。另ー方面,本发明实施例还提供ー种数据查询系统,包括调度服务器、多个执行节点、用户端;所述调度服务器获取查询任务后,将所述查询任务拆分成多个查询子任务,并将所述多个查询子任务分配给每个执行节点;按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的ー个执行节点归并所 述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;重复执行所述划分归并集合和指定归并的步骤,直到获取最后一个归并集合中指定的执行节点执行所述归并步骤得到的最后的归并数据;向用户端返回所述最后的归并数据。本发明实施例采用获取查询任务所拆分成的多个查询子任务,并将每个查询子任务分别分配给不同的执行节点;按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的ー个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;重复执行所述划分归并集合和指定归并的步骤,直到获取最后一个归并集合中指定的执行节点执行所述归并步骤得到的最后的归并数据;向用户端返回所述最后的归并数据。与现有技术中当有ー个部分的数据读取缓慢时,就要一直等待这部分数据相比,本发明实施例提供的数据查询的方法,可以提高数据查询的实时性。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的ー些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I是本发明实施例中数据查询的方法的ー实施例示意图;图2是本发明实施例中一应用场景实施例示意图;图3A是本发明实施例中另ー应用场景实施例示意图;图3B是本发明实施例中另ー应用场景实施例示意图;图4是本发明实施例中另ー应用场景实施例示意图;图5是本发明实施例中服务器的ー实施例示意图6是本发明实施例中服务器的另ー实施例示意图;图7是本发明实施例中服务器的另ー实施例示意图;图8是本发明实施例中服务器的另ー实施例示意图;图9是本发明实施例中系统的ー实施例示意图;图10是本发明实施例中系统的另ー实施例示意图。
具体实施例方式本发明实施例提供一种数据查询的方法,可以提高数据查询的实时性。本发明实施例还提供了响应的设备及系统。以下分别进行详细说明。
本发明实施例主要针对在无共享(share nothing)架构下,针对同构且表间没有直接关系的数据,进行分布式数据筛选、排序、查询;以及针对此数据环境下,随机选取一列进行例如排序、Top N等数据查询操作的实时性问题。參阅图1,本发明实施例提供的数据查询的方法的一实施例包括101、获取查询任务所拆分成的多个查询子任务,并将每个查询子任务分别分配给不同的执行节点。海量数据一般存储在多个执行节点中,要从海量数据中查询Top N数据时,用户通过用户端输入查询任务后,后台要有一台服务器将所述查询任务拆分成多个查询子任务,子任务的数量与执行节点的数量对应。调度节点获取查询任务所拆分成的多个查询子任务后,将每个查询子任务分别分配给不同的执行节点。102、按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到ー个归并集合,并指定所述归并集合中的ー个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合。预置的归并策略可以为接收执行节点完成所述查询子任务后上报的子任务完成响应,或者,完成数据归并任务后上报的归并任务完成响应,当上报子任务完成响应的执行节点的数量达到预设数量时,或者当上报子任务完成响应的执行节点与上报归并任务完成响应的执行节点的数量达到预设数量时,进行数据归井。预设数量可以为大于等于2并且小于执行节点数量的任意数值。预置的归并策略还可以为接收执行节点发送的归并申请;当发送所述归并申请的执行节点的数量达到预设的数量时,进行数据归井。预设数量可以为大于等于2并且小于执行节点数量的任意数值。当没有发生数据归并时可以理解为发生数据归并的次数为0次,也可以将未发生数据归并的执行节点的级别定义为0级。执行过一次数据归并的执行节点的级别定义为I级,执行过几次数据归并,该执行节点为几级。本发明实施例中提供的方案,执行节点在加入归并集合后,如果没有被指定执行数据归并,那么该执行节点就不能再次被划分到归并集合了,只有被指定归并数据的执行节点才能再次被划分到归并集合,而且如果该执行节点在第一个归并集合中被指定执行数据归并,在第二个归并集合中未被指定执行归并数据,那么该执行节点就不能再第三次被划分到归并集合了。数据归并是指按照要求从所有执行节点查询的Top N数据中,再选择出TopN数据。103、是否获取到最后ー个归并集合中指定的执行节点执行所述归并步骤得到的最后的归并数据,当是时,执行步骤104,当否时,执行步骤102。数据归并的过程是在执行节点中进行的,调度节点只需要最后的归并数据,因此数据归并的过程需要进行多次,直到得到最后的归并数据,当未获取最后的归并数据时,需要反复执行步骤102。104、向用户端返回所述最后的归并数据。 调度节点获得最后的归并数据后,将所述最后的归并数据返回给用户端,供用户端显示。本发明实施例采用获取查询任务所拆分成的多个查询子任务,并将每个查询子任务分别分配给不同的执行节点;按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的ー个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;重复执行所述划分归并集合和指定归并的步骤,直到获取最后一个归并集合中指定的执行节点执行所述归并步骤得到的最后的归并数据;向用户端返回所述最后的归并数据。与现有技术中当有ー个部分的数据读取缓慢时,就要一直等待这部分数据相比,本发明实施例提供的数据查询的方法,可以提高数据查询的实时性。可选地,在上述图I对应的实施例的基础上,所述按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,具体包括接收执行节点完成所述查询子任务后上报的子任务完成响应,或者,完成数据归并任务后上报的归并任务完成响应;当上报子任务完成响应的执行节点的数量达到预设数量时,将上报所述子任务完成响应的执行节点划分到一个归并集合;或者,当上报子任务完成响应的执行节点与上报归并任务完成响应的执行节点的数量达到预设数量时,将所述上报子任务完成响应的执行节点与所述上报归并任务完成响应的执行节点划分到一个归并集合。本发明实施例提供的技术方案是,执行节点按照调度节点的任务,完成相应的エ作,完成任务后,执行节点上报ー个任务完成响应,当调度节点给分配查询子任务后,执行节点完成数据查询工作后,会向调度节点上报ー个子任务完成响应,当调度节点分配的是数据归并任务时,执行节点完成归并的任务后,会向调度节点上报ー个归并任务完成响应,以便调度节点继续分配其他任务。可选地,在上述图I对应的实施例的基础上,所述按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,具体包括接收执行节点发送的归并申请;当发送所述归并申请的执行节点的数量达到预设的数量时,将发送所述数据归并申请的执行节点划分到一个归并集合。本发明实施例提供的技术方案是,执行节点完成调度节点分配的查询子任务或者归并任务后,主动向调度节点发送归并申请,调度节点在发送所述归并申请的执行节点的数量达到预设的数量时,将发送所述数据归并申请的执行节点划分到一个归并集合。
可选地,在上述图I对应的实施例的基础上,所述指定所述归并集合中的ー个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,具体包括指定所述归并集合中的一个执行节点读取所述归并集合中的其他执行节点查询到的或者归并后的数据,使所述指定的一个执行节点对所述读取到的数据进行筛选,得到所述归并集合中的所有执行节点的归并数据。本发明实施例提供的技术方案是调度节点指定归并集合中的ー个执行节点完成集合内所有执行节点查询到的数据或者归并后的数据的归井。为了便于理解,參阅图2,下面以ー个具体应用场景为例,对本发明实施例进行详细说明例如图2所示,有6个执行节点,分别为执行节点f执行节点6,调度节点负责管理执行节点。调度节点获取查询任务(Top 100)所拆分成的6个查询子任务后,将所述6个查 询子任务分别分配给执行节点f执行节点6的6个执行节点,6个执行节点接收到查询子任务后,分别从各自的数据库子表中读取出Top 100的数据,每个执行节点读取数据的速度可能不同,每个执行节点完成查询子任务后,就可以向调度节点发送子任务完成响应,或者,每个执行节点完成查询子任务后,向调度节点发送归并申请。本应用场景中以接收到子任务完成响应为例进行说明,调度节点接收到子任务完成响应的数量达到预定数量吋,假设预定数量为2,就将发送子任务完成响应的执行节点划分到一个归并集合,如图2中,将执行节点I、执行节点2划分到一个归并集合,将执行节点
3、执行节点4划分到一个归并集合,将执行节点5、执行节点6划分到一个归并集合,然后执行执行节点I执行归并任务,执行节点I读取执行节点2查询到的Top 100数据,与自身查询到的Top 100数据进行归并,得到这两个执行节点的Top 100数据。另外两个归并集合中调度节点指定的执行节点分别时执行节点3和执行节点5,归并处理方式与执行节点I所在的归并集合相同。本实施中只是举例,在实际操作中,调度节点根据各执行节点上报的顺序进行归并,并不限于本实施例中的顺序。执行节点1、3、5执行完0级归并任务后,向调度节点发送归并任务完成响应,调度节点将向上报归并任务完成响应的执行节点3和执行节点5划分到一个归并集合,并执行执行节点5执行数据归并,执行节点5读取执行节点3中的I级归并数据,将执行节点3中的I级归并数据与自身的I级归并数据归并,完成归并后,向调度节点发送归并任务完成响应,调度节点接收到执行节点5上报的归并任务完成响应后,将与执行节点5数据级别最近的执行节点I划分到一个归并集合,并指定执行节点I进行数据归并,执行节点I读取执行节点5中的2级归并数据,与自身的I级归并数据进行归并,得到最后的归并数据,井向调度节点发送归并任务完成响应,调度节点识别到已经没有待归并的数据,确认得到最后的归并数据,从执行节点I获取最后的归并数据,返回给用户端,供用户端显示。由上可见,由于进行归并的双方并非预先设定好,而是采用流水线方式在任务执行过程中动态调度得到的,这样可避免预先设定归并双方可能导致的某些节点读取数据过慢而使得其它已获取到数据的执行节点无法进行归井。图2中几次归并分别在Node I、Node 3、Node 5、Node 5和Nodel上进行,有效的提高了并发度。參阅图3A和3B,下面以另ー个具体应用场景为了,对本发明实施例进行详细说明图3A为现有技术中的非动态分级归并的映射/归并(Map/Reduce)过程參见图3A,非动态分级的Map/Reduce开销包括开销I :6次map读盘;开销2 :6次map结果集传输到中间结果集存储节点;开销3 6次中间结果集存盘;开销4 6次reduce操作读取中间结果集;开销5 6次中间结果集传输到reduce节点;
开销6 :2次reduce中间结果集网络传输;开销7 2次中间结果集写磁盘过程;开销8 中间结果集读盘过程;开销9 :2次reduce中间结果集网络传输。查询开销=6*Iol (6次map读盘)+6*Io2 (6次map结果集传输到中间结果集存储节点)+6*Iol (6次中间结果集存盘)+6*Iol (6次reduce操作读取中间结果集)+6*Io2(6次中间结果集传输到reduce节点)+2*Io2 (2次reduce中间结果集网络传输)+2*Iol(2次中间结果集写磁盘过程)+2*Iol (中间结果集读盘过程)+2*Io2 (2次reduce中间结果集网络传输)。可以确认,图3A中的非动态分级的Map/Reduce,用于读盘的开销为22次,用于网络传输的开销为16次。參见图3B,图3B为本发明实施例提供的动态分级的归并过程中的开销包括开销I :6次map读盘;开销2 3次map结果集传输到中间结果集到对应存储节点;开销3 2次reduce中间结果集网络传输;查询开销=6*Iol (6次map读盘)+3*Io2 (3次map结果集传输到中间结果集到对应存储节点)+2*Io2 (2次reduce中间结果集网络传输)。可以确认,图3B中用于读盘的开销为6次,用于网络传输开销为5次。从图3A和图3B的对比中可以看出,本发明实施例提供的归并方案大大的提高了数据查询的速度。可选地,在图I对应的实施例的基础上,所述获取查询任务所拆分成的多个查询子任务之前,还包括接收所述查询任务,并将所述查询任务拆分成多个查询子任务。本发明实施例提供的查询任务拆分工作可以由另外的服务器完成,也可以由调度节点来完成,如果没有负责拆分查询任务的服务器,那么调度节点接收到查询任务后,将查询任务拆分成多个查询子任务。可选地,在图I对应的实施例的基础上,还包括获取用于翻页的游标信息;向用户端返回所述用于翻页的游标信息,以使所述最終的归并数据在所述用户端上分页展示。用户端要查询Top 100或者更多的数据,不可能在一页中显示,需要要分页来展示,调度节点获取用于翻页的游标信息;向用户端返回所述用于翻页的游标信息,以使所述最終的归并数据在所述用户端上分页展示。參阅图4,下面以另ー个具体应用场景为了,对本发明实施例进行详细说明
下面以ー种TopN翻页查询过程为例进行介绍201、用户端(Portal)-〉配置服务器(CS, Configuration Server)用户在用户端界面上选择数据过滤条件,过滤条件如数据类型(如原始数据、汇总数据)、网元类型、版本、ー个Moc、时间段、性能指标、指标和时间等,用户端向配置服务器发送查询任务,CS对该Portal编号后将其ID与此次查询任务ID建立映射关系。202、配置服务器向调度服务器(Master Server)发送查询任务。
203、配置服务器向任务服务器(TS, Task Server)发送游标。204、调度服务器向任务服务器发送拆分任务。205、任务服务器按照任务拆分策略将查询任务拆分为若干个子任务后,向调度服务器发送拆分成的若干个子任务。206、调度服务器向第一计算服务器分配查询子任务任务。207、调度服务器向第二计算服务器分配查询子任务任务。208、第一计算服务器向调度服务器发送子任务完成响应。209、第二计算服务器向调度服务器发送子任务完成响应。210、调度服务器向第一计算服务器发送归并任务。211、第一计算服务器读取第二计算服务器查询出的数据,将第二计算服务查询的数据与自身查询的数据归并,归并后向调度服务器发出归并任务完成响应。212、调度服务器从第一计算服务器获取最后的归并数据。213、调度服务器将最后的归并数据和分页游标发送给配置服务器。214、配置服务器将最后的归并数据和分页游标发送给用户端,供用户端分页显
/Jn o本技术方案可在流式计算平台中进行数据归并的任务处理的事件路由过程中得到应用。以Yahoo!的流式计算平台S4为例。在上游基本运算单元(PE, ProcessingElemen)处理完事件(event)后向下游PE输出新的event时,在交流平台(communicationlayer)中需要做事件路由来选择接收新event的PE。如果按照纯粹的负载均衡原则来进行路由,这些事件将由负载较轻的用于处理新event的PE捕获,但这些PE很有可能并没有保存上游事件处理得到的数据,也就是说上游PE需要将数据传输给下游PE,在ニ路归并的情况下将发生两次数据传输。如果路由器(router)按照动态分级归并的原则进行事件路由,那么首先它选择的下游PE将是产生该事件的PE中的ー个,这样就減少了一次传输开销;其次动态分级归并算法会将所有事件均匀地进行路由,这样并行度就得到了保证,提升事件处理的效率。本发明实施例提供的服务器为方法技术方案中的调度节点或者应用场景中的调度服务器。參阅图5,本发明实施例提供的服务器的一实施例包括获取单元301,用于获取查询任务所拆分成的多个查询子任务;分配単元302,用于将所述获取単元301获取的每个查询子任务分别分配给不同的执行节点;划分单元303,用于在所述分配単元302分配所述每个查询子任务后,按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合;指定単元304,用于指定所述划分単元303划分后的归并集合中的ー个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;所述获取単元301,还用于在所述划分単元303和所述指定単元304重复执行所述划分归并集合和所述指定归并的步骤后,取最后ー个归并集合中指定的执行节点执行所述归并步骤得到的最后的归并数据;发送单元305,用于向用户端返回所述获取単元301获取的最后的归并数据。本发明实施例中,获取单元301获取查询任务所拆分成的多个查询子任务;分配単元302将所述获取单元301获取的每个查询子任务分别分配给不同的执行节点;划分单元303在所述分配単元302分配所述每个查询子任务后,按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合;指定単元304指定所述划分単元303划 分后的归并集合中的ー个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;所述获取単元301在所述划分単元303和所述指定単元304重复执行所述划分归并集合和所述指定归并的步骤后,取最后ー个归并集合中指定的执行节点执行所述归并步骤得到的最后的归并数据;发送单元305向用户端返回所述获取単元301获取的最后的归并数据。与现有技术相比,本发明实施例提供的服务器,可以提高数据查询的实时性。參阅图6,在上述图5对应的实施例的基础上,本发明实施例提供的服务器的另ー实施例还包括第一接收单元306,用于接收执行节点完成所述查询子任务后上报的子任务完成响应,或者,完成数据归并任务后上报的归并任务完成响应;所述划分単元303,用于当所述第一接收单元306接收到的上报子任务完成响应的执行节点的数量达到预设数量时,将上报所述子任务完成响应的执行节点划分到ー个归并集合;或者,当上报子任务完成响应的执行节点与上报归并任务完成响应的执行节点的数量达到预设数量时,将所述上报子任务完成响应的执行节点与所述上报归并任务完成响应的执行节点划分到一个归并集合。參阅图7,在上述图5对应的实施例的基础上,本发明实施例提供的服务器的另ー实施例还包括第二接收单元307,用于接收执行节点发送的归并申请;所述划分単元303,用于当所述第二接收单元307接收到的发送所述归并申请的执行节点的数量达到预设的数量时,将发送所述数据归并申请的执行节点划分到一个归并
隹A
ロ O在上述图5 7对应的实施例的基础上,本发明实施例提供的服务器的另ー实施例还包括所述指定単元304,具体用于指定所述归并集合中的一个执行节点读取所述归并集合中的其他执行节点查询到的或者归并后的数据,使所述指定的一个执行节点对所述读取到的数据进行筛选,得到所述归并集合中的所有执行节点的归并数据。在上述图5 7对应的实施例的基础上,參阅图8,本发明实施例提供的服务器的另ー实施例还包括第三接收单元308,用于接收所述查询任务;拆分单元309,用于将所述第三接收单元308接收到的查询任务拆分成多个查询子任务。在上述图5 7对应的实施例的基础上,本发明实施例提供的服务器的另ー实施例还包括所述获取単元301,还用于获取用于翻页的游标信息;所述发送単元305,还用于向用户端返回所述获取单元获取的用于翻页的游标信息,以使所述最終的归并数据在所述用户端上分页展示。
以上多个实施例提供的服务器,都可以提高数据查询的效率,提高数据处理的实时性。參阅图9,本发明实施例提供的数据查询系统的ー实施例包括调度服务器30、任务服务器40、多个执行节点50、用户端60 ;所述调度服务器30,用于从所述任务服务器40获取查询任务所拆分成的多个查询子任务,并将每个查询子任务分别分配给不同的执行节点;按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的一个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;重复执行所述划分归并集合和指定归并的步骤,直到获取最后一个归并集合中指定的执行节点执行所述归并步骤得到的最后的归并数据;向用户端返回所述最后的归并数据。所述任务服务器40,用于拆分用户端发送的查询任务。所述执行节点50,用于按照调度服务器30的指示查询或者归并数据。所述用户端60,用户发送查询数据,并在调度服务器返回最后的归并数据后,显示所述最后的归并数据。參阅图10,本发明实施例提供的数据查询系统的ー实施例包括调度服务器30、多个执行节点50、用户端60 ;所述调度服务器30,用于获取查询任务后,将所述查询任务拆分成多个查询子任务,并将所述多个查询子任务分配给每个执行节点;按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的ー个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;重复执行所述划分归并集合和指定归并的步骤,直到获取最后一个归并集合中指定的执行节点执行所述归并步骤得到的最后的归并数据;向用户端返回所述最后的归并数据。所述执行节点50,用于按照调度服务器30的指示查询或者归并数据。所述用户端60,用户发送查询数据,并在调度服务器返回最后的归并数据后,显示所述最后的归并数据。本发明实施例提供的数据查询系统,可以提高数据查询的效率,提高数据处理的实时性。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于ー计算机可读存储介质中,存储介质可以包括只读存储器、随机存储器、磁盘或光盘等。以上对本发明实施例所提供的数据查询的方法、设备以及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心 思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种数据查询的方法,其特征在于,包括 获取查询任务所拆分成的多个查询子任务,并将每个查询子任务分别分配给不同的执行节点; 按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的ー个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合; 重复执行所述划分归并集合和指定归并的步骤,直到获取最后的归并数据,所述最后的归并数据为最后一个归并集合中指定的执行节点执行所述归并步骤得到的; 向用户端返回所述最后的归并数据。
2.根据权利要求I所述的方法,其特征在于,所述按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,具体包括 接收执行节点完成所述查询子任务后上报的子任务完成响应,或者,完成数据归并任务后上报的归并任务完成响应; 当上报子任务完成响应的执行节点的数量达到预设数量时,将上报所述子任务完成响应的执行节点划分到一个归并集合;或者, 当上报子任务完成响应的执行节点与上报归并任务完成响应的执行节点的数量之和达到预设数量时,将所述上报子任务完成响应的执行节点与所述上报归并任务完成响应的执行节点划分到一个归并集合。
3.根据权利要求I所述的方法,其特征在于,所述按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,具体包括 接收执行节点发送的归并申请; 当发送所述归并申请的执行节点的数量达到预设的数量时,将发送所述数据归并申请的执行节点划分到一个归并集合。
4.根据权利要求r3任意一项所述的方法,其特征在于,所述指定所述归并集合中的ー个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,具体包括 指定所述归并集合中的一个执行节点读取所述归并集合中的其他执行节点查询到的或者归并后的数据,使所述指定的一个执行节点对所述读取到的数据进行筛选,得到所述归并集合中的所有执行节点的归并数据。
5.根据权利要求r3任意一项所述的方法,其特征在于,所述获取查询任务所拆分成的多个查询子任务之前,还包括 接收所述查询任务,并将所述查询任务拆分成多个查询子任务。
6.根据权利要求f3任意一项所述的方法,其特征在于,还包括 获取用于翻页的游标信息; 向用户端返回所述用于翻页的游标信息,以使所述最終的归并数据在所述用户端上分页展示。
7.一种服务器,其特征在于,包括 获取单元,用于获取查询任务所拆分成的多个查询子任务;分配単元,用于将所述获取单元获取的每个查询子任务分别分配给不同的执行节点;划分单元,用于在所述分配単元分配所述每个查询子任务后,按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合; 指定単元,用于指定所述划分单元划分后的归并集合中的ー个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合; 所述获取単元,还用于在所述划分単元和所述指定単元重复执行所述划分归并集合和所述指定归并的步骤后,获取最后的归并数据,所述最后的归并数据为最后一个归并集合中指定的执行节点执行所述归并步骤得到的; 发送单元,用于向用户端返回所述获取单元获取的最后的归并数据。
8.根据权利要求7所述的服务器,其特征在于,还包括 第一接收单元,用于接收执行节点完成所述查询子任务后上报的子任务完成响应,或者,完成数据归并任务后上报的归并任务完成响应; 所述划分単元,用于当所述第一接收单元接收到的上报子任务完成响应的执行节点的数量达到预设数量时,将上报所述子任务完成响应的执行节点划分到一个归并集合;或者,当上报子任务完成响应的执行节点与上报归并任务完成响应的执行节点的数量之和达到预设数量时,将所述上报子任务完成响应的执行节点与所述上报归并任务完成响应的执行节点划分到一个归并集合。
9.根据权利要求7所述的服务器,其特征在于,还包括 第二接收单元,用于接收执行节点发送的归并申请; 所述划分単元,用于当所述第二接收单元接收到的发送所述归并申请的执行节点的数量达到预设的数量时,将发送所述数据归并申请的执行节点划分到一个归并集合。
10.根据权利要求7 9任意一项所述的服务器,其特征在于,还包括 所述指定単元,具体用于指定所述归并集合中的一个执行节点读取所述归并集合中的其他执行节点查询到的或者归并后的数据,使所述指定的一个执行节点对所述读取到的数据进行筛选,得到所述归并集合中的所有执行节点的归并数据。
11.根据权利要求7 9任意一项所述的服务器,其特征在于,还包括 第三接收单元,用于接收所述查询任务; 拆分单元,用于将所述第三接收单元接收到的查询任务拆分成多个查询子任务。
12.根据权利要求7 9任意一项所述的服务器,其特征在于,还包括 所述获取単元,还用于获取用于翻页的游标信息; 所述发送単元,还用于向用户端返回所述获取单元获取的用于翻页的游标信息,以使所述最終的归并数据在所述用户端上分页展示。
13.ー种数据查询系统,其特征在于,包括调度服务器、任务服务器、多个执行节点、用户端; 所述调度服务器从所述任务服务器获取查询任务所拆分成的多个查询子任务,并将每个查询子任务分别分配给不同的执行节点;按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的ー个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;重复执行所述划分归并集合和指定归并的步骤,直到获取最后一个归并集合中指定的执行节点执行所述归并步骤得到的最后的归并数据;向用户端返回所述最后的归并数据。
14.ー种数据查询系统,其特征在于,包括调度服务器、多个执行节点、用户端; 所述调度服务器获取查询任务后,将所述查询任务拆分成多个查询子任务,并将所述多个查询子任务分配给每个执行节点;按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的一个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;重复执行所述划分归并集合和指定归并的步骤,直到获取最后的归并数据,所述最后的归并数据为最后一个归并集合中指定的执行节点执行所述归并步骤得到的;向所述用户端返回所述最后的归并数据。
全文摘要
本发明公开了一种数据查询的方法,获取查询任务所拆分成的多个查询子任务,并将每个查询子任务分别分配给不同的执行节点;按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的一个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;重复执行所述划分归并集合和指定归并的步骤,直到获取到最后一个归并集合中指定的执行节点执行所述归并步骤得到的最后的归并数据;向用户端返回所述最后的归并数据。可以提高数据查询的实时性。
文档编号G06F17/30GK102779183SQ20121022524
公开日2012年11月14日 申请日期2012年7月2日 优先权日2012年7月2日
发明者严华兵, 刘彬, 唐棠, 李林, 段翰聪 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1