CN103136364A - 集群数据库系统及其数据查询处理方法 - Google Patents
集群数据库系统及其数据查询处理方法 Download PDFInfo
- Publication number
- CN103136364A CN103136364A CN2013100820434A CN201310082043A CN103136364A CN 103136364 A CN103136364 A CN 103136364A CN 2013100820434 A CN2013100820434 A CN 2013100820434A CN 201310082043 A CN201310082043 A CN 201310082043A CN 103136364 A CN103136364 A CN 103136364A
- Authority
- CN
- China
- Prior art keywords
- query
- sub
- data
- task
- result
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 19
- 230000005540 biological transmission Effects 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 2
- 238000000034 method Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种集群数据库系统的数据查询处理方法,包括:查询服务器在接收到查询任务后,将查询任务解析成至少一个子查询任务;查询服务器将至少一个子查询任务分别发送给多个数据库系统以便并行执行至少一个子查询任务;多个数据库系统中的第一数据库系统在执行子查询任务的同时接收其他数据库系统发送的执行相关联子查询任务而得到的相关联查询结果数据,将接收到的相关联查询结果数据与第一数据库系统执行子查询任务得到的查询结果数据合并成查询中间结果;以及将查询中间结果作为下一子查询任务的输入从而执行下一子查询任务或者将查询中间结果发送给查询服务器。本发明还公开了集群数据库系统。采用本发明,可以减少查询的整体执行时间。
Description
技术领域
本发明涉及计算机数据处理技术领域,更具体地,涉及一种集群数据库系统的数据查询处理方法、一种数据库系统以及一种集群数据库系统。
背景技术
在现有集群数据库系统中,数据通常分布在采用无共享结构(Shared-nothing)互联的多个数据库系统中,多个数据库系统通过构架中间件的方式,对外提供单一的数据库映像。中间件系统接收用户的SQL请求,并在底层多个数据库系统中执行,然后给用户返回最终的结果。因而对用户来说,使用集群并行数据库系统,和使用单台数据库一样。通常在数据库中,查询语句经过解析(包括词法分析、语法分析和语义分解和优化)分解成查询执行计划,查询执行计划可能包含多个查询子任务,最终由查询引擎执行若干子任务获得最终查询结果。在查询引擎执行子任务的过程中会产生若干个中间结果,一些中间结果可能成为其他子任务的输入,其他子任务在这些输入的基础上进一步进行查询得到结果。而在集群数据库系统中,不同数据库系统的中间结果会分发到其他数据库系统中,数据库系统在执行一些子任务时,需要将这些由不同数据库系统得到的中间结果合并作为下一步子任务的输入进而得到查询结果。
图1是现有集群数据库系统在执行查询任务时的处理流程示意图。如图1所示,每个数据库系统会将不同数据库系统得到的子任务结果合并,当有多个子任务时,此部分重复执行。
而且,目前在集群数据库系统中,为了查询处理流程更容易控制,通常采用同步的方式对中间结果进行处理,同步处理可以使查询处理流程简单,容易捕获和处理查询中的异常。然而,在数据库系统在通过子任务查询得到的中间结果环节中,对于每一个中间结果来说,需要等待与其相关的所有子任务查询完成,才能合并各子任务的结果,这种处理方式在等待子任务结果合并时也会浪费较多时间,导致查询速度下降,对用户的响应速度降低。
发明内容
为解决现有技术存在的问题,本发明实施例提供了能够提高数据查询速度的数据查询处理方法、数据库系统以及集群数据库系统。
根据本发明的一方面,提供了一种集群数据库系统的数据查询处理方法,其中所述集群数据库系统包括查询服务器和多个数据库系统,所述数据查询处理方法包括:
步骤A,所述查询服务器在接收到查询任务后,将所述查询任务解析成至少一个子查询任务;
步骤B,所述查询服务器将所述至少一个子查询任务分别发送给所述多个数据库系统以便所述多个数据库系统并行执行所述至少一个子查询任务;
步骤C,所述多个数据库系统中的第一数据库系统在执行子查询任务的同时接收其他数据库系统发送的执行相关联子查询任务而得到的相关联查询结果数据,将所述相关联查询结果数据与所述第一数据库系统执行子查询任务得到的查询结果数据合并成查询中间结果;
步骤D,所述第一数据库系统将所述查询中间结果作为下一子查询任务的输入从而执行所述下一子查询任务或者将所述查询中间结果发送给所述查询服务器。
在可选实施例中,所述数据查询处理方法还包括:所述第一数据库系统在执行一子查询任务后,判断执行该子查询任务而得到的查询结果数据是否属于最终查询结果的数据,如果判断为是,则将所述最终查询结果的数据发送给所述查询服务器;
如果判断为否,则将执行子查询任务得到的查询结果数据发送给其他相关联的数据库系统,其中所述相关联的数据库系统具有与所述第一数据库系统执行的子查询任务相关联的子查询任务。
在可选实施例中,所述第一数据库系统在将其执行子查询任务得到的查询结果数据与其他数据库系统的相关联查询结果数据合并得到的查询中间结果后,判断该查询中间结果是否是最终查询结果的数据,如果是,将该查询中间结果数据发送给查询服务器。
在可选实施例中,步骤C具体包括:所述第一数据库系统在执行第一子查询任务的同时接收其他数据库系统的执行与所述第一子查询任务相关联的子查询任务得到的查询结果数据;所述第一数据库系统将所接收到的与所述第一子查询任务相关联的子查询任务的查询结果数据写入到所述第一子查询任务对应的执行结果文件中,使得所接收的查询结果数据以上下文信息对应的方式与所述第一子查询任务的查询结果数据合并到所述执行结果文件中得到中间查询结果。
在可选实施例中,所述第一数据库系统将所述最终查询结果的数据发送给所述查询服务器包括:当存储在缓存中的最终查询结果的数据达到传送数据量阈值时,将所述最终查询结果的数据发送给所述查询服务器;和,在所述第一数据库系统上的所有子查询任务执行完成后,将剩余在所述缓存中的最终查询结果的数据发送给所述查询服务器。
在可选实施例中,所述第一数据库系统将执行子查询任务得到的查询结果数据发送给其他相关数据库系统包括:当存储在缓存组中的查询结果数据达到传送数据量阈值时,将缓存组中的查询结果数据发送给与所述相关联的数据库系统。
根据本发明的另一方面,还提供了一种数据库系统,包括:
子查询任务执行模块,用于接收查询服务器发送的一个或多个子查询任务,其中所述第一或多个子查询任务由一个查询任务解析而成;以及,分别执行一个或多个子查询任务从而得到查询结果数据;
查询数据合并模块,用于在所述子查询任务执行模块执行子查询任务的同时接收其他数据库系统发送的执行相关联子查询任务而得到的相关联查询结果数据,将所述相关联查询结果数据与所述第一数据库系统执行子查询任务得到的查询结果数据合并成查询中间结果;
查询数据发送模块,用于在所述查询中间结果为最终查询结果的数据时,将所述查询中间结果发送给所述查询服务器。
所述子查询任务执行模块,还用于在所述查询中间结果不为最终查询结果的数据时将所述查询中间结果作为下一子查询任务的输入从而执行所述下一子查询任务。
在可选实施例中,所述查询数据发送模块,还用于在判断出所述子查询任务执行模块执行子查询任务得到的查询结果数据属于最终查询结果的数据时,将该查询结果数据发送给所述查询服务器,以及,在所述子查询任务执行模块执行子查询任务得到的查询结果数据不属于最终查询结果的数据时,将该查询结果数据发送给其他相关联的数据库系统,其中所述相关联的数据库系统执行的子查询任务与所述数据库系统执行的子查询任务相关联。
根据本发明的又一方面,还公开了一种集群数据库系统,所述集群数据库系统包括查询服务器和多个数据库系统,其中:
所述查询服务器用于在接收到查询任务后,将所述查询任务解析成至少一个子查询任务;以及,将所述至少一个子查询任务发送给所述多个数据库系统;
所述多个数据库系统中的各数据库系统用于在接收到子查询任务后执行接收到的子查询任务,其中,第一数据库系统用于执行以下功能:在执行子查询任务的同时接收其他数据库系统发送的执行相关联子查询任务而得到的相关联查询结果数据;将所述相关联查询结果数据与所述第一数据库系统执行子查询任务得到的查询结果数据合并成查询中间结果;以及,将所述查询中间结果作为下一子查询任务的输入从而执行所述下一子查询任务或者将所述查询中间结果发送给所述查询服务器。
在可选实施例中,所述第一数据库系统还用于在执行一子查询任务后,判断执行该子查询任务而得到的查询结果数据是否属于最终查询结果的数据,如果判断为是,则将所述最终查询结果的数据发送给所述查询服务器;如果判断为否,则将执行子查询任务得到的查询结果数据发送给其他相关联的数据库系统,其中所述相关联的数据库系统具有与所述第一数据库系统执行的子查询任务相关联的子查询任务。
在可选实施例中,所述第一数据库系统进一步用于在执行第一子查询任务的同时接收其他数据库系统的执行与所述第一子查询任务相关联的子查询任务得到的查询结果数据;以及,将所接收到的与所述第一子查询任务相关联的子查询任务的查询结果数据写入到所述第一子查询任务对应的执行结果文件中,使得所接收的查询结果数据以上下文信息对应的方式与所述第一子查询任务的查询结果数据合并到所述执行结果文件中得到中间查询结果。
在可选实施例中,所述第一数据库系统将所述最终查询结果的数据发送给所述查询服务器包括:当存储在缓存中的最终查询结果的数据达到传送数据量阈值时,将所述最终查询结果的数据发送给所述查询服务器;和,在所述第一数据库系统上的所有子查询任务执行完成后,将剩余在所述缓存中的最终查询结果的数据发送给所述查询服务器。
在可选实施例中,所述第一数据库系统将执行子查询任务得到的查询结果数据发送给其他相关数据库系统包括:当存储在缓存组中的查询结果数据达到传送数据量阈值时,将缓存组中的查询结果数据发送给与所述相关联的数据库系统。
本发明通过异步查询结构合并的方式,使得在查询子任务的执行过程中可以进行查询结果数据的传送和合并,在一定程度上减少了查询的整体执行时间。此外,还可以立即给用户返回初步的查询结果,减少了查询的响应时间。
附图说明
图1是现有集群数据库系统在执行查询任务时的处理流程示意图。
图2是根据本发明一实施例的集群数据库系统的结构示意图。
图3是根据本发明一实施例的数据库系统的结构示意图。
图4是根据本发明一实施例的集群数据库系统的的数据查询处理方法的流程示意图。
具体实施方式
下面结合附图对本发明进行进一步地详细说明。
图2是根据本发明一实施例的集群数据库系统的结构示意图。如图2所示,该集群数据库系统包括包括查询服务器10和多个数据库系统20。
查询服务器10接收到查询任务后,将所述查询任务解析成至少一个子查询任务。在可选实施例中,子查询任务数可以为1。然后,查询服务器10将该至少一个子查询任务分别发送给多个数据库系统20。
多个数据库系统20在接收到子查询任务后,可以并行执行子查询任务。其中,每个数据库系统可以被分配有一个或多个子查询任务。此外,对于一个数据库系统在执行子查询任务的过程中,有时可能需要利用先前所执行的子查询任务的查询结果和其他数据库系统执行子查询任务得到的查询结果作为输入以执行下一子查询任务。
在一可选实施例中,例如,多个数据库系统中20的第一数据库系统20A执行某一子查询任务(例如子查询任务1)的同时接收其他数据库系统发送的执行相关联子查询任务而得到的相关联查询结果数据,其中,其他数据库系统发送查询结果数据可以在执行某一相关联子查询任务的过程中便发送查询结果数据,因此第一数据库系统在单次中接收到的可能是某一相关联子查询任务的部分查询结果数据。相关联子查询任务是指与第一数据库系统执行的某一子查询任务相关联的子查询任务。然后,第一数据库系统20A可以将其他数据库系统执行相关联子查询任务得到的部分查询结果数据与其自身执行相关子查询任务(例如子查询任务1)得到的部分查询结果数据合并,且可能执行若干次合并操作,最后得到查询中间结果。可选地,第一数据库系统可能将所得到查询中间结果作为下一子查询任务(例如子查询任务2)的输入从而执行所述下一子查询任务。或者,如果该查询中间结果不是用于供后续查询使用,而是用户期望查询到的最终查询结果的部分结果数据,则可以将该查询中间结果发送给所述查询服务器,而不必等待直到将所有数据库系统得到的查询中间结果合并成最终查询结果才发送给查询服务器。
在进一步的可选实施例中,数据库系统在子查询任务执行的过程中,可以将得到的部分查询结果循环往复地以数据块的方式传送给其他相关数据库系统。各数据库系统将接收到的数据块按照上下文信息合并成对应上下文的查询中间结果以供后续查询使用,这样的合并过程会持续到对应子查询任务执行结束,当所有子查询任务完成并且最终查询结果合并完成后,整个查询任务即结束。在可选实施例中,在最终查询结果的合并过程中,可以将已合并的结果分批显示给用户,从而提高查询的响应速度。
在本发明可选实施例中,当某一数据库系统执行其上的子查询任务的查询结果数据与来自其他数据库系统的相关联子查询任务的查询结果数据的合并操作时,其他需要该子查询任务执行结果的数据库系统也会执行这种合并工作。例如,查询服务器将一个查询任务分解为3个查询子任务,子任务3需要1和2的执行结果,数据库系统1、2、3、4需要执行子任务1和2,数据库系统2、3需要执行子任务3;那么数据库系统1、2、3、4并行执行子任务1和2,同时将子任务1和2的执行结果分块发送至数据库系统2和3,数据库系统2接收来自数据库系统1、3、4的子任务1、2的执行结果并和本地执行结果合并成两个对应于子任务1和2的中间结果文件,数据库系统3接收来自数据库系统1、2、4的子任务1、2的执行结果并和本地执行结果合并成对应于子任务1和2的中间结果文件。
在本发明实施例中,数据库系统在执行一查询子任务时通常以线程方式执行,而在执行将查询结果合并时通常采用异步合并方式完成。对于一个查询任务主线程,通常启动若干查询子任务执行线程来执行查询子任务,以及启动一个异步合并线程将接收的关于查询结果的数据合并。
例如,第一数据库系统20A在执行查询子任务过程中,会将已经产生的查询结果数据写入相应的执行结果缓存组,其中,执行结果缓存组与需要获得第一数据库系统20A的查询结果数据的各数据库系统一一对应。在一可选实施例中,第一数据库系统20A可以判断执行结果缓存组中的数据是最终查询结果的数据还是查询中间结果的数据,如果为查询中间结果的数据,则当执行结果缓存组中的数据量达到传送阈值时,将得到的查询结果数据发送给相对应的数据库系统;如果为最终查询结果的数据,则当执行结果缓存组中的数据量达到传送阈值时或者查询结束时,将执行结果缓存组中的数据发送给查询服务器10。查询服务器10可以将接收到的最终查询结果数据分批显示给用户。
进一步地,第一数据库系统20A还会接收其他数据库系统发送的查询数据,第一数据库系统20A可以根据所接收到的查询结果数据和其分配到的查询子任务判断查询结果数据是否属于所分配到的查询子任务,如果是,则将接收到的查询结果数据合并到相对应的查询子任务的执行结果文件中,并在合并执行完成时,发送合并完成指示以通知执行下一个查询子任务。
在可选实施例中,查询服务器10还可以用于接收各数据库系统发送的查询结果数据,将所接收到的查询结果数据进行合并,以及在合并查询结果数据的同时,将已合并的部分最终查询结果显示给用户。这样,可以提高查询处理效率,减少查询所费的时间。
图3是根据本发明一实施例的集群数据库系统中的数据库系统的结构示意图。如图3所示,数据库系统20包括子查询任务执行模块210,用于接收查询服务器发送的一个或多个子查询任务,其中所述第一或多个子查询任务由一个查询任务解析而成;以及,分别执行一个或多个子查询任务从而得到查询结果数据。数据库系统还包括查询数据合并模块230,用于在所述子查询任务执行模块执行子查询任务的同时接收其他数据库系统发送的执行相关联子查询任务而得到的相关联查询结果数据,将所述相关联查询结果数据与所述第一数据库系统执行子查询任务得到的查询结果数据合并成查询中间结果。
该数据库系统还包括查询数据发送模块250,用于在所述查询中间结果为最终查询结果的数据时,将所述查询中间结果发送给所述查询服务器。子查询任务执行模块210,还用于在所述查询中间结果不为最终查询结果的数据时将所述查询中间结果作为下一子查询任务的输入从而执行所述下一子查询任务。
在可选实施例中,查询数据发送模块250,还用于在判断出所述子查询任务执行模块210执行子查询任务得到的查询结果数据属于最终查询结果的数据时,将该查询结果数据发送给所述查询服务器,以及,在所述子查询任务执行模块210执行子查询任务得到的查询结果数据不属于最终查询结果的数据时,将该查询结果数据发送给其他相关联的数据库系统。
需要说明的是,图2中的数据库系统的结构只是用于示例说明,不旨在限制集群数据库系统中的数据库系统的结构。本领域技术人员能够理解,能够实现本发明实施例描述的数据库系统功能的任何结构或内部构造的数据库系统都应包括在本申请的保护范围内。
下面描述本发明实施例的集群数据库系统执行数据查询的一个例子。
当一个数据库系统执行一个查询子任务时,包括以下步骤:
本发明实施例的数据库系统执行异步结果合并时,包括以下步骤:
图4是根据本发明一实施例的集群数据库系统的数据查询处理方法的流程示意图。集群数据库系统包括查询服务器和多个数据库系统。如图4所示,该数据查询处理方法包括:
S401,查询服务器在接收到查询任务后,将所述查询任务解析成至少一个子查询任务。
S402,查询服务器将所述至少一个子查询任务分别发送给所述多个数据库系统以便所述多个数据库系统并行执行所述至少一个子查询任务。
S403,多个数据库系统中的第一数据库系统在执行子查询任务的同时接收其他数据库系统发送的执行相关联子查询任务而得到的相关联查询结果数据。在本发明可选实施例中,查询服务器在分解查询任务的时候,会标记出哪些数据库系统需要合并哪些子任务的执行结果,也会标记出不同数据库系统间需要关联的子任务。
S404,第一数据库系统将接收到的相关联查询结果数据与其执行相关联子查询任务得到的查询结果数据合并成查询中间结果;
S405,第一数据库系统将所述查询中间结果作为下一子查询任务的输入从而执行所述下一子查询任务或者将所述查询中间结果发送给所述查询服务器。
在可选实施例中,该数据查询处理方法还可以包括:
所述第一数据库系统在执行一子查询任务后,判断执行该子查询任务而得到的查询结果数据是否属于最终查询结果的数据,如果判断为是,则将所述最终查询结果的数据发送给所述查询服务器;如果判断为否,则将执行子查询任务得到的查询结果数据发送给其他相关联数据库系统,其中所述相关联数据库系统具有与所述第一数据库系统执行的子查询任务相关联的子查询任务。
在一可选实施例中,步骤S303和S304的具体实施可以是:第一数据库系统在执行第一子查询任务的同时接收其他数据库系统的执行与所述第一子查询任务相关联的子查询任务得到的查询结果数据;以及,将所接收到的与所述第一子查询任务相关联的子查询任务的查询结果数据写入到所述第一子查询任务对应的执行结果文件中,使得所接收的查询结果数据以上下文信息对应的方式与所述第一子查询任务的查询结果数据合并到所述执行结果文件中得到中间查询结果。
在可选实施例中,所述第一数据库系统将所述最终查询结果的数据发送给所述查询服务器包括:当存储在缓存中的最终查询结果的数据达到传送数据量阈值时,将所述最终查询结果的数据发送给所述查询服务器;和,在所述第一数据库系统上的所有子查询任务执行完成后,将剩余在所述缓存中的最终查询结果的数据发送给所述查询服务器。
在可选实施例中,所述第一数据库系统将执行子查询任务得到的查询结果数据发送给其他相关数据库系统包括:当存储在缓存组中的查询结果数据达到传送数据量阈值时,将缓存组中的查询结果数据发送给与其他相关联的数据库系统。
本发明通过异步查询结果数据合并的方式,使得在查询子任务的执行过程中可以进行查询结果数据的传送和合并,在一定程度上减少了查询的整体执行时间。此外,还可以立即给用户返回初步的查询结果,减少了查询的响应时间以及提高了查询的响应效率。
在此提供的算法和实现不限于任何特定的计算机、虚拟系统或者其它设备。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或部件,以及此外可以把它们分成多个子模块或子单元或子部件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本申请的说明书中虽然描述了本发明实施例的大量具体细节,然而,能够理解,本发明实施例并不是必须在所有的具体细节情况下才能实施。在一些实例中,并未详细示出公知的方法、结构和技术,以便于清楚地理解本发明的发明主旨。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种集群数据库系统的数据查询处理方法,其中所述集群数据库系统包括查询服务器和多个数据库系统,所述数据查询处理方法包括:
步骤A,所述查询服务器在接收到查询任务后,将所述查询任务解析成至少一个子查询任务;
步骤B,所述查询服务器将所述至少一个子查询任务分别发送给所述多个数据库系统以便所述多个数据库系统并行执行所述至少一个子查询任务;
步骤C,所述多个数据库系统中的第一数据库系统在执行子查询任务的同时接收其他数据库系统发送的执行相关联子查询任务而得到的相关联查询结果数据,将所述相关联查询结果数据与所述第一数据库系统执行子查询任务得到的查询结果数据合并成查询中间结果;
步骤D,所述第一数据库系统将所述查询中间结果作为下一子查询任务的输入从而执行所述下一子查询任务或者将所述查询中间结果发送给所述查询服务器。
2.根据权利要求1所述的数据查询处理方法,其特征在于,所述数据查询处理方法还包括:
所述第一数据库系统在执行一子查询任务后,判断执行该子查询任务而得到的查询结果数据是否属于最终查询结果的数据,如果判断为是,则将所述最终查询结果的数据发送给所述查询服务器;
如果判断为否,则将执行子查询任务得到的查询结果数据发送给其他相关联的数据库系统,其中所述相关联的数据库系统具有与所述第一数据库系统执行的子查询任务相关联的子查询任务。
3.根据权利要求1所述的数据查询处理方法,其特征在于,步骤C具体包括:
所述第一数据库系统在执行第一子查询任务的同时接收其他数据库系统的执行与所述第一子查询任务相关联的子查询任务得到的查询结果数据;
所述第一数据库系统将所接收到的与所述第一子查询任务相关联的子查询任务的查询结果数据写入到所述第一子查询任务对应的执行结果文件中,使得所接收的查询结果数据以上下文信息对应的方式与所述第一子查询任务的查询结果数据合并到所述执行结果文件中得到中间查询结果。
4.根据权利要求2所述的数据查询处理方法,其特征在于:
所述第一数据库系统将所述最终查询结果的数据发送给所述查询服务器包括:当存储在缓存中的最终查询结果的数据达到传送数据量阈值时,将所述最终查询结果的数据发送给所述查询服务器;和,在所述第一数据库系统上的所有子查询任务执行完成后,将剩余在所述缓存中的最终查询结果的数据发送给所述查询服务器;或者,
所述第一数据库系统将执行子查询任务得到的查询结果数据发送给其他相关数据库系统包括:当存储在缓存组中的查询结果数据达到传送数据量阈值时,将缓存组中的查询结果数据发送给与所述相关联的数据库系统。
5.一种数据库系统,包括:
子查询任务执行模块,用于接收查询服务器发送的一个或多个子查询任务,其中所述第一或多个子查询任务由一个查询任务解析而成;以及,分别执行一个或多个子查询任务从而得到查询结果数据;
查询数据合并模块,用于在所述子查询任务执行模块执行子查询任务的同时接收其他数据库系统发送的执行相关联子查询任务而得到的相关联查询结果数据,将所述相关联查询结果数据与所述第一数据库系统执行子查询任务得到的查询结果数据合并成查询中间结果;
查询数据发送模块,用于在所述查询中间结果为最终查询结果的数据时,将所述查询中间结果发送给所述查询服务器。
所述子查询任务执行模块,还用于在所述查询中间结果不为最终查询结果的数据时将所述查询中间结果作为下一子查询任务的输入从而执行所述下一子查询任务。
6.根据权利要求5所述的数据库系统,其特征在于:
所述查询数据发送模块,还用于在判断出所述子查询任务执行模块执行子查询任务得到的查询结果数据属于最终查询结果的数据时,将该查询结果数据发送给所述查询服务器,以及,在所述子查询任务执行模块执行子查询任务得到的查询结果数据不属于最终查询结果的数据时,将该查询结果数据发送给其他相关联的数据库系统,其中所述相关联的数据库系统执行的子查询任务与所述数据库系统执行的子查询任务相关联。
7.一种集群数据库系统,所述集群数据库系统包括查询服务器和多个数据库系统,其中:
所述查询服务器用于在接收到查询任务后,将所述查询任务解析成至少一个子查询任务;以及,将所述至少一个子查询任务发送给所述多个数据库系统;
所述多个数据库系统中的各数据库系统用于在接收到子查询任务后执行接收到的子查询任务,其中,第一数据库系统用于执行以下功能:
在执行子查询任务的同时接收其他数据库系统发送的执行相关联子查询任务而得到的相关联查询结果数据;
将所述相关联查询结果数据与所述第一数据库系统执行子查询任务得到的查询结果数据合并成查询中间结果;
将所述查询中间结果作为下一子查询任务的输入从而执行所述下一子查询任务或者将所述查询中间结果发送给所述查询服务器。
8.根据权利要求7所述的集群数据库系统,其特征在于,所述第一数据库系统还用于在执行一子查询任务后,判断执行该子查询任务而得到的查询结果数据是否属于最终查询结果的数据,如果判断为是,则将所述最终查询结果的数据发送给所述查询服务器;如果判断为否,则将执行子查询任务得到的查询结果数据发送给其他相关联的数据库系统,其中所述相关联的数据库系统具有与所述第一数据库系统执行的子查询任务相关联的子查询任务。
9.根据权利要求7所述的集群数据库系统,其特征在于,所述第一数据库系统进一步用于在执行第一子查询任务的同时接收其他数据库系统的执行与所述第一子查询任务相关联的子查询任务得到的查询结果数据;以及,将所接收到的与所述第一子查询任务相关联的子查询任务的查询结果数据写入到所述第一子查询任务对应的执行结果文件中,使得所接收的查询结果数据以上下文信息对应的方式与所述第一子查询任务的查询结果数据合并到所述执行结果文件中得到中间查询结果。
10.根据权利要求8所述的集群数据库系统,其特征在于:
所述第一数据库系统将所述最终查询结果的数据发送给所述查询服务器包括:当存储在缓存中的最终查询结果的数据达到传送数据量阈值时,将所述最终查询结果的数据发送给所述查询服务器;和,在所述第一数据库系统上的所有子查询任务执行完成后,将剩余在所述缓存中的最终查询结果的数据发送给所述查询服务器;或者,
所述第一数据库系统将执行子查询任务得到的查询结果数据发送给其他相关数据库系统包括:当存储在缓存组中的查询结果数据达到传送数据量阈值时,将缓存组中的查询结果数据发送给与所述相关联的数据库系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310082043.4A CN103136364B (zh) | 2013-03-14 | 2013-03-14 | 集群数据库系统及其数据查询处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310082043.4A CN103136364B (zh) | 2013-03-14 | 2013-03-14 | 集群数据库系统及其数据查询处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103136364A true CN103136364A (zh) | 2013-06-05 |
CN103136364B CN103136364B (zh) | 2016-08-24 |
Family
ID=48496189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310082043.4A Active CN103136364B (zh) | 2013-03-14 | 2013-03-14 | 集群数据库系统及其数据查询处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103136364B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345500A (zh) * | 2013-06-28 | 2013-10-09 | 曙光信息产业(北京)有限公司 | 数据处理方法以及数据处理装置 |
CN104036007A (zh) * | 2014-06-23 | 2014-09-10 | 北京京东尚科信息技术有限公司 | 一种分布式数据库查询方法及装置 |
CN104504154A (zh) * | 2015-01-14 | 2015-04-08 | 曙光信息产业(北京)有限公司 | 一种数据聚合查询的方法及装置 |
CN104714952A (zh) * | 2013-12-11 | 2015-06-17 | 航天信息股份有限公司 | 一种数据库的多重查询方法 |
CN105373563A (zh) * | 2014-08-28 | 2016-03-02 | 北京奇虎科技有限公司 | 数据库切换方法及装置 |
CN106599310A (zh) * | 2016-12-29 | 2017-04-26 | 中国建设银行股份有限公司 | 基于多数据源场景的并发查询方法和装置 |
CN106844405A (zh) * | 2015-12-07 | 2017-06-13 | 杭州海康威视数字技术股份有限公司 | 数据查询方法和装置 |
CN107077453A (zh) * | 2015-03-24 | 2017-08-18 | 华为技术有限公司 | 用于使用集群缓存进行数据库查询的并行优化的系统和方法 |
CN107273525A (zh) * | 2017-06-23 | 2017-10-20 | 上海携程商务有限公司 | 函数式查询方法及系统 |
CN107870924A (zh) * | 2016-09-26 | 2018-04-03 | 华为技术有限公司 | 查询数据的方法和数据查询系统 |
CN108038253A (zh) * | 2018-01-23 | 2018-05-15 | 北京奇安信科技有限公司 | 一种日志查询的处理方法及装置 |
CN108268512A (zh) * | 2016-12-30 | 2018-07-10 | 中国移动通信集团上海有限公司 | 一种标签查询方法及装置 |
CN108920575A (zh) * | 2018-06-22 | 2018-11-30 | 北京优特捷信息技术有限公司 | 基于动态感知的日志数据分析方法、装置及可读存储介质 |
CN110096553A (zh) * | 2019-03-28 | 2019-08-06 | 北京华成智云软件股份有限公司 | 一种跨数据库的大数据分析系统和分析方法 |
CN113407565A (zh) * | 2021-06-29 | 2021-09-17 | 中国民生银行股份有限公司 | 跨库数据查询方法、装置和设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149749A (zh) * | 2007-10-29 | 2008-03-26 | 浙江大学 | 一种基于语义的异质异构关系型数据库的数据集成方法 |
US20090083276A1 (en) * | 2007-09-26 | 2009-03-26 | Barsness Eric L | Inserting data into an in-memory distributed nodal database |
CN102163195A (zh) * | 2010-02-22 | 2011-08-24 | 北京东方通科技股份有限公司 | 一种基于分布式、异构数据库统一视图的查询优化方法 |
CN102521307A (zh) * | 2011-12-01 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 一种云计算环境下的无共享数据库集群并行查询处理方法 |
US20120191699A1 (en) * | 2011-01-25 | 2012-07-26 | Muthian George | Aggregate function partitions for distributed processing |
-
2013
- 2013-03-14 CN CN201310082043.4A patent/CN103136364B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090083276A1 (en) * | 2007-09-26 | 2009-03-26 | Barsness Eric L | Inserting data into an in-memory distributed nodal database |
CN101149749A (zh) * | 2007-10-29 | 2008-03-26 | 浙江大学 | 一种基于语义的异质异构关系型数据库的数据集成方法 |
CN102163195A (zh) * | 2010-02-22 | 2011-08-24 | 北京东方通科技股份有限公司 | 一种基于分布式、异构数据库统一视图的查询优化方法 |
US20120191699A1 (en) * | 2011-01-25 | 2012-07-26 | Muthian George | Aggregate function partitions for distributed processing |
CN102521307A (zh) * | 2011-12-01 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 一种云计算环境下的无共享数据库集群并行查询处理方法 |
Non-Patent Citations (1)
Title |
---|
宋怀明等: "大规模数据密集型系统中的去重查询优化", 《计算机研究与发展》, 31 December 2010 (2010-12-31) * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345500A (zh) * | 2013-06-28 | 2013-10-09 | 曙光信息产业(北京)有限公司 | 数据处理方法以及数据处理装置 |
CN104714952A (zh) * | 2013-12-11 | 2015-06-17 | 航天信息股份有限公司 | 一种数据库的多重查询方法 |
CN104714952B (zh) * | 2013-12-11 | 2018-07-06 | 航天信息股份有限公司 | 一种数据库的多重查询方法 |
CN104036007B (zh) * | 2014-06-23 | 2017-12-12 | 北京京东尚科信息技术有限公司 | 一种分布式数据库查询方法及装置 |
CN104036007A (zh) * | 2014-06-23 | 2014-09-10 | 北京京东尚科信息技术有限公司 | 一种分布式数据库查询方法及装置 |
CN105373563A (zh) * | 2014-08-28 | 2016-03-02 | 北京奇虎科技有限公司 | 数据库切换方法及装置 |
CN104504154A (zh) * | 2015-01-14 | 2015-04-08 | 曙光信息产业(北京)有限公司 | 一种数据聚合查询的方法及装置 |
CN104504154B (zh) * | 2015-01-14 | 2018-01-16 | 曙光信息产业(北京)有限公司 | 一种数据聚合查询的方法及装置 |
CN107077453A (zh) * | 2015-03-24 | 2017-08-18 | 华为技术有限公司 | 用于使用集群缓存进行数据库查询的并行优化的系统和方法 |
CN107077453B (zh) * | 2015-03-24 | 2020-11-06 | 华为技术有限公司 | 用于使用集群缓存进行数据库查询的并行优化的系统和方法 |
CN106844405A (zh) * | 2015-12-07 | 2017-06-13 | 杭州海康威视数字技术股份有限公司 | 数据查询方法和装置 |
CN106844405B (zh) * | 2015-12-07 | 2019-10-22 | 杭州海康威视数字技术股份有限公司 | 数据查询方法和装置 |
CN107870924A (zh) * | 2016-09-26 | 2018-04-03 | 华为技术有限公司 | 查询数据的方法和数据查询系统 |
CN106599310A (zh) * | 2016-12-29 | 2017-04-26 | 中国建设银行股份有限公司 | 基于多数据源场景的并发查询方法和装置 |
CN108268512A (zh) * | 2016-12-30 | 2018-07-10 | 中国移动通信集团上海有限公司 | 一种标签查询方法及装置 |
CN107273525A (zh) * | 2017-06-23 | 2017-10-20 | 上海携程商务有限公司 | 函数式查询方法及系统 |
CN108038253A (zh) * | 2018-01-23 | 2018-05-15 | 北京奇安信科技有限公司 | 一种日志查询的处理方法及装置 |
CN108038253B (zh) * | 2018-01-23 | 2021-03-12 | 奇安信科技集团股份有限公司 | 一种日志查询的处理方法及装置 |
CN108920575A (zh) * | 2018-06-22 | 2018-11-30 | 北京优特捷信息技术有限公司 | 基于动态感知的日志数据分析方法、装置及可读存储介质 |
CN110096553A (zh) * | 2019-03-28 | 2019-08-06 | 北京华成智云软件股份有限公司 | 一种跨数据库的大数据分析系统和分析方法 |
CN110096553B (zh) * | 2019-03-28 | 2021-05-18 | 北京华成智云软件股份有限公司 | 一种跨数据库的大数据分析系统和分析方法 |
CN113407565A (zh) * | 2021-06-29 | 2021-09-17 | 中国民生银行股份有限公司 | 跨库数据查询方法、装置和设备 |
CN113407565B (zh) * | 2021-06-29 | 2024-01-30 | 中国民生银行股份有限公司 | 跨库数据查询方法、装置和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103136364B (zh) | 2016-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103136364B (zh) | 集群数据库系统及其数据查询处理方法 | |
US20200226183A1 (en) | Mixed mode erp process executing a mapreduce task | |
US8548986B2 (en) | Adaptive row-batch processing of database data | |
CN108776710B (zh) | 一种数据库数据的并发装载方法及装置 | |
CN111949454B (zh) | 一种基于微服务组件的数据库系统及相关方法 | |
US8990216B2 (en) | Scalable index build techniques for column stores | |
CN105677812A (zh) | 一种数据查询方法及数据查询装置 | |
CN103123652A (zh) | 数据查询方法和集群数据库系统 | |
CN105550274B (zh) | 双副本并行数据库的查询方法和装置 | |
CA2754159A1 (en) | Systems and methods for complex event processing of vehicle-related information | |
JP5730386B2 (ja) | 計算機システム及び並列分散処理方法 | |
CN114756629B (zh) | 基于sql的多源异构数据交互分析引擎及方法 | |
Rehrmann et al. | OLTPshare: The case for sharing in OLTP workloads | |
WO2015094269A1 (en) | Hybrid flows containing a continuous flow | |
CN108009270A (zh) | 一种基于分布式内存计算的文本检索方法 | |
US20150269234A1 (en) | User Defined Functions Including Requests for Analytics by External Analytic Engines | |
US10970295B2 (en) | Collecting statistics in unconventional database environments | |
CN107818181A (zh) | 基于Plcient交互式引擎的索引方法及其系统 | |
CN107798111B (zh) | 一种分布式环境中大批量导出数据的方法 | |
AU2019241002B2 (en) | Transaction processing method and system, and server | |
CN113568931A (zh) | 一种数据访问请求的路由解析系统及方法 | |
US10740311B2 (en) | Asynchronous index loading for database computing system startup latency managment | |
WO2024041191A1 (zh) | 数据处理方法及装置 | |
CN106502842A (zh) | 数据恢复方法及系统 | |
CN107784032A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220728 Address after: 100089 building 36, courtyard 8, Dongbeiwang West Road, Haidian District, Beijing Patentee after: Dawning Information Industry (Beijing) Co.,Ltd. Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd. Address before: 100193 No. 36 Building, No. 8 Hospital, Wangxi Road, Haidian District, Beijing Patentee before: Dawning Information Industry (Beijing) Co.,Ltd. |