CN103123652A - 数据查询方法和集群数据库系统 - Google Patents

数据查询方法和集群数据库系统 Download PDF

Info

Publication number
CN103123652A
CN103123652A CN2013100820631A CN201310082063A CN103123652A CN 103123652 A CN103123652 A CN 103123652A CN 2013100820631 A CN2013100820631 A CN 2013100820631A CN 201310082063 A CN201310082063 A CN 201310082063A CN 103123652 A CN103123652 A CN 103123652A
Authority
CN
China
Prior art keywords
query
query task
data
task
database
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.)
Pending
Application number
CN2013100820631A
Other languages
English (en)
Inventor
宋怀明
狄静舒
王勇
苗艳超
刘新春
邵宗有
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dawning Information Industry Beijing Co Ltd
Original Assignee
Dawning Information Industry Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dawning Information Industry Beijing Co Ltd filed Critical Dawning Information Industry Beijing Co Ltd
Priority to CN2013100820631A priority Critical patent/CN103123652A/zh
Publication of CN103123652A publication Critical patent/CN103123652A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种集群数据库系统,包括查询解析器和多个数据库节点。查询解析器,用于对接收到的查询请求进行解析,分解成查询任务流并产生执行规则;以及,根据执行规则将查询任务流中的一个或多个查询任务分配给相应的各数据库节点。数据库节点,用于在接收到所分配的查询任务后,根据执行规则与其他相关联数据库节点一起并行执行相对应的查询任务;以及,将其执行某一查询任务得到的查询数据与其他相关联数据库节点执行同一查询任务得到的查询数据合并得到查询结果数据,该数据是与查询请求对应的最终查询结果数据,或者,是用作执行下一查询任务的输入数据以便多个数据库节点根据执行规则执行完查询任务流后得到最终查询结果数据。

Description

数据查询方法和集群数据库系统
技术领域
本发明涉及数据处理技术领域,更具体地,涉及一种数据查询方法、集群数据库系统和数据库节点。
背景技术
消息传递接口(Message Passing Interface,MPI)是一种消息传递的编程模型,是一种并行程序编程的标准和规范,广泛的应用于高性能计算和并行计算等领域。MPI具有较高的通讯性能,较好的程序可移植性和强大的功能。目前MPI的实现主要有MPICH(由Argonne国家实验室和密西西比州立大学联合开发),OpenMP(由OpenMP Architecture Review Board带领提出的)和LAM(Local Area Multicomputer,由俄亥俄州立大学开发的用于异构计算的MPI包)等。采用MPI运行的并行程序,可以方便地进行进程间通讯和同步控制,而不必关心通信的细节,因而是一种常用的并行程序编程和运行框架。
在集群数据库系统中,数据通常分布在采用无共享结构(Shared-nothing)互联的多个数据库系统中,多个数据库系统通过构架中间件的方式,对外提供单一的数据库映像。中间件系统接收用户的SQL(Structured Query Language,结构化查询语言)请求,并在底层多个数据库中执行,然后给用户返回最终的结果。因而对用户来说,使用集群并行数据库系统,和使用单台数据库一样。通常在数据库中,查询语句经过解析,包括词法分析,语法分析和语义分解和优化,分解成查询执行计划,最终由查询引擎执行获得查询结果。而在集群数据库系统中,由于查询执行需要涉及到多台数据库服务器,因此必须对多台机器的并行执行,数据传输和同步进行控制。
在面对数据库集群的应用系统中,如果采用目前主流的两阶段查询处理方式(即先从各个数据库中进行数据抽取,然后放到一台数据库系统中进行集中查询处理)存在以下几个问题:
(1)如果数据量足够大,则抽取后的数据在单个数据节点无法存放。因此这种先抽取再进行查询计算的方式,不适合于数据量巨大的应用场景。
(2)对于全局的统计和排序类的查询,采用两阶段查询处理法,在第二阶段结果合并计算时,无法充分利用多节点之间的并行计算能力。
(3)两阶段查询处理的方式,无法解决复杂查询的处理,比如分布在多个数据库节点上的大表的关联查询和大表的嵌套查询问题。
发明内容
为解决现有技术存在的问题,本发明提供了一种适于在数据量巨大的情况下使用的数据查询方法、集群数据库系统以及数据库节点。
根据本发明的一方面,提供了一种数据查询方法,包括:
查询解析器对接收到的查询请求进行解析,分解成查询任务流并产生查询任务流的执行规则;
所述查询解析器根据所述查询任务流的执行规则将所述查询任务流中的一个或多个查询任务分配给相应的各数据库节点;
各数据库节点接收到所分配的查询任务后,根据所述查询任务流的执行规则并行执行对应的查询任务,并且每个数据库节点会将其执行某一查询任务得到的查询数据与其他相关联数据库节点执行同一查询任务得到的查询数据合并得到查询结果数据,该查询结果数据是与所述查询请求对应的最终查询结果数据,或者,是用作执行下一查询任务的输入数据以便所述多个数据库节点根据所述查询任务流的执行规则执行完所述查询任务流后得到与所述查询请求对应的最终查询结果数据
根据本发明的另一方面,还提供了一种集群数据库系统,包括查询解析器和多个数据库节点,其中:
所述查询解析器,用于对接收到的查询请求进行解析,分解成查询任务流并产生查询任务流的执行规则;以及,根据所述查询任务流的执行规则将所述查询任务流中的一个或多个查询任务分配给相应的各数据库节点;
所述数据库节点,用于执行以下功能:接收到所分配的查询任务后,根据所述查询任务流的执行规则与其他相关联数据库节点一起并行执行相对应的查询任务;以及,将其执行某一查询任务得到的查询数据与其他相关联数据库节点执行同一查询任务得到的查询数据合并得到查询结果数据,该查询结果数据是与所述查询请求对应的最终查询结果数据,或者,是用作执行下一查询任务的输入数据以便所述多个数据库节点根据所述查询任务流的执行规则执行完所述查询任务流后得到与所述查询请求对应的最终查询结果数据。
根据本发明的又一方面,还提供了一种数据库节点,包括:
查询执行模块,用于接收查询解析器分配的查询任务,其中所述查询任务是所述查询解析器在接收到查询请求后所分解的查询任务流中的查询任务;以及,根据来自所述查询解析器的查询任务流的执行规则与其他相关联数据库节点一起并行执行相对应的查询任务;
收发模块,用于将执行所述查询任务得到的查询数据发送给其他相关联数据库节点,以及,接收其他相关联数据库节点发送的执行与所述查询任务相同的查询任务得到的查询数据;
数据合并模块,用于将执行所述查询任务得到的查询数据与其他相关联数据库节点的执行与所述查询任务相同的查询任务得到的查询数据合并得到查询结果数据,该查询结果数据是与所述查询请求对应的查询结果数据,或者,是用作执行下一查询任务的输入数据以便所述数据库节点或者其他数据库节点根据所述查询任务流的执行规则执行完所述查询任务流后得到与所述查询请求对应的最终查询结果数据。
本发明通过利用多个数据库节点并行处理一个查询请求,提高了数据查询速度,并且可以实现对分布在多个数据库节点上的数据构成的大数据表的关联查询和/或嵌套查询。
附图说明
图1是根据本发明一实施例的数据查询方法的流程示意图。
图2表示了一种并行查询任务流的示意图。
图3是根据本发明一实施例的集群数据库系统的结构示意图。
图4是图3示出的集群数据库系统中的数据库节点实施例的结构示意图。
具体实施方式
下面结合附图对本发明进行进一步地详细说明。
图1是根据本发明一实施例的数据查询方法的流程示意图。如图1所示,该数据查询方法包括以下步骤:
S101,查询解析器对接收到的查询请求进行解析,分解成查询任务流并产生查询任务流的执行规则。
S102,查询解析器根据所述查询任务流的执行规则将所述查询任务流中的一个或多个查询任务分配给相应的各数据库节点。
S103,数据库节点接收到所分配的查询任务后,根据所述查询任务流的执行规则与其他相关联数据库节点一起并行执行相对应的查询任务,从而得到相应的查询数据。
S104,数据库节点将其执行当前查询任务得到的查询数据与其他相关联数据库节点执行同一查询任务得到的查询数据合并得到查询结果数据。
S105,数据库节点判断当前执行的查询任务是否是查询任务流中的最后查询任务,如果是,执行步骤S106;如果否,执行步骤S107。
S106,提示已获得与查询请求对应的最终查询结果数据。
S107,将执行步骤S104得到的查询结果数据作为执行查询任务流中的下一查询任务的输入数据。这样,多个数据库节点根据所述查询任务流的执行规则执行完所述查询任务流后得到与所述查询请求对应的最终查询结果数据。
根据本发明另一实施例的数据查询方法中,查询请求可以是用户提交的SQL请求。然后,查询解析器将用户提交的SQL请求分解成可在多台服务器上并行执行的查询任务流。
查询解析器对SQL查询请求进行解析,分解成查询任务流并产生查询任务流的执行规则包括,SQL词法分析、SQL语法分析、SQL语义分解。
在本发明可选实施例中,对SQL查询语句进行解析时,可以根据SQL的关键词进行分类,从而得到生成并行查询任务流的一系列的规则。
在本发明可选实施例中,每个查询任务可以用如下的四元组表示:{查询算子OP;源节点列表SV;目的节点列表DV;数据分派方法DD}。其含义是指在SV中所列的源节点上并行地执行查询算子OP(也称为查询算法),执行的结果以DD的方法分派到DV中所列的目的节点上。查询任务流是由多个查询任务构成,查询任务流能够体现各查询任务之间执行的顺序关系、同步方式以及数据传输关系。
在数据库集群系统中,每个查询任务的查询算子OP是一个可以在单个数据库节点上独立进行的运算。通常可以以一个SQL语句的形式描述。执行结果的分派方法可以是:全拷贝、Hash分派和Range分派三种。而且,查询任务流在执行过程中,可以通过MPI进程间的集合操作,进行多数据库节点间的同步控制。
图2表示了一种并行查询任务流的示意图。如图2所示,该并行查询任务流包括5个查询任务,例如查询任务1、2、3、4和5,它们分别具有相对应的查询算子OP1、OP2、OP3、OP4和OP5。如下所示的表1是图2中各查询任务的描述。
表1任务流图2中的查询任务描述
Figure BDA00002919383700051
对于图2示出的并行查询任务流,执行流程如下:
1)在所有数据库节点上并行执行任务1和任务2,执行完成之后需要一次所有数据库节点的同步;
2)接着在所有数据库节点上并行执行任务3,执行完任务3之后也需要一次所有数据库节点的同步;
3)然后,在所有数据库节点上并行任务4,执行完任务4之后也需要一次所有数据库节点的同步;
4)在数据库节点0上执行任务5,在执行完成后返回最终结果。
在本发明可选实施例中,每个数据库节点上存储有一部分数据,各数据库节点上存储的数据可以共同构成一张数据表。由于每个数据库节点上存储的数据不相同,因此,即使数据库节点1、2、3和4都执行查询任务1,但数据库节点执行查询任务1后得到的查询数据相互并不相同。因此,需要每个数据库节点在执行查询任务1时,将执行查询任务1得到的相应查询数据发送给其他执行查询任务1的数据库节点,以及接收其他数据库节点执行查询任务1得到的查询数据。而且,每个数据库节点还会将其执行查询任务1得到的查询数据以及其他数据库节点执行查询任务1得到的查询数据合并,从而得到执行查询任务1的查询结果数据。如图2所示,执行查询任务1得到的查询结果数据以及执行查询任务2得到的查询结果数据作为执行查询任务3的输入数据;执行查询任务3得到的查询结果数据作为执行查询任务4的输入数据;执行查询任务4得到的查询结果数据作为执行查询任务5的输入数据。执行查询任务5得到的查询结果数据是与用户输入的查询请求对应的最终查询结果数据,而执行查询任务1、2、3和4得到的相应查询结果数据都应被认为是整个查询过程中的中间查询结果数据。
在本发明可选实施例中,对于集群数据库系统中的多个数据库节点的全局操作(如全局的统计分析、关联查询、嵌套查询等),需要对数据进行重新划分后再进行计算。一个复杂的查询通常可能包括多次的数据重新划分。查询解析器在工作时,根据多个数据库节点中各个数据表的数据量和操作计算类型确定是否需要进行数据的重新划分。由于数据分派在集群环境下是一个开销较大的操作,因此,查询解析器设置数据重新分派的规则必须满足以下原则中的一个:
原则1:对数据量大的表(即数据量超过设定的阈值,分布在多个数据库节点上)进行统计查询时,进行数据重分派;
原则2:对分布在不同数据库节点上的数据进行关联查询时,进行数据重新分派;
原则3:对分布在不同数据库节点上的数据进行嵌套查询时,进行数据重新分派。
然后将查询解析器分解的并行查询任务流发送到多个数据库节点上并行执行,以得到最终的查询结果。
各数据库节点在执行并行查询任务流时,可以是在与该并行查询任务流相关联的每个数据库节点上运行一个MPI进程,这些MPI进程顺序地接收并行查询任务并执行,其中,每个MPI进程包括执行查询任务流并发送查询结果数据的主线程以及数据接收线程。
在本发明实施例中,每个MPI进程执行查询任务并发送查询结果数据的流程如下:
Figure BDA00002919383700071
Figure BDA00002919383700081
在本发明实施例中,数据接收线程负责每个查询任务结果的接收和合并,包括:
Figure BDA00002919383700082
在本发明实施例中,对于上述的主线程,查询算子执行完成后,该主线程作为数据发送线程,同时创建一个数据接收线程,两个线程同时执行。在可选实施例中,由于需要传输的中间查询结果数据通常较大,因此在查询数据收发时,需要对查询数据进行分块,按照固定大小进行传输,提高数据传输的性能。通常来讲,只有最后发送的一批数据不是固定大小。
在本发明一可选实施例中,接收线程在接收到查询任务的查询数据后,将数据写入本地文件,当对执行查询任务得到的查询数据进行合并时,将这些文件直接组织成数据库的外部表。数据库外部表的方式避免了数据入库时的大量日志操作,从而可以将中间查询结果数据的写入性能提高一个数量级。
在本发明又一可选实施例中,首先需要完成单个数据库节点的内部查询数据的合并,例如采用pthread_join的方式合并线程;在内部查询数据的合并完成之后,才进行节点之间的MPI同步,例如采用MPI_Barrier的方式同步。
在本发明优选实施例中,还可以采用断点执行的方式提高执行的可靠性。由于查询任务的中间结果采用文件的方式保存,在节点发生故障时,可以采用在该节点重新启动进程的方式,从上一个执行断点(即上一个任务保存的文件处)继续执行即可,可大幅提高整个系统的可靠性。
图3是根据本发明一实施例的集群数据库系统的结构示意图。如图3所示,该集群数据库系统包括查询解析器10和多个数据库节点20,例如图3所示出的20A、20B和20C。
在本发明实施例中,查询解析器10,用于对接收到的查询请求进行解析,分解成查询任务流并产生查询任务流的执行规则;以及,根据所述查询任务流的执行规则将所述查询任务流中的一个或多个查询任务分配给相应的各数据库节点。
例如,查询解析器10根据查询任务流的执行规则将所述查询任务流中的第一查询任务分配给执行第一查询任务的各数据库节点以及将其他查询任务分配给执行所述其他查询任务的各数控库节点。
在本发明可选实施例中,查询任务流的执行规则包括为所述一个或多个查询任务指定执行的数据库节点,以及,所述一个或多个查询任务之间被执行的顺序关系。例如,每个查询任务可以用如下的四元组表示:{查询算子OP;源节点列表SV;目的节点列表DV;数据分派方法DD}。
多个数据库节点中的每一数据库节点20,用于接收到所分配的查询任务后,根据所述查询任务流的执行规则与其他相关联数据库节点一起并行执行相对应的查询任务;以及,将其执行某一查询任务得到的查询数据与其他相关联数据库节点执行同一查询任务得到的查询数据合并得到查询结果数据,该查询结果数据是与所述查询请求对应的最终查询结果数据,或者,是用作执行下一查询任务的输入数据以便所述多个数据库节点根据所述查询任务流的执行规则执行完所述查询任务流后得到与所述查询请求对应的最终查询结果数据。
例如,数据库节点20A在接收到第一查询任务后,与相关联数据库节点20B和20C一起并行执行所述第一查询任务,并且从数据库节点20A上存储的数据中得到相应的查询数据。然后,该数据库节点20A会将执行所述第一查询任务得到的查询数据发送给相关联数据库节点20B和20C,以及,接收相关联数据库节点20B和20C发送的执行所述第一查询任务得到的查询数据。接着,该数据库节点20A将执行所述第一查询任务得到的查询数据与相关联数据节点20B和20C执行所述第一查询任务得到的查询数据合并得到所述第一查询任务的查询结果数据,并作为执行所述第一查询任务后的下一查询任务的输入数据,例如,第二查询任务。然后,被指定执行第二查询任务的数据库节点在获取到第一查询任务的查询结果数据后执行第二查询任务。例如可以继续是节点20A、20B和20C,或者,可以是它们中两个)
在本发明一可选实施例中,执行第一查询任务的每个数据库节点还用于根据所述第一查询任务中携带的目标数据库节点信息和数据分配方法将所述第一查询任务的查询结果数据分派给相应的目标数据库节点。
在本发明另一可选实施例中,执行第一查询任务的各数据库节点还用于在并行执行第一查询任务且合并得到所述第一查询任务的查询结果数据后,在各数控库节点之间进行一次同步。
图4是图3示出的集群数据库系统中的数据库节点实施例的结构示意图。如图4所示,该数据库节点20包括:
查询执行模块210,用于接收查询解析器分配的查询任务,其中所述查询任务是所述查询解析器在接收到查询请求后所分解的查询任务流中的查询任务;以及,根据来自所述查询解析器的查询任务流的执行规则与其他相关联数据库节点一起并行执行相对应的查询任务;
收发模块230,用于将执行所述查询任务得到的查询数据发送给其他相关联数据库节点,以及,接收其他相关联数据库节点发送的执行与所述查询任务相同的查询任务得到的查询数据;
数据合并模块250,用于将执行所述查询任务得到的查询数据与其他相关联数据库节点的执行与所述查询任务相同的查询任务得到的查询数据合并得到查询结果数据,该查询结果数据是与所述查询请求对应的查询结果数据,或者,是用作执行下一查询任务的输入数据以便所述数据库节点或者其他数据库节点根据所述查询任务流的执行规则执行完所述查询任务流后得到与所述查询请求对应的最终查询结果数据。
本发明实施例的集群数据库系统的进一步详细描述可参见本发明实施例的关于数据查询方法的描述。
由于本发明的数据查询方法利用多个数据库节点的并行度,因此与两阶段的查询处理方法相比,查询性能可以提升50%-400%。
在此提供的算法和实现不限于任何特定的计算机、虚拟系统或者其它设备。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或部件,以及此外可以把它们分成多个子模块或子单元或子部件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本申请的说明书中虽然描述了本发明实施例的大量具体细节,然而,能够理解,本发明实施例并不是必须在所有的具体细节情况下才能实施。在一些实例中,并未详细示出公知的方法、结构和技术,以便于清楚地理解本发明的发明主旨。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据查询方法,包括:
查询解析器对接收到的查询请求进行解析,分解成查询任务流并产生查询任务流的执行规则;
所述查询解析器根据所述查询任务流的执行规则将所述查询任务流中的一个或多个查询任务分配给相应的各数据库节点;
各数据库节点接收到所分配的查询任务后,根据所述查询任务流的执行规则并行执行对应的查询任务,并且每个数据库节点会将其执行某一查询任务得到的查询数据与其他相关联数据库节点执行同一查询任务得到的查询数据合并得到查询结果数据,该查询结果数据是与所述查询请求对应的最终查询结果数据,或者,是用作执行下一查询任务的输入数据以便所述多个数据库节点根据所述查询任务流的执行规则执行完所述查询任务流后得到与所述查询请求对应的最终查询结果数据。
2.根据权利要求1的数据查询方法,其特征在于,所述查询任务流的执行规则包括为所述一个或多个查询任务指定执行的数据库节点,以及所述一个或多个查询任务之间被执行的顺序关系。
3.根据权利要求2的数据查询方法,其特征在于,所述数据查询方法还包括:
所述查询解析器还用于根据所述查询任务流的执行规则将所述查询任务流中的第一查询任务分配给执行所述第一查询任务的各数据库节点以及将其他查询任务分配给执行所述其他查询任务的各数据库节点;
执行所述第一查询任务的各数据库节点并行执行所述第一查询任务,并从其存储的数据中获得相应的查询数据;
执行所述第一查询任务的各数据库节点将执行所述第一查询任务得到的查询数据发送给其他相关联数据库节点,以及,接收其他相关联数据库节点发送的执行所述第一查询任务得到的查询数据;
执行所述第一查询任务的各数据库节点将其执行所述第一查询任务得到的查询数据与其他相关联数据节点执行所述第一查询任务得到的查询数据合并得到第一查询任务的查询结果数据,并作为执行所述第一查询任务后的下一查询任务的数据库节点的输入数据。
4.根据权利要求1-3任一项所述的数据查询方法,其特征在于,每个查询任务通过以下方式表示:{查询算子;执行查询任务的数据库节点指示信息;目标数据库节点指示信息;数据分派方法}。
5.根据权利要求4所述的数据查询方法,其特征在于,所述数据查询方法还包括:
执行所述第一查询任务的各数据库节点根据所述第一查询任务中携带的目标数据库节点信息和数据分配方法将所述第一查询任务的查询结果数据分派给相应的目标数据库节点;和/或,
执行所述第一查询任务的各数据库节点在并行执行第一查询任务且合并得到所述第一查询任务的查询结果数据后,在各数控库节点之间进行一次同步。
6.一种集群数据库系统,包括查询解析器和多个数据库节点,其中:
所述查询解析器,用于对接收到的查询请求进行解析,分解成查询任务流并产生查询任务流的执行规则;以及,根据所述查询任务流的执行规则将所述查询任务流中的一个或多个查询任务分配给相应的各数据库节点;
所述数据库节点,用于执行以下功能:
接收到所分配的查询任务后,根据所述查询任务流的执行规则与其他相关联数据库节点一起并行执行相对应的查询任务;以及,
将其执行某一查询任务得到的查询数据与其他相关联数据库节点执行同一查询任务得到的查询数据合并得到查询结果数据,该查询结果数据是与所述查询请求对应的最终查询结果数据,或者,是用作执行下一查询任务的输入数据以便所述多个数据库节点根据所述查询任务流的执行规则执行完所述查询任务流后得到与所述查询请求对应的最终查询结果数据。
7.根据权利要求6的集群数据库系统,其特征在于,
所述查询任务流的执行规则包括为所述一个或多个查询任务指定执行的数据库节点,以及,所述一个或多个查询任务之间被执行的顺序关系;
所述查询解析器还用于根据所述查询任务流的执行规则将所述查询任务流中的第一查询任务分配给执行所述第一查询任务的各数据库节点以及将其他查询任务分配给执行所述其他查询任务的各数控库节点;
所述数据库节点还用于执行以下功能:
与其他相关联数据库节点一起并行执行所述第一查询任务,从而从其存储的数据中得到相应的查询数据;
将执行所述第一查询任务得到的查询数据发送给其他相关联数据库节点,以及,接收其他相关联数据库节点发送的执行所述第一查询任务得到的查询数据;
将执行所述第一查询任务得到的查询数据与其他相关联数据节点执行所述第一查询任务得到的查询数据合并得到所述第一查询任务的查询结果数据,并作为执行所述第一查询任务后的下一查询任务的数据库节点的输入数据。
8.根据权利要求6或7所述的集群数据库系统,其特征在于,每个查询任务通过以下方式表示:{查询算子;执行查询任务的数据库节点指示信息;目标数据库节点指示信息;数据分派方法}。
9.根据权利要求8所述的集群数据库系统,其特征在于,所述数据库节点还用于执行以下功能:
根据所述第一查询任务中携带的目标数据库节点信息和数据分配方法将所述第一查询任务的查询结果数据分派给相应的目标数据库节点;和/或
在并行执行第一查询任务且合并得到所述第一查询任务的查询结果数据后,在执行所述第一查询任务的数控库节点之间进行一次同步。
10.一种数据库节点,包括:
查询执行模块,用于接收查询解析器分配的查询任务,其中所述查询任务是所述查询解析器在接收到查询请求后所分解的查询任务流中的查询任务;以及,根据来自所述查询解析器的查询任务流的执行规则与其他相关联数据库节点一起并行执行相对应的查询任务;
收发模块,用于将执行所述查询任务得到的查询数据发送给其他相关联数据库节点,以及,接收其他相关联数据库节点发送的执行与所述查询任务相同的查询任务得到的查询数据;
数据合并模块,用于将执行所述查询任务得到的查询数据与其他相关联数据库节点的执行与所述查询任务相同的查询任务得到的查询数据合并得到查询结果数据,该查询结果数据是与所述查询请求对应的查询结果数据,或者,是用作执行下一查询任务的输入数据以便所述数据库节点或者其他数据库节点根据所述查询任务流的执行规则执行完所述查询任务流后得到与所述查询请求对应的最终查询结果数据。
CN2013100820631A 2013-03-14 2013-03-14 数据查询方法和集群数据库系统 Pending CN103123652A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2013100820631A CN103123652A (zh) 2013-03-14 2013-03-14 数据查询方法和集群数据库系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2013100820631A CN103123652A (zh) 2013-03-14 2013-03-14 数据查询方法和集群数据库系统

Publications (1)

Publication Number Publication Date
CN103123652A true CN103123652A (zh) 2013-05-29

Family

ID=48454628

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2013100820631A Pending CN103123652A (zh) 2013-03-14 2013-03-14 数据查询方法和集群数据库系统

Country Status (1)

Country Link
CN (1) CN103123652A (zh)

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103310011A (zh) * 2013-07-02 2013-09-18 曙光信息产业(北京)有限公司 集群数据库系统环境下的数据查询解析方法
CN103399943A (zh) * 2013-08-14 2013-11-20 曙光信息产业(北京)有限公司 集群数据库并行查询的通讯方法和通讯装置
CN104391918A (zh) * 2014-11-19 2015-03-04 天津南大通用数据技术股份有限公司 基于对等部署的分布式数据库查询优先级管理的实现方法
CN105045871A (zh) * 2015-07-15 2015-11-11 国家超级计算深圳中心(深圳云计算中心) 数据聚合查询方法及装置
CN105183901A (zh) * 2015-09-30 2015-12-23 北京京东尚科信息技术有限公司 一种数据查询引擎读取数据库表的方法及装置
CN105389394A (zh) * 2015-12-22 2016-03-09 北京奇虎科技有限公司 基于多个数据库集群的数据请求处理方法及装置
CN105824957A (zh) * 2016-03-30 2016-08-03 电子科技大学 分布式内存列式数据库的查询引擎系统及查询方法
CN106648842A (zh) * 2016-12-27 2017-05-10 中国建设银行股份有限公司 一种批量作业续跑方法及装置
CN107239548A (zh) * 2017-06-05 2017-10-10 携程旅游网络技术(上海)有限公司 基于SQL Server和HIVE的报表处理方法
CN107545005A (zh) * 2016-06-28 2018-01-05 华为软件技术有限公司 一种数据处理方法及装置
WO2018045610A1 (zh) * 2016-09-06 2018-03-15 北京百度网讯科技有限公司 用于执行分布式计算任务的方法和装置
CN107918676A (zh) * 2017-12-15 2018-04-17 联想(北京)有限公司 结构化查询的资源优化方法及数据库查询系统
CN107943945A (zh) * 2017-11-24 2018-04-20 清华大学 一种大数据分析开发平台中异构算子管理方法
CN108021578A (zh) * 2016-11-03 2018-05-11 北京国双科技有限公司 数据文件的关联查询方法及装置
CN108268512A (zh) * 2016-12-30 2018-07-10 中国移动通信集团上海有限公司 一种标签查询方法及装置
CN109710641A (zh) * 2018-12-17 2019-05-03 浩云科技股份有限公司 一种海量数据的查询处理方法及系统
CN109710630A (zh) * 2018-12-25 2019-05-03 中科曙光国际信息产业有限公司 异构数据源的查询方法及装置
CN110019274A (zh) * 2017-12-29 2019-07-16 阿里巴巴集团控股有限公司 一种数据库系统以及查询数据库的方法和装置
CN110020004A (zh) * 2019-02-19 2019-07-16 阿里巴巴集团控股有限公司 一种数据计算方法及引擎
CN110019319A (zh) * 2017-09-30 2019-07-16 北京国双科技有限公司 数据查询方法及装置
CN110291503A (zh) * 2017-02-03 2019-09-27 株式会社日立制作所 信息处理系统和信息处理方法
CN111190932A (zh) * 2019-12-16 2020-05-22 北京淇瑀信息科技有限公司 一种隐私集群查询方法、装置及电子设备
CN112784119A (zh) * 2021-01-14 2021-05-11 内蒙古蒙商消费金融股份有限公司 一种数据查询及同步优化方法及装置
CN113722600A (zh) * 2021-09-06 2021-11-30 阿波罗智联(北京)科技有限公司 应用于大数据的数据查询方法、装置、设备及产品
WO2022057357A1 (zh) * 2020-09-18 2022-03-24 华为云计算技术有限公司 数据查询方法及装置、数据库系统
CN114925097A (zh) * 2022-05-25 2022-08-19 京东科技控股股份有限公司 请求处理方法和装置
WO2022178976A1 (zh) * 2021-02-26 2022-09-01 平安科技(深圳)有限公司 基于大数据的信息处理方法、装置及相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101158952A (zh) * 2007-11-22 2008-04-09 中国人民解放军国防科学技术大学 基于流处理的生物序列数据库搜索多层次加速方法
CN101930472A (zh) * 2010-09-09 2010-12-29 南京中兴特种软件有限责任公司 一种支持分布式数据库基于并行查询的方法
CN102163195A (zh) * 2010-02-22 2011-08-24 北京东方通科技股份有限公司 一种基于分布式、异构数据库统一视图的查询优化方法
CN102521307A (zh) * 2011-12-01 2012-06-27 北京人大金仓信息技术股份有限公司 一种云计算环境下的无共享数据库集群并行查询处理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101158952A (zh) * 2007-11-22 2008-04-09 中国人民解放军国防科学技术大学 基于流处理的生物序列数据库搜索多层次加速方法
CN102163195A (zh) * 2010-02-22 2011-08-24 北京东方通科技股份有限公司 一种基于分布式、异构数据库统一视图的查询优化方法
CN101930472A (zh) * 2010-09-09 2010-12-29 南京中兴特种软件有限责任公司 一种支持分布式数据库基于并行查询的方法
CN102521307A (zh) * 2011-12-01 2012-06-27 北京人大金仓信息技术股份有限公司 一种云计算环境下的无共享数据库集群并行查询处理方法

Cited By (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103310011A (zh) * 2013-07-02 2013-09-18 曙光信息产业(北京)有限公司 集群数据库系统环境下的数据查询解析方法
CN103399943A (zh) * 2013-08-14 2013-11-20 曙光信息产业(北京)有限公司 集群数据库并行查询的通讯方法和通讯装置
CN104391918B (zh) * 2014-11-19 2018-01-19 天津南大通用数据技术股份有限公司 基于对等部署的分布式数据库查询优先级管理的实现方法
CN104391918A (zh) * 2014-11-19 2015-03-04 天津南大通用数据技术股份有限公司 基于对等部署的分布式数据库查询优先级管理的实现方法
CN105045871A (zh) * 2015-07-15 2015-11-11 国家超级计算深圳中心(深圳云计算中心) 数据聚合查询方法及装置
CN105045871B (zh) * 2015-07-15 2018-09-28 国家超级计算深圳中心(深圳云计算中心) 数据聚合查询方法及装置
CN105183901A (zh) * 2015-09-30 2015-12-23 北京京东尚科信息技术有限公司 一种数据查询引擎读取数据库表的方法及装置
CN105389394A (zh) * 2015-12-22 2016-03-09 北京奇虎科技有限公司 基于多个数据库集群的数据请求处理方法及装置
CN105824957A (zh) * 2016-03-30 2016-08-03 电子科技大学 分布式内存列式数据库的查询引擎系统及查询方法
CN105824957B (zh) * 2016-03-30 2019-09-03 电子科技大学 分布式内存列式数据库的查询引擎系统及查询方法
CN107545005A (zh) * 2016-06-28 2018-01-05 华为软件技术有限公司 一种数据处理方法及装置
WO2018045610A1 (zh) * 2016-09-06 2018-03-15 北京百度网讯科技有限公司 用于执行分布式计算任务的方法和装置
US11379499B2 (en) 2016-09-06 2022-07-05 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and apparatus for executing distributed computing task
CN108021578A (zh) * 2016-11-03 2018-05-11 北京国双科技有限公司 数据文件的关联查询方法及装置
CN106648842A (zh) * 2016-12-27 2017-05-10 中国建设银行股份有限公司 一种批量作业续跑方法及装置
CN108268512A (zh) * 2016-12-30 2018-07-10 中国移动通信集团上海有限公司 一种标签查询方法及装置
CN110291503B (zh) * 2017-02-03 2023-04-25 株式会社日立制作所 信息处理系统和信息处理方法
CN110291503A (zh) * 2017-02-03 2019-09-27 株式会社日立制作所 信息处理系统和信息处理方法
CN107239548A (zh) * 2017-06-05 2017-10-10 携程旅游网络技术(上海)有限公司 基于SQL Server和HIVE的报表处理方法
CN107239548B (zh) * 2017-06-05 2020-04-07 携程旅游网络技术(上海)有限公司 基于SQL Server和HIVE的报表处理方法
CN110019319B (zh) * 2017-09-30 2021-08-13 北京国双科技有限公司 数据查询方法及装置
CN110019319A (zh) * 2017-09-30 2019-07-16 北京国双科技有限公司 数据查询方法及装置
CN107943945A (zh) * 2017-11-24 2018-04-20 清华大学 一种大数据分析开发平台中异构算子管理方法
CN107918676A (zh) * 2017-12-15 2018-04-17 联想(北京)有限公司 结构化查询的资源优化方法及数据库查询系统
CN107918676B (zh) * 2017-12-15 2022-01-18 联想(北京)有限公司 结构化查询的资源优化方法及数据库查询系统
CN110019274A (zh) * 2017-12-29 2019-07-16 阿里巴巴集团控股有限公司 一种数据库系统以及查询数据库的方法和装置
CN110019274B (zh) * 2017-12-29 2023-09-26 阿里巴巴集团控股有限公司 一种数据库系统以及查询数据库的方法和装置
CN109710641A (zh) * 2018-12-17 2019-05-03 浩云科技股份有限公司 一种海量数据的查询处理方法及系统
CN109710630A (zh) * 2018-12-25 2019-05-03 中科曙光国际信息产业有限公司 异构数据源的查询方法及装置
CN110020004A (zh) * 2019-02-19 2019-07-16 阿里巴巴集团控股有限公司 一种数据计算方法及引擎
CN111190932A (zh) * 2019-12-16 2020-05-22 北京淇瑀信息科技有限公司 一种隐私集群查询方法、装置及电子设备
CN111190932B (zh) * 2019-12-16 2023-08-18 北京淇瑀信息科技有限公司 一种隐私集群查询方法、装置及电子设备
WO2022057357A1 (zh) * 2020-09-18 2022-03-24 华为云计算技术有限公司 数据查询方法及装置、数据库系统
CN112784119B (zh) * 2021-01-14 2023-04-28 内蒙古蒙商消费金融股份有限公司 一种数据查询及同步优化方法及装置
CN112784119A (zh) * 2021-01-14 2021-05-11 内蒙古蒙商消费金融股份有限公司 一种数据查询及同步优化方法及装置
WO2022178976A1 (zh) * 2021-02-26 2022-09-01 平安科技(深圳)有限公司 基于大数据的信息处理方法、装置及相关设备
CN113722600A (zh) * 2021-09-06 2021-11-30 阿波罗智联(北京)科技有限公司 应用于大数据的数据查询方法、装置、设备及产品
CN113722600B (zh) * 2021-09-06 2024-04-26 阿波罗智联(北京)科技有限公司 应用于大数据的数据查询方法、装置、设备及产品
CN114925097A (zh) * 2022-05-25 2022-08-19 京东科技控股股份有限公司 请求处理方法和装置

Similar Documents

Publication Publication Date Title
CN103123652A (zh) 数据查询方法和集群数据库系统
CN103761080B (zh) 一种基于SQL的MapReduce作业生成方法及系统
Wang et al. Asynchronous and fault-tolerant recursive datalog evaluation in shared-nothing engines
Doulkeridis et al. A survey of large-scale analytical query processing in MapReduce
US9720949B2 (en) Client-side partition-aware batching of records for insert operations
US9311354B2 (en) Method for two-stage query optimization in massively parallel processing database clusters
CN103678609B (zh) 一种基于分布式关系‑对象映射处理的大数据查询的方法
CN111177148B (zh) 一种水电数据库自动建表分表的方法
Choi et al. Tajo: A distributed data warehouse system on large clusters
US11023443B2 (en) Collaborative planning for accelerating analytic queries
CN105975617A (zh) 一种多分区表查询处理的方法和装置
EP4022459B1 (en) Materialized view rewrite technique for one-sided outer-join queries
US20150363467A1 (en) Performing an index operation in a mapreduce environment
CN104504154A (zh) 一种数据聚合查询的方法及装置
CN108108466A (zh) 一种分布式系统日志查询分析方法及装置
CN107818181A (zh) 基于Plcient交互式引擎的索引方法及其系统
CN104239320A (zh) 一种数据合并方法及系统
Al-Khasawneh et al. MapReduce a comprehensive review
US6470331B1 (en) Very large table reduction in parallel processing database systems
CN114090695A (zh) 分布式数据库的查询优化的方法和装置
US20150293971A1 (en) Distributed queries over geometric objects
CN116401277A (zh) 数据处理方法、装置、系统、设备及介质
US20220277010A1 (en) Hash based set operations
Pan et al. Parallelizing multiple group-by queries using MapReduce: optimization and cost estimation
Hagedorn et al. Stream processing platforms for analyzing big dynamic data

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20130529