CN102779183A - 数据查询的方法、设备及系统 - Google Patents
数据查询的方法、设备及系统 Download PDFInfo
- Publication number
- CN102779183A CN102779183A CN201210225246XA CN201210225246A CN102779183A CN 102779183 A CN102779183 A CN 102779183A CN 201210225246X A CN201210225246X A CN 201210225246XA CN 201210225246 A CN201210225246 A CN 201210225246A CN 102779183 A CN102779183 A CN 102779183A
- Authority
- CN
- China
- Prior art keywords
- merger
- data
- subtask
- task
- divided
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据查询的方法,获取查询任务所拆分成的多个查询子任务,并将每个查询子任务分别分配给不同的执行节点;按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的一个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;重复执行所述划分归并集合和指定归并的步骤,直到获取到最后一个归并集合中指定的执行节点执行所述归并步骤得到的最后的归并数据;向用户端返回所述最后的归并数据。可以提高数据查询的实时性。
Description
技术领域
本发明涉及数据处理技术,具体涉及数据查询的方法、设备及系统,属于计算机领域。
背景技术
目前,对于海量数据的存储查询方案主要分为集中式和分布式。
其中,在集中式方案中,采用数据库加单存储节点的架构,但随着单存储节点上数据的不断增大,要从海量数据中查询前N条数据,如TOP N查询;与单存储节点配合的传统数据库产品已难以满足实时性需求。在分布式方案中存在多个存储节点,对于大规模数据采用多个存储节点的分布式存储,但分布式存储主要针对的多为网页、图片等等单列数据的存储或查询需求,而对多列数据存储和查询,如TOP N查询需求,还没有可满足实时性需求的成熟解决方案。
现有技术中,要从分散存储的海量数据中做TOP N查询,都要取出大量冗余数据,再通过映射/归并(Map/Reduce)的方式进行排序并筛选结果,这样,当有一个部分的数据读取缓慢时,就要一直等待这部分数据,导致数据查询的实时性差,数据查询效率低下。
发明内容
本发明实施例提供一种数据查询的方法,可以提高数据查询的实时性。本发明实施例还提供了相应的设备及系统。
一方面,本发明实施例提供一种数据查询的方法,包括:
获取查询任务所拆分成的多个查询子任务,并将每个查询子任务分别分配给不同的执行节点;按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的一个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;重复执行所述划分归并集合和指定归并的步骤,直到获取最后的归并数据,所述最后的归并数据为最后一个归并集合中指定的执行节点执行所述归并步骤得到的;
向用户端返回所述最后的归并数据。
另一方面,本发明实施例提供一种服务器,包括:获取单元,用于获取查询任务所拆分成的多个查询子任务;分配单元,用于将所述获取单元获取的每个查询子任务分别分配给不同的执行节点;划分单元,用于在所述分配单元分配所述每个查询子任务后,按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合;指定单元,用于指定所述划分单元划分后的归并集合中的一个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;所述获取单元,还用于在所述划分单元和所述指定单元重复执行所述划分归并集合和所述指定归并的步骤后,获取最后的归并数据,所述最后的归并数据为最后一个归并集合中指定的执行节点执行所述归并步骤得到的;发送单元,用于向用户端返回所述获取单元获取的最后的归并数据。
另一方面,本发明实施例提供一种数据查询系统,包括:调度服务器、任务服务器、多个执行节点、用户端;所述调度服务器从所述任务服务器获取查询任务所拆分成的多个查询子任务,并将每个查询子任务分别分配给不同的执行节点;按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的一个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;重复执行所述划分归并集合和指定归并的步骤,直到获取最后一个归并集合中指定的执行节点执行所述归并步骤得到的最后的归并数据;向用户端返回所述最后的归并数据。
另一方面,本发明实施例还提供一种数据查询系统,包括:调度服务器、多个执行节点、用户端;所述调度服务器获取查询任务后,将所述查询任务拆分成多个查询子任务,并将所述多个查询子任务分配给每个执行节点;按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的一个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;重复执行所述划分归并集合和指定归并的步骤,直到获取最后一个归并集合中指定的执行节点执行所述归并步骤得到的最后的归并数据;向用户端返回所述最后的归并数据。
本发明实施例采用获取查询任务所拆分成的多个查询子任务,并将每个查询子任务分别分配给不同的执行节点;按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的一个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;重复执行所述划分归并集合和指定归并的步骤,直到获取最后一个归并集合中指定的执行节点执行所述归并步骤得到的最后的归并数据;向用户端返回所述最后的归并数据。与现有技术中当有一个部分的数据读取缓慢时,就要一直等待这部分数据相比,本发明实施例提供的数据查询的方法,可以提高数据查询的实时性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中数据查询的方法的一实施例示意图;
图2是本发明实施例中一应用场景实施例示意图;
图3A是本发明实施例中另一应用场景实施例示意图;
图3B是本发明实施例中另一应用场景实施例示意图;
图4是本发明实施例中另一应用场景实施例示意图;
图5是本发明实施例中服务器的一实施例示意图;
图6是本发明实施例中服务器的另一实施例示意图;
图7是本发明实施例中服务器的另一实施例示意图;
图8是本发明实施例中服务器的另一实施例示意图;
图9是本发明实施例中系统的一实施例示意图;
图10是本发明实施例中系统的另一实施例示意图。
具体实施方式
本发明实施例提供一种数据查询的方法,可以提高数据查询的实时性。本发明实施例还提供了响应的设备及系统。以下分别进行详细说明。
本发明实施例主要针对在无共享(share nothing)架构下,针对同构且表间没有直接关系的数据,进行分布式数据筛选、排序、查询;以及针对此数据环境下,随机选取一列进行例如排序、Top N等数据查询操作的实时性问题。
参阅图1,本发明实施例提供的数据查询的方法的一实施例包括:
101、获取查询任务所拆分成的多个查询子任务,并将每个查询子任务分别分配给不同的执行节点。
海量数据一般存储在多个执行节点中,要从海量数据中查询Top N数据时,用户通过用户端输入查询任务后,后台要有一台服务器将所述查询任务拆分成多个查询子任务,子任务的数量与执行节点的数量对应。
调度节点获取查询任务所拆分成的多个查询子任务后,将每个查询子任务分别分配给不同的执行节点。
102、按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的一个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合。
预置的归并策略可以为:接收执行节点完成所述查询子任务后上报的子任务完成响应,或者,完成数据归并任务后上报的归并任务完成响应,当上报子任务完成响应的执行节点的数量达到预设数量时,或者当上报子任务完成响应的执行节点与上报归并任务完成响应的执行节点的数量达到预设数量时,进行数据归并。预设数量可以为大于等于2并且小于执行节点数量的任意数值。
预置的归并策略还可以为:接收执行节点发送的归并申请;当发送所述归并申请的执行节点的数量达到预设的数量时,进行数据归并。预设数量可以为大于等于2并且小于执行节点数量的任意数值。
当没有发生数据归并时可以理解为发生数据归并的次数为0次,也可以将未发生数据归并的执行节点的级别定义为0级。执行过一次数据归并的执行节点的级别定义为1级,执行过几次数据归并,该执行节点为几级。
本发明实施例中提供的方案,执行节点在加入归并集合后,如果没有被指定执行数据归并,那么该执行节点就不能再次被划分到归并集合了,只有被指定归并数据的执行节点才能再次被划分到归并集合,而且如果该执行节点在第一个归并集合中被指定执行数据归并,在第二个归并集合中未被指定执行归并数据,那么该执行节点就不能再第三次被划分到归并集合了。
数据归并是指按照要求从所有执行节点查询的Top N数据中,再选择出TopN数据。
103、是否获取到最后一个归并集合中指定的执行节点执行所述归并步骤得到的最后的归并数据,当是时,执行步骤104,当否时,执行步骤102。
数据归并的过程是在执行节点中进行的,调度节点只需要最后的归并数据,因此数据归并的过程需要进行多次,直到得到最后的归并数据,当未获取最后的归并数据时,需要反复执行步骤102。
104、向用户端返回所述最后的归并数据。
调度节点获得最后的归并数据后,将所述最后的归并数据返回给用户端,供用户端显示。
本发明实施例采用获取查询任务所拆分成的多个查询子任务,并将每个查询子任务分别分配给不同的执行节点;按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的一个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;重复执行所述划分归并集合和指定归并的步骤,直到获取最后一个归并集合中指定的执行节点执行所述归并步骤得到的最后的归并数据;向用户端返回所述最后的归并数据。与现有技术中当有一个部分的数据读取缓慢时,就要一直等待这部分数据相比,本发明实施例提供的数据查询的方法,可以提高数据查询的实时性。
可选地,在上述图1对应的实施例的基础上,所述按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,具体包括:接收执行节点完成所述查询子任务后上报的子任务完成响应,或者,完成数据归并任务后上报的归并任务完成响应;当上报子任务完成响应的执行节点的数量达到预设数量时,将上报所述子任务完成响应的执行节点划分到一个归并集合;或者,当上报子任务完成响应的执行节点与上报归并任务完成响应的执行节点的数量达到预设数量时,将所述上报子任务完成响应的执行节点与所述上报归并任务完成响应的执行节点划分到一个归并集合。
本发明实施例提供的技术方案是,执行节点按照调度节点的任务,完成相应的工作,完成任务后,执行节点上报一个任务完成响应,当调度节点给分配查询子任务后,执行节点完成数据查询工作后,会向调度节点上报一个子任务完成响应,当调度节点分配的是数据归并任务时,执行节点完成归并的任务后,会向调度节点上报一个归并任务完成响应,以便调度节点继续分配其他任务。
可选地,在上述图1对应的实施例的基础上,所述按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,具体包括:接收执行节点发送的归并申请;当发送所述归并申请的执行节点的数量达到预设的数量时,将发送所述数据归并申请的执行节点划分到一个归并集合。
本发明实施例提供的技术方案是,执行节点完成调度节点分配的查询子任务或者归并任务后,主动向调度节点发送归并申请,调度节点在发送所述归并申请的执行节点的数量达到预设的数量时,将发送所述数据归并申请的执行节点划分到一个归并集合。
可选地,在上述图1对应的实施例的基础上,所述指定所述归并集合中的一个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,具体包括:指定所述归并集合中的一个执行节点读取所述归并集合中的其他执行节点查询到的或者归并后的数据,使所述指定的一个执行节点对所述读取到的数据进行筛选,得到所述归并集合中的所有执行节点的归并数据。
本发明实施例提供的技术方案是:调度节点指定归并集合中的一个执行节点完成集合内所有执行节点查询到的数据或者归并后的数据的归并。
为了便于理解,参阅图2,下面以一个具体应用场景为例,对本发明实施例进行详细说明:
例如图2所示,有6个执行节点,分别为:执行节点1~执行节点6,调度节点负责管理执行节点。
调度节点获取查询任务(Top 100)所拆分成的6个查询子任务后,将所述6个查询子任务分别分配给执行节点1~执行节点6的6个执行节点,6个执行节点接收到查询子任务后,分别从各自的数据库子表中读取出Top 100的数据,每个执行节点读取数据的速度可能不同,每个执行节点完成查询子任务后,就可以向调度节点发送子任务完成响应,或者,每个执行节点完成查询子任务后,向调度节点发送归并申请。
本应用场景中以接收到子任务完成响应为例进行说明,调度节点接收到子任务完成响应的数量达到预定数量时,假设预定数量为2,就将发送子任务完成响应的执行节点划分到一个归并集合,如图2中,将执行节点1、执行节点2划分到一个归并集合,将执行节点3、执行节点4划分到一个归并集合,将执行节点5、执行节点6划分到一个归并集合,然后执行执行节点1执行归并任务,执行节点1读取执行节点2查询到的Top 100数据,与自身查询到的Top 100数据进行归并,得到这两个执行节点的Top 100数据。另外两个归并集合中调度节点指定的执行节点分别时执行节点3和执行节点5,归并处理方式与执行节点1所在的归并集合相同。本实施中只是举例,在实际操作中,调度节点根据各执行节点上报的顺序进行归并,并不限于本实施例中的顺序。
执行节点1、3、5执行完0级归并任务后,向调度节点发送归并任务完成响应,调度节点将向上报归并任务完成响应的执行节点3和执行节点5划分到一个归并集合,并执行执行节点5执行数据归并,执行节点5读取执行节点3中的1级归并数据,将执行节点3中的1级归并数据与自身的1级归并数据归并,完成归并后,向调度节点发送归并任务完成响应,调度节点接收到执行节点5上报的归并任务完成响应后,将与执行节点5数据级别最近的执行节点1划分到一个归并集合,并指定执行节点1进行数据归并,执行节点1读取执行节点5中的2级归并数据,与自身的1级归并数据进行归并,得到最后的归并数据,并向调度节点发送归并任务完成响应,调度节点识别到已经没有待归并的数据,确认得到最后的归并数据,从执行节点1获取最后的归并数据,返回给用户端,供用户端显示。
由上可见,由于进行归并的双方并非预先设定好,而是采用流水线方式在任务执行过程中动态调度得到的,这样可避免预先设定归并双方可能导致的某些节点读取数据过慢而使得其它已获取到数据的执行节点无法进行归并。图2中几次归并分别在Node 1、Node 3、Node 5、Node 5和Node1上进行,有效的提高了并发度。
参阅图3A和3B,下面以另一个具体应用场景为了,对本发明实施例进行详细说明:
图3A为现有技术中的非动态分级归并的映射/归并(Map/Reduce)过程:
参见图3A,非动态分级的Map/Reduce开销包括:
开销1:6次map读盘;
开销2:6次map结果集传输到中间结果集存储节点;
开销3:6次中间结果集存盘;
开销4:6次reduce操作读取中间结果集;
开销5:6次中间结果集传输到reduce节点;
开销6:2次reduce中间结果集网络传输;
开销7:2次中间结果集写磁盘过程;
开销8:中间结果集读盘过程;
开销9:2次reduce中间结果集网络传输。
查询开销=6*Io1(6次map读盘)+6*Io2(6次map结果集传输到中间结果集存储节点)+6*Io1(6次中间结果集存盘)+6*Io1(6次reduce操作读取中间结果集)+6*Io2(6次中间结果集传输到reduce节点)+2*Io2(2次reduce中间结果集网络传输)+2*Io1(2次中间结果集写磁盘过程)+2*Io1(中间结果集读盘过程)+2*Io2(2次reduce中间结果集网络传输)。
可以确认,图3A中的非动态分级的Map/Reduce,用于读盘的开销为22次,用于网络传输的开销为16次。
参见图3B,图3B为本发明实施例提供的动态分级的归并过程中的开销包括:
开销1:6次map读盘;
开销2:3次map结果集传输到中间结果集到对应存储节点;
开销3:2次reduce中间结果集网络传输;
查询开销=6*Io1(6次map读盘)+3*Io2(3次map结果集传输到中间结果集到对应存储节点)+2*Io2(2次reduce中间结果集网络传输)。
可以确认,图3B中用于读盘的开销为6次,用于网络传输开销为5次。
从图3A和图3B的对比中可以看出,本发明实施例提供的归并方案大大的提高了数据查询的速度。
可选地,在图1对应的实施例的基础上,所述获取查询任务所拆分成的多个查询子任务之前,还包括:接收所述查询任务,并将所述查询任务拆分成多个查询子任务。
本发明实施例提供的查询任务拆分工作可以由另外的服务器完成,也可以由调度节点来完成,如果没有负责拆分查询任务的服务器,那么调度节点接收到查询任务后,将查询任务拆分成多个查询子任务。
可选地,在图1对应的实施例的基础上,还包括:获取用于翻页的游标信息;向用户端返回所述用于翻页的游标信息,以使所述最终的归并数据在所述用户端上分页展示。
用户端要查询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、配置服务器将最后的归并数据和分页游标发送给用户端,供用户端分页显示。
本技术方案可在流式计算平台中进行数据归并的任务处理的事件路由过程中得到应用。
以Yahoo!的流式计算平台S4为例。在上游基本运算单元(PE,ProcessingElemen)处理完事件(event)后向下游PE输出新的event时,在交流平台(communication layer)中需要做事件路由来选择接收新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接收到的发送所述归并申请的执行节点的数量达到预设的数量时,将发送所述数据归并申请的执行节点划分到一个归并集合。
在上述图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,用户发送查询数据,并在调度服务器返回最后的归并数据后,显示所述最后的归并数据。
本发明实施例提供的数据查询系统,可以提高数据查询的效率,提高数据处理的实时性。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘或光盘等。
以上对本发明实施例所提供的数据查询的方法、设备以及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (14)
1.一种数据查询的方法,其特征在于,包括:
获取查询任务所拆分成的多个查询子任务,并将每个查询子任务分别分配给不同的执行节点;
按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的一个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;
重复执行所述划分归并集合和指定归并的步骤,直到获取最后的归并数据,所述最后的归并数据为最后一个归并集合中指定的执行节点执行所述归并步骤得到的;
向用户端返回所述最后的归并数据。
2.根据权利要求1所述的方法,其特征在于,所述按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,具体包括:
接收执行节点完成所述查询子任务后上报的子任务完成响应,或者,完成数据归并任务后上报的归并任务完成响应;
当上报子任务完成响应的执行节点的数量达到预设数量时,将上报所述子任务完成响应的执行节点划分到一个归并集合;或者,
当上报子任务完成响应的执行节点与上报归并任务完成响应的执行节点的数量之和达到预设数量时,将所述上报子任务完成响应的执行节点与所述上报归并任务完成响应的执行节点划分到一个归并集合。
3.根据权利要求1所述的方法,其特征在于,所述按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,具体包括:
接收执行节点发送的归并申请;
当发送所述归并申请的执行节点的数量达到预设的数量时,将发送所述数据归并申请的执行节点划分到一个归并集合。
4.根据权利要求1~3任意一项所述的方法,其特征在于,所述指定所述归并集合中的一个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,具体包括:
指定所述归并集合中的一个执行节点读取所述归并集合中的其他执行节点查询到的或者归并后的数据,使所述指定的一个执行节点对所述读取到的数据进行筛选,得到所述归并集合中的所有执行节点的归并数据。
5.根据权利要求1~3任意一项所述的方法,其特征在于,所述获取查询任务所拆分成的多个查询子任务之前,还包括:
接收所述查询任务,并将所述查询任务拆分成多个查询子任务。
6.根据权利要求1~3任意一项所述的方法,其特征在于,还包括:
获取用于翻页的游标信息;
向用户端返回所述用于翻页的游标信息,以使所述最终的归并数据在所述用户端上分页展示。
7.一种服务器,其特征在于,包括:
获取单元,用于获取查询任务所拆分成的多个查询子任务;
分配单元,用于将所述获取单元获取的每个查询子任务分别分配给不同的执行节点;
划分单元,用于在所述分配单元分配所述每个查询子任务后,按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合;
指定单元,用于指定所述划分单元划分后的归并集合中的一个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;
所述获取单元,还用于在所述划分单元和所述指定单元重复执行所述划分归并集合和所述指定归并的步骤后,获取最后的归并数据,所述最后的归并数据为最后一个归并集合中指定的执行节点执行所述归并步骤得到的;
发送单元,用于向用户端返回所述获取单元获取的最后的归并数据。
8.根据权利要求7所述的服务器,其特征在于,还包括:
第一接收单元,用于接收执行节点完成所述查询子任务后上报的子任务完成响应,或者,完成数据归并任务后上报的归并任务完成响应;
所述划分单元,用于当所述第一接收单元接收到的上报子任务完成响应的执行节点的数量达到预设数量时,将上报所述子任务完成响应的执行节点划分到一个归并集合;或者,当上报子任务完成响应的执行节点与上报归并任务完成响应的执行节点的数量之和达到预设数量时,将所述上报子任务完成响应的执行节点与所述上报归并任务完成响应的执行节点划分到一个归并集合。
9.根据权利要求7所述的服务器,其特征在于,还包括:
第二接收单元,用于接收执行节点发送的归并申请;
所述划分单元,用于当所述第二接收单元接收到的发送所述归并申请的执行节点的数量达到预设的数量时,将发送所述数据归并申请的执行节点划分到一个归并集合。
10.根据权利要求7~9任意一项所述的服务器,其特征在于,还包括:
所述指定单元,具体用于指定所述归并集合中的一个执行节点读取所述归并集合中的其他执行节点查询到的或者归并后的数据,使所述指定的一个执行节点对所述读取到的数据进行筛选,得到所述归并集合中的所有执行节点的归并数据。
11.根据权利要求7~9任意一项所述的服务器,其特征在于,还包括:
第三接收单元,用于接收所述查询任务;
拆分单元,用于将所述第三接收单元接收到的查询任务拆分成多个查询子任务。
12.根据权利要求7~9任意一项所述的服务器,其特征在于,还包括:
所述获取单元,还用于获取用于翻页的游标信息;
所述发送单元,还用于向用户端返回所述获取单元获取的用于翻页的游标信息,以使所述最终的归并数据在所述用户端上分页展示。
13.一种数据查询系统,其特征在于,包括:调度服务器、任务服务器、多个执行节点、用户端;
所述调度服务器从所述任务服务器获取查询任务所拆分成的多个查询子任务,并将每个查询子任务分别分配给不同的执行节点;按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的一个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;重复执行所述划分归并集合和指定归并的步骤,直到获取最后一个归并集合中指定的执行节点执行所述归并步骤得到的最后的归并数据;向用户端返回所述最后的归并数据。
14.一种数据查询系统,其特征在于,包括:调度服务器、多个执行节点、用户端;
所述调度服务器获取查询任务后,将所述查询任务拆分成多个查询子任务,并将所述多个查询子任务分配给每个执行节点;按照预置的归并策略,将发生数据归并的次数最近的执行节点划分到一个归并集合,并指定所述归并集合中的一个执行节点归并所述归并集合中的其他执行节点查询到的或者归并后的数据,其中,每个归并集合中只有被指定执行数据归并的执行节点才能再次被划分到归并集合;重复执行所述划分归并集合和指定归并的步骤,直到获取最后的归并数据,所述最后的归并数据为最后一个归并集合中指定的执行节点执行所述归并步骤得到的;向所述用户端返回所述最后的归并数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210225246.XA CN102779183B (zh) | 2012-07-02 | 2012-07-02 | 数据查询的方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210225246.XA CN102779183B (zh) | 2012-07-02 | 2012-07-02 | 数据查询的方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102779183A true CN102779183A (zh) | 2012-11-14 |
CN102779183B CN102779183B (zh) | 2015-05-27 |
Family
ID=47124095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210225246.XA Active CN102779183B (zh) | 2012-07-02 | 2012-07-02 | 数据查询的方法、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102779183B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103235835A (zh) * | 2013-05-22 | 2013-08-07 | 曙光信息产业(北京)有限公司 | 用于数据库集群的查询实现方法和装置 |
CN103617268A (zh) * | 2013-12-04 | 2014-03-05 | 中国联合网络通信集团有限公司 | 一种实现大数据处理的方法及装置 |
CN107239536A (zh) * | 2017-05-31 | 2017-10-10 | 北京凤凰理理它信息技术有限公司 | 业务数据查询方法、装置、系统、存储介质及电子设备 |
CN109388632A (zh) * | 2018-10-11 | 2019-02-26 | 山东浪潮通软信息科技有限公司 | 一种分页加载分级数据的实现方法 |
CN109684379A (zh) * | 2018-12-17 | 2019-04-26 | 浩云科技股份有限公司 | 一种多元数据的分析方法及系统 |
CN112395308A (zh) * | 2020-11-05 | 2021-02-23 | 深圳市中博科创信息技术有限公司 | 一种基于hdfs数据库的数据查询方法 |
CN115278560A (zh) * | 2022-08-01 | 2022-11-01 | 中国银行股份有限公司 | 基于5g消息的任务版本跟踪方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080027920A1 (en) * | 2006-07-26 | 2008-01-31 | Microsoft Corporation | Data processing over very large databases |
CN101158952A (zh) * | 2007-11-22 | 2008-04-09 | 中国人民解放军国防科学技术大学 | 基于流处理的生物序列数据库搜索多层次加速方法 |
CN102236851A (zh) * | 2010-04-21 | 2011-11-09 | 百度在线网络技术(北京)有限公司 | 基于用户赋权的多维信用体系实时计算的方法及系统 |
-
2012
- 2012-07-02 CN CN201210225246.XA patent/CN102779183B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080027920A1 (en) * | 2006-07-26 | 2008-01-31 | Microsoft Corporation | Data processing over very large databases |
CN101496012A (zh) * | 2006-07-26 | 2009-07-29 | 微软公司 | 非常大数据库上的数据处理 |
CN101158952A (zh) * | 2007-11-22 | 2008-04-09 | 中国人民解放军国防科学技术大学 | 基于流处理的生物序列数据库搜索多层次加速方法 |
CN102236851A (zh) * | 2010-04-21 | 2011-11-09 | 百度在线网络技术(北京)有限公司 | 基于用户赋权的多维信用体系实时计算的方法及系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103235835A (zh) * | 2013-05-22 | 2013-08-07 | 曙光信息产业(北京)有限公司 | 用于数据库集群的查询实现方法和装置 |
CN103235835B (zh) * | 2013-05-22 | 2017-03-29 | 曙光信息产业(北京)有限公司 | 用于数据库集群的查询实现方法和装置 |
CN103617268A (zh) * | 2013-12-04 | 2014-03-05 | 中国联合网络通信集团有限公司 | 一种实现大数据处理的方法及装置 |
CN103617268B (zh) * | 2013-12-04 | 2017-01-18 | 中国联合网络通信集团有限公司 | 一种实现大数据处理的方法及装置 |
CN107239536A (zh) * | 2017-05-31 | 2017-10-10 | 北京凤凰理理它信息技术有限公司 | 业务数据查询方法、装置、系统、存储介质及电子设备 |
CN109388632A (zh) * | 2018-10-11 | 2019-02-26 | 山东浪潮通软信息科技有限公司 | 一种分页加载分级数据的实现方法 |
CN109684379A (zh) * | 2018-12-17 | 2019-04-26 | 浩云科技股份有限公司 | 一种多元数据的分析方法及系统 |
CN112395308A (zh) * | 2020-11-05 | 2021-02-23 | 深圳市中博科创信息技术有限公司 | 一种基于hdfs数据库的数据查询方法 |
CN115278560A (zh) * | 2022-08-01 | 2022-11-01 | 中国银行股份有限公司 | 基于5g消息的任务版本跟踪方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102779183B (zh) | 2015-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102779183A (zh) | 数据查询的方法、设备及系统 | |
CN103279351B (zh) | 一种任务调度的方法及装置 | |
CN104683488A (zh) | 流式计算系统及其调度方法和装置 | |
CN103345514A (zh) | 大数据环境下的流式数据处理方法 | |
CN110297699A (zh) | 调度方法、调度器、存储介质及系统 | |
CN103530182A (zh) | 一种作业调度方法和装置 | |
CN103984761A (zh) | 海量异构数据的存储方法及系统 | |
CN105765578A (zh) | 分布式文件系统中的数据的并行访问 | |
CN102394903A (zh) | 一种主动重构计算体系构建系统 | |
CN103107941A (zh) | 光缆资源自动调度装置及方法 | |
CN107959695A (zh) | 一种数据传输方法及装置 | |
CN109343945A (zh) | 一种基于合同网算法的多任务动态分配方法 | |
CN107483355B (zh) | 面向数据中心的在线场景低带宽开销流量调度方案 | |
CN103678360A (zh) | 一种分布式文件系统的数据存储方法和装置 | |
CN113886034A (zh) | 任务调度方法、系统、电子设备及存储介质 | |
CN102760073A (zh) | 一种任务调度方法、系统及装置 | |
CN101702209A (zh) | 一种物料的领料方法和装置 | |
CN101616090B (zh) | 一种划分树节点资源方法及装置 | |
CN111044062B (zh) | 路径规划、推荐方法和装置 | |
CN108833294B (zh) | 面向数据中心广域网的低带宽开销的流量调度方法 | |
WO2015055502A2 (en) | Method of partitioning storage in a distributed data storage system and corresponding device | |
CN103617083A (zh) | 存储调度方法和系统、作业调度方法和系统及管理节点 | |
CN105243078A (zh) | 一种文件资源的分发方法、系统和装置 | |
CN105512268A (zh) | 一种数据查询方法及装置 | |
CN105827548A (zh) | 一种资源调度的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |