CN113051068A - 数据库查询方法、装置、设备和存储介质 - Google Patents

数据库查询方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN113051068A
CN113051068A CN201911382432.2A CN201911382432A CN113051068A CN 113051068 A CN113051068 A CN 113051068A CN 201911382432 A CN201911382432 A CN 201911382432A CN 113051068 A CN113051068 A CN 113051068A
Authority
CN
China
Prior art keywords
query
result set
gpu
data
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
CN201911382432.2A
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.)
Jinzhuan Xinke Co Ltd
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201911382432.2A priority Critical patent/CN113051068A/zh
Priority to PCT/CN2020/140228 priority patent/WO2021129873A1/zh
Publication of CN113051068A publication Critical patent/CN113051068A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提出一种数据库查询方法、装置、设备和存储介质,一种数据库查询方法,包括:接收客户端对于分布式数据库的数据查询请求;从分布式数据库获取数据查询请求对应的结果集;根据预设的结果集大小阈值,判断结果集为大结果集或小结果集;由CPU对小结果集进行查询,以及由GPU对大结果集进行查询;向客户端发送查询结果。

Description

数据库查询方法、装置、设备和存储介质
技术领域
本申请涉及多媒体业务,例如涉及一种数据库查询方法、装置、设备和存储介质。
背景技术
目前的数据库主要为基于结构化查询语言(Structured Query Language,SQL)的数据库。随着数据库规模的增大,对于SQL数据库的查询速度成为影响数据库使用的瓶颈。
目前针对SQL数据库查询的优化主要有三个方案,分别为:基于规则和代价函数减少中间结果集规模提升查询速度;利用多核中央处理单元(Central Processing Unit,CPU)实现并行查询或者利用分布式架构实现查询的并行化;利用图形处理单元(GraphicsProcessing Unit,GPU)等高速硬件设备加速查询处理。
在目前单机数据库架构中,针对查询主要借助于服务器多核CPU提供算力,这导致在执行大结果集查询操作时内存以及磁盘输入输出(Input/Output,IO)压力很大,响应时间过长。针对单机CPU算力和内存的瓶颈,可以采用分布式架构以提升整体查询性能,分布式架构可以将复杂SQL拆分为子语句并行计算,有效地提升计算速度。但是,如果需要对分布式数据库各个节点的结果集进行汇聚,则还是会存在单机数据库的瓶颈问题。
发明内容
本申请提供一种数据库查询方法、装置、设备和存储介质,提高对数据库进行查询的效率。
第一方面,本申请实施例提供一种数据库查询方法,包括:
接收客户端对于分布式数据库的数据查询请求;
从分布式数据库获取数据查询请求对应的结果集;
根据预设的结果集大小阈值,判断结果集为大结果集或小结果集;
由CPU对小结果集进行查询,以及由GPU对大结果集进行查询;
向客户端发送查询结果。
第二方面,本申请实施例提供一种数据库查询装置,包括:
请求接收模块,设置为接收客户端对于分布式数据库的数据查询请求;
结果集获取模块,设置为从分布式数据库获取数据查询请求对应的结果集;
判断模块,设置为根据预设的结果集大小阈值,判断结果集为大结果集或小结果集;
处理模块,设置为由CPU对小结果集进行查询,以及由GPU对大结果集进行查询;
发送模块,设置为向客户端发送查询结果。
第三方面,本申请实施例提供一种数据库查询设备,包括处理器和存储器,处理器用于运行储存在存储器里的程序指令以执行第一方面的数据库查询方法。
第五方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面的数据库查询方法。
附图说明
图1为CPU和GPU混合架构示意图;
图2为一实施例提供的一种数据库查询方法的流程图;
图3为一实施例提供的一种数据库查询方法的交互流程图;
图4为一实施例提供的一种数据库查询方法的流程图;
图5为一实施例提供的一种数据库查询方法中范围查询的流程图;
图6为一实施例提供的一种数据库查询方法中分组查询的流程图;
图7为一实施例提供的一种数据库查询装置的结构示意图;
图8为一实施例提供的一种数据库查询设备的结构示意图。
具体实施方式
下文中将结合附图对本申请的实施例进行详细说明。
目前的大规模SQL数据库均使用分布式架构,而针对分布式架构的数据库的查询,仅使用CPU已经无法满足大规模的查询需求,因此引入CPU+GPU的混合查询架构,提高数据库的查询速度。图1为CPU和GPU混合架构示意图,如图1所示,CPU针对分布式架构的多个数据库节点(DB1、DB2、DB3、DB4)进行查询,CPU将各数据库节点的数据读取到内存中,并通过查询条件进行查询。当CPU的计算力无法满足查询需求时,CPU通过GPU路由器将查询任务下发给多个GPU线程,利用GPU的强大计算能力,解决CPU的计算能力不足的问题。但是采用GPU对分布式数据库节点进行查询计算,仍然需要CPU进行数据库结果集的分类和汇聚,而如何提高结果集的分类和查询结果的汇聚速度,是提高数据库查询速度的瓶颈。
图2为一实施例提供的一种数据库查询方法的流程图,如图2所示,本实施例提供的方法包括如下步骤。
步骤S2010,接收客户端对于分布式数据库的数据查询请求。
本实施例提供的数据库查询方法应用于对数据库进行查询的单机***,在单机***中至少包括一个CPU和一个GPU。其中CPU负责对单机***中的各种计算和处理流程进行处理,GPU负责进行与图形和显示相关的处理。CPU和GPU分别有对应的存储单元,其中CPU需要处理的数据存储在内存中,GPU需要处理的数据存储在显存中。在应用CPU+GPU的混合架构进行数据库查询时,在接收到客户针对数据库的查询请求后,首先需要由CPU将数据库中的数据复制到内存中,然后再由CPU将内存中的数据写入显存中后通知GPU执行查询算法,得到查询结果。GPU查询得到的结果需要返回CPU后再通知客户。但是CPU将需要查询的数据从内存复制到显存的过程,需要占用大量的资源。
在本实施例中,提供一种数据库查询方法。首先,将需要到数据库进行查询的网元或程序称为查询客户端(Client),在单机***中设置查询代理(Proxy),Proxy负责进行查询资源的分配和查询结果的汇总,并与Client进行交互。Proxy运行于CPU中,Proxy与分布式数据库节点(Database,DB)和GPU进行交互,从DB中读取所需查询的数据,并调用GPU的资源进行查询处理。当需要对数据库进行查询时,客户端向Proxy发送数据查询请求。数据查询请求是客户端对于分布式数据库发送的对数据进行查询的请求。
步骤S2020,从分布式数据库获取数据查询请求对应的结果集。
当从客户端接收到数据查询请求后,首先需要从分布式数据库中获取数据查询请求对应的结果集。结果集是对象包含符合SQL语句中条件的所有行集合,也就是从分布式数据库的各节点中获取符合数据查询请求中条件的所有数据集合。对结果集执行数据查询请求对应的查询,即可得到数据查询结果。Proxy将从分布式数据库获取的结果集存储在CPU对应的内存中。
步骤S2030,根据预设的结果集大小阈值,判断结果集为大结果集或小结果集。
在不使用GPU进行查询的***中,当从分布式数据库获取结果集后,CPU将针对内存中存储的结果集执行数据查询请求对应的查询指令,从而得到数据查询结果。而当结果集的规模很大时,CPU的处理能力将无法满足查询需求,导致查询速度较慢。而在使用CPU+GPU的混合架构进行查询时,CPU需要将内存中存储的结果集复制到GPU对应的显存中,然后通知GPU对显存中存储的结果集执行查询,然后在接收GPU返回的查询结果后进行汇总,得到数据查询结果。但是在结果集的规模较小的情况下,仍然将结果集复制到显存中进行查询,显然也将影响查询速度。
因此,在本实施例中,在获取数据查询请求对应的结果集后,首先根据预设的结果集大小阈值,对结果集的大小进行判断,判断结果集为大结果集或小结果集。若结果集大于或等于预设结果集大小阈值,则该结果集为大结果集,若结果集小于结果集大小阈值,则该结果集为小结果集。
步骤S2040,由CPU对小结果集进行查询,以及由GPU对大结果集进行查询。
在CPU+GPU混合查询架构下,CPU和GPU均可执行查询计算,但由于CPU的计算能力有限,在查询的结果集规模较大时,查询所需时间较长,因此可以将大规模结果集复制到显存中,并调用GPU进行查询计算,从而利用GPU强大的计算能力缩短查询时间。但是在结果集规模较小时,若仍然将结果集复制到显存中,那么复制结果集以及从GPU获取查询结果所需的时间将无法被忽略,而CPU的计算能力已经足以应对小结果集的查询需求,从综合查询时间看来,使用CPU对小结果集进行查询的效率将更高。因此在本实施例中,将采用CPU对小结果集进行查询,而采用GPU对大结果集进行查询。使用CPU或GPU对结果集进行查询的具体方法可以采用目前的任一种查询方法,此处将不再赘述。
在一实施例中,在由GPU对大结果集进行查询时,需要先对大结果集进行压缩后再发送给GPU进行查询。由于将结果集发送给GPU进行查询,需要首先将结果集从内存中复制到显存中,在为GPU分配查询任务进行查询,但若结果集的大小过大,那么从内存复制到显存中的数据也将过多,从而影响查询效率。因此在将大结果集复制到GPU的缓存之前,可以先将大结果集进行压缩,从而减少复制到GPU对应的显存的数据量,提高查询效率。GPU对于显存中的数据,需要进行解压,然后再进行查询计算。
在一实施例中,由GPU对大结果集进行查询,包括:由GPU的多个并行线程对大结果集进行并行查询。GPU由于具有强大的计算能力,因此在使用GPU对大结果集进行查询时,可以为GPU分配个查询任务,使GPU使用多个并行的线程同步进行查询,从而提高查询效率。
步骤S2050,向客户端发送查询结果。
在使用CPU或GPU对结果集进行查询计算后,即可将得到的查询结果反馈给查询客户端,即Client,从而完成对分布式数据库的查询。
本实施例提供的数据库查询方法,在接收客户端对于分布式数据库的数据查询请求后,首先从分布式数据库获取数据查询请求对应的结果集,然后根据预设的结果集大小阈值,判断结果集为大结果集或小结果集,从而由CPU对小结果集进行查询,以及由GPU对大结果集进行查询,最后向客户端发送查询结果,由于通过对结果集的大小进行判断后,选择CPU或GPU进行查询计算,考虑了CPU和GPU的特点,使得采用CPU+GPU的混合查询架构对分布式数据库进行查询时,提高了查询效率,缩短了查询所需时间。
图3为一实施例提供的一种数据库查询方法的交互流程图,如图3所示,本实施例提供的方法包括如下步骤。
步骤S3010,主机端Proxy接收Client发送的查询请求。
步骤S3020,主机端Proxy获取到分布式数据库节点的结果集。
步骤S3030,根据配置的结果集阈值,判断结果集的大小。
步骤S3040,若结果集小于阈值,则判断为小结果集,由CPU处理并返回Client。
步骤S3050,若结果集小于阈值,则判断为大结果集,将结果集分配到指定GPU处理。
步骤S3060,GPU执行数据的并行查询,并将结果返回Proxy,
步骤S3070,Proxy将查询结果返回客户端。
Proxy在确定获取到的数据集为大数据集后,将指示GPU进行查询处理,而指示GPU进行查询处理的具体流程例如可以采用图4所示的处理流程。图4为一实施例提供的一种数据库查询方法的流程图,如图4所示,本实施例提供的方法包括如下步骤。
步骤S4010,分配主机端的基本变量并赋予初始值。
步骤S4020,利用CudaMalloc在GPU上分配空间。
步骤S4030,利用CudaMemcpy将主机端的数据拷贝到GPU端。
步骤S4040,调用kernal函数正在GPU上进行计算。
步骤S4050,将GPU端的查询结果拷贝回到主机端,并返回查询结果。
统一计算设备架构(Compute Unified Device Architecture,CUDA)是显卡厂商NVIDIA推出的运算平台。CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。CUDA包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员可以使用各种编程语言来为CUDA架构编写程序。图4所示实施例通过CUDA编程,调用GPU执行所需的查询处理。
由GPU对大结果集进行查询,包括两类查询场景:范围查询和分组查询。其中范围查询先利用稀疏索引筛选不在范围内的数据,减少内存和显存之间拷贝数据量。分组查找通过对拆分数据段分别执行查询操作,然后通过结果集或操作,获取最终查询结果。下面分别对分为查询和分组查询进行详细说明。
范围查询的具体地方法包括如下步骤:
1、对数据量很大的每列切分成若干段,划分后的各个段保留最大值Max和最小值Min;
2、通过判断查询条件中字段与段中Max/Min关系:
2.1查询字段全部都在(Min,Max)之间:拷贝该数据段的数据到显存;
2.2查询字段全部都不在(Min,Max):丢弃该数据段的所有数据,不拷贝到显存;
2.3查询字段部分在(Min,Max):拷贝该数据段的数据到显存;
3、CUDA程序通过内置变量指定一个线程对应拷贝到显存的每个数据段,如果满足条件,则置对应位置为1,否则置为0;
4、将各个段的结果集进行合并处理;
5、只需要保留对应的结果向量,拷贝显存结果到主机内存。
图5为一实施例提供的一种数据库查询方法中范围查询的流程图,如图5所示,本实施例提供的方法包括如下步骤。
步骤S5010,将大结果集切分为多个数据段。
步骤S5020,获取每个数据段的最大值(Max)和最小值(Min)。
步骤S5030,获取数据查询请求中的查询条件。
步骤S5040,判断每个数据段的最大值和最小值是否满足数据查询请求的查询条件。
步骤S5050,若查询字段符合查询条件,即在(Min,Max)之间,则继续判断查询字段是否全部符合查询条件。
步骤S5060,若查询字段全部在(Min,Max)之间,则拷贝该段数据到显存。
步骤S5070,若查询字段部分在(Min,Max)之间,则拷贝该段数据到显存。
步骤S5080,若查询字段全部不在(Min,Max)之间,则丢弃该段数据,不进行拷贝。
步骤S5090,对显存中的数据进行并行查询计算。
步骤S5100,合并并行查询查询得到的多个查询结果。最终只需要保留对应的结果向量,拷贝显存结果到主机内存。
范围查询的具体地方法包括如下步骤:
1、假设某一结果集较大的列被拆分为长度为n的A和B两个数据段;
2、对于主机端长度为n数据段A,在GPU端初始化一个长度为n的向量A',A与A'均初始化为0;
3、在GPU计算单元申请多个线程,执行查询操作:
3.1将结果存入之前申请的向量A'中;
3.2对列B同样执行1,2操作,将结果存入到向量B';
3.3执行R=A'||B',R向量即对应原来数据段的查询结果;
4、将最终结果在GPU执行合并去重;
5、将去重后结果集拷贝回主机内存。
图6为一实施例提供的一种数据库查询方法中分组查询的流程图,如图6所示,本实施例提供的方法包括如下步骤。
步骤S6010,初始化向量。
步骤S6020,判断数据是否有效,若有效则执行步骤S6030。
步骤S6030,主机端初始化向量A。
步骤S6040,在GPU端初始化向量A'。
步骤S6050,GPU申请线程对向量A'进行并行计算。
步骤S6060,将查询结果存入A'。
步骤S6070,主机端初始化向量B,并执行步骤S6020,判断数据是否有效。
步骤S6080,当数据无效,也即查询结束,执行R=A'||B',R向量即对应原来数据段的查询结果。
步骤S6090,合并结果集并去重。
图7为一实施例提供的一种数据库查询装置的结构示意图,如图7所示,本实施例提供的数据库查询装置包括:
请求接收模块71,设置为接收客户端对于分布式数据库的数据查询请求;结果集获取模块72,设置为从分布式数据库获取数据查询请求对应的结果集;判断模块73,设置为根据预设的结果集大小阈值,判断结果集为大结果集或小结果集;处理模块74,设置为由CPU对小结果集进行查询,以及由GPU对大结果集进行查询;发送模块75,设置为向客户端发送查询结果。
本实施例提供的数据库查询装置用于实现图2所示实施例的数据库查询方法,本实施例提供的数据库查询装置实现原理和技术效果类似,此处不再赘述。
图8为一实施例提供的一种数据库查询设备的结构示意图,如图8所示,该数据库查询设备包括处理器81、存储器82、发送器83和接收器84;数据库查询设备中处理器81的数量可以是一个或多个,图8中以一个处理器81为例;数据库查询设备中的处理器81和存储器82、发送器83和接收器84;可以通过总线或其他方式连接,图8中以通过总线连接为例。处理器81包括CPU和GPU的组合,相应地,存储器82可以包括内存和显存的组合。
存储器82作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序以及模块,如本申请图2-图5实施例中的数据库查询方法对应的程序指令/模块(例如,数据库查询装置中的请求接收模块71、结果集获取模块72、判断模块73、处理模块74、发送模块75)。处理器81通过运行存储在存储器82中的软件程序、指令以及模块,从而完成数据库查询设备至少一种功能应用以及数据处理,即实现上述的数据库查询方法。
存储器82可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据数据库查询设备的使用所创建的数据等。此外,存储器82可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
发送器83为能够通过任一种有线或无线网络向分布式数据库节点发送数据的模块或器件组合。接收器84为通过任一种有线或无线网络接收分布式数据库节点发送的数据的模块或器件组合。
本申请实施例还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种数据库查询方法,该方法包括:接收客户端对于分布式数据库的数据查询请求;从分布式数据库获取数据查询请求对应的结果集;根据预设的结果集大小阈值,判断结果集为大结果集或小结果集;由CPU对小结果集进行查询,以及由GPU对大结果集进行查询;向客户端发送查询结果。
以上仅为本申请的示例性实施例而已,并非用于限定本申请的保护范围。
本领域内的技术人员应明白,术语用户终端涵盖任何适合类型的无线用户设备,例如移动电话、便携数据处理装置、便携网络浏览器或车载移动台。
一般来说,本申请的多种实施例可以在硬件或专用电路、软件、逻辑或其任何组合中实现。例如,一些方面可以被实现在硬件中,而其它方面可以被实现在可以被控制器、微处理器或其它计算装置执行的固件或软件中,尽管本申请不限于此。
本申请的实施例可以通过移动装置的数据处理器执行计算机程序指令来实现,例如在处理器实体中,或者通过硬件,或者通过软件和硬件的组合。计算机程序指令可以是汇编指令、指令集架构((Instruction Set Architecture,ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码。
本申请附图中的任何逻辑流程的框图可以表示程序步骤,或者可以表示相互连接的逻辑电路、模块和功能,或者可以表示程序步骤与逻辑电路、模块和功能的组合。计算机程序可以存储在存储器上。存储器可以具有任何适合于本地技术环境的类型并且可以使用任何适合的数据存储技术实现,例如但不限于只读存储器(Read-Only Memory,ROM)、随机访问存储器(Random Access Memory,RAM)、光存储器装置和***(数码多功能光碟(Digital Video Disc,DVD)或光盘((Compact Disc,CD))等。计算机可读介质可以包括非瞬时性存储介质。数据处理器可以是任何适合于本地技术环境的类型,例如但不限于通用计算机、专用计算机、微处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑器件(Field-Programmable Gate Array,FGPA)以及基于多核处理器架构的处理器。

Claims (10)

1.一种数据库查询方法,其特征在于,包括:
接收客户端对于分布式数据库的数据查询请求;
从所述分布式数据库获取所述数据查询请求对应的结果集;
根据预设的结果集大小阈值,判断所述结果集为大结果集或小结果集;
由中央处理单元CPU对小结果集进行查询,以及由图形处理单元GPU对大结果集进行查询;
向所述客户端发送查询结果。
2.根据权利要求1所述的方法,其特征在于,所述由GPU对大结果集进行查询,包括:
将所述大结果集切分为多个数据段,并获取每个数据段的最大值和最小值;
判断每个数据段的最大值和最小值是否满足所述数据查询请求的查询条件;
将满足查询条件的数据段拷贝至所述GPU对应的显存后由GPU对所述显存中的数据段进行并行查询;
合并对多个数据段进行查询的查询结果。
3.根据权利要求1所述的方法,其特征在于,所述由GPU对大结果集进行查询,包括:
将所述大结果集拆分为多个数据段;
分别对每个数据段进行所述数据查询请求的查询,得到多个查询结果集;
对所述多个查询结果集进行或操作并去重,得到数据查询请求的查询结果。
4.根据权利要求1~3任一项所述的方法,其特征在于,所述由GPU对大结果集进行查询,包括:
对所述大结果集进行压缩后发送给GPU进行查询。
5.根据权利要求1~3任一项所述的方法,其特征在于,所述由GPU对大结果集进行查询,包括:
由GPU的多个并行线程对所述大结果集进行并行查询。
6.根据权利要求1~3任一项所述的方法,其特征在于,所述由GPU对大结果集进行查询,包括:
将所述大结果集拷贝至所述GPU对应的显存后由GPU对所述大结果集进行查询。
7.一种数据库查询装置,其特征在于,包括:
请求接收模块,设置为接收客户端对于分布式数据库的数据查询请求;
结果集获取模块,设置为从所述分布式数据库获取所述数据查询请求对应的结果集;
判断模块,设置为根据预设的结果集大小阈值,判断所述结果集为大结果集或小结果集;
处理模块,设置为由中央处理单元CPU对小结果集进行查询,以及由图形处理单元GPU对大结果集进行查询;
发送模块,设置为向所述客户端发送查询结果。
8.一种数据库查询设备,包括处理器和存储器,其特征在于,所述处理器用于运行储存在所述存储器里的程序指令以执行根据权利要求1-6中任意一项所述的数据库查询方法。
9.根据权利要求8所述的数据库查询设备,其特征在于,所述处理器包括CPU和GPU,所述存储器包括内存和显存。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~6中任一所述的数据库查询方法。
CN201911382432.2A 2019-12-27 2019-12-27 数据库查询方法、装置、设备和存储介质 Pending CN113051068A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911382432.2A CN113051068A (zh) 2019-12-27 2019-12-27 数据库查询方法、装置、设备和存储介质
PCT/CN2020/140228 WO2021129873A1 (zh) 2019-12-27 2020-12-28 数据库查询方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911382432.2A CN113051068A (zh) 2019-12-27 2019-12-27 数据库查询方法、装置、设备和存储介质

Publications (1)

Publication Number Publication Date
CN113051068A true CN113051068A (zh) 2021-06-29

Family

ID=76507145

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911382432.2A Pending CN113051068A (zh) 2019-12-27 2019-12-27 数据库查询方法、装置、设备和存储介质

Country Status (2)

Country Link
CN (1) CN113051068A (zh)
WO (1) WO2021129873A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984695A (zh) * 2014-03-21 2014-08-13 华为技术有限公司 一种数据库中的数据查询方法及装置
WO2014123552A1 (en) * 2013-02-08 2014-08-14 Mellmo Inc. Executing database queries using multiple processors
CN104111936A (zh) * 2013-04-18 2014-10-22 阿里巴巴集团控股有限公司 数据查询方法和***
CN110442602A (zh) * 2019-07-02 2019-11-12 新华三大数据技术有限公司 数据查询方法、装置、服务器及存储介质
CN110569312A (zh) * 2019-11-06 2019-12-13 创业慧康科技股份有限公司 一种基于gpu的大数据快速检索***及其使用方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663270B (zh) * 2012-03-08 2015-06-17 华中科技大学 基于gpu的序列比对算法的比对结果处理方法
US9727942B2 (en) * 2013-10-29 2017-08-08 International Business Machines Corporation Selective utilization of graphics processing unit (GPU) based acceleration in database management
CN104090962B (zh) * 2014-07-14 2017-03-29 西北工业大学 面向海量分布式数据库的嵌套查询方法
CN105404690B (zh) * 2015-12-16 2019-06-21 华为技术服务有限公司 查询数据库的方法和装置
CN109213601B (zh) * 2018-09-12 2021-01-01 华东师范大学 一种基于cpu-gpu的负载均衡方法及设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014123552A1 (en) * 2013-02-08 2014-08-14 Mellmo Inc. Executing database queries using multiple processors
CN104111936A (zh) * 2013-04-18 2014-10-22 阿里巴巴集团控股有限公司 数据查询方法和***
CN103984695A (zh) * 2014-03-21 2014-08-13 华为技术有限公司 一种数据库中的数据查询方法及装置
CN110442602A (zh) * 2019-07-02 2019-11-12 新华三大数据技术有限公司 数据查询方法、装置、服务器及存储介质
CN110569312A (zh) * 2019-11-06 2019-12-13 创业慧康科技股份有限公司 一种基于gpu的大数据快速检索***及其使用方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张宇等: "一种适应GPU的混合OLAP查询处理模型", 《软件学报》 *

Also Published As

Publication number Publication date
WO2021129873A1 (zh) 2021-07-01

Similar Documents

Publication Publication Date Title
Li et al. Hippogriffdb: Balancing i/o and gpu bandwidth in big data analytics
Breß et al. GPU-accelerated database systems: Survey and open challenges
CN108431774B (zh) 无限存储器结构流和api
US20210271680A1 (en) Near-memory acceleration for database operations
WO2017019879A1 (en) Multi-query optimization
JP2016509294A (ja) 分散型データベースクエリ・エンジン用のシステムおよび方法
US12001425B2 (en) Duplication elimination in depth based searches for distributed systems
CN114880346B (zh) 一种数据处理方法及相关组件、加速处理器
IL224255A (en) A system and method for concurrently executing database queries using multiple processors and kernels
Salami et al. AxleDB: A novel programmable query processing platform on FPGA
CN110990420A (zh) 数据查询方法、装置
CN104731569A (zh) 一种数据处理方法及相关设备
US11443173B2 (en) Hardware-software co-design for accelerating deep learning inference
CN107204998B (zh) 处理数据的方法和装置
US20180218039A1 (en) Query planning and execution with reusable memory stack
CN112364052A (zh) 异构数据管理方法、装置、设备和计算机可读存储介质
CA3131330A1 (en) Database aggregation query method, device and system
KR102326280B1 (ko) 데이터 처리 방법, 장치, 기기 및 매체
CN115964374A (zh) 一种基于预计算场景的查询处理方法及其装置
WO2022041850A1 (en) Methods and apparatuses for coalescing function calls for ray-tracing
WO2018053889A1 (zh) 分布式计算框架和分布式计算方法
JP6316503B2 (ja) 計算機システム、アクセラレータ及びデータベースの処理方法
US9298769B1 (en) Method and apparatus to facilitate discrete-device accelertaion of queries on structured data
WO2021115149A1 (zh) 神经网络处理器、芯片和电子设备
CN113868160A (zh) 一种数据查询方法、装置及相关设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right

Effective date of registration: 20220214

Address after: 100176 floor 18, building 8, courtyard 10, KEGU 1st Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing (Yizhuang group, high-end industrial area of Beijing Pilot Free Trade Zone)

Applicant after: Jinzhuan Xinke Co.,Ltd.

Address before: 518057 Zhongxing building, science and technology south road, Nanshan District hi tech Industrial Park, Guangdong, Shenzhen

Applicant before: ZTE Corp.

TA01 Transfer of patent application right
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20210629

RJ01 Rejection of invention patent application after publication