CN110825732A - 数据查询方法、装置、计算机设备和可读存储介质 - Google Patents
数据查询方法、装置、计算机设备和可读存储介质 Download PDFInfo
- Publication number
- CN110825732A CN110825732A CN201910894582.5A CN201910894582A CN110825732A CN 110825732 A CN110825732 A CN 110825732A CN 201910894582 A CN201910894582 A CN 201910894582A CN 110825732 A CN110825732 A CN 110825732A
- Authority
- CN
- China
- Prior art keywords
- service
- execution threads
- data
- data set
- queried
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种数据查询方法、装置、计算机设备和可读存储介质,该方法包括:确定待查询业务的业务优先权重;确定待查询业务针对Mongo数据库中的目标数据集合;根据业务优先权重和目标数据集合的数量,确定待查询业务对应的执行线程数;执行线程数小于或等于目标数据集合的数量;根据执行线程数,为待查询业务分配对应数量的执行线程;调用分配的对应数量的执行线程,以查询目标数据集合中的部分集合或者全部集合。该方法中由于执行线程数是确定的,会为待查询业务分配合理的执行线程数,不会同时占用过多的线程执行待查询业务的查询,使得线程的执行效率得到了提高,进而提高了对待查询业务的数据查询效率。
Description
技术领域
本发明涉及电子与信息技术领域,特别是涉及一种数据查询方法、装置、计算机设备和可读存储介质。
背景技术
Mongo数据库是一个高性能、开源、无模式的文档型数据库,它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型;Mongo数据库最大的特点是它支持的查询语言非常强大,可以实现类似关系数据库单表查询的绝大部分功能。
在进行数据的存储时,通常是将所有数据存储在一个Mongo数据库集群中,而一个Mongo数据库集群会包含多个节点,且节点之间存在主备关系,例如,一个主节点关联的两个从节点即为一个主备节点,进行数据存储时通过Hash分片将数据均匀分布在Mongo数据库集群中的不同主节点,随着数据量增长会导致数据插入和查询性能大幅下降,此时需要增加一组主备节点提高Mongo数据库集群的读写、查询性能,但是在增加主备节点时需要将现有主节点上的部分数据量迁移到新增加的主备节点上,使数据达到一个平衡状态,而该过程会严重影响到业务的操作时间,使时长增加2-5倍,这种影响对于业务来说是致命的,会影响到大量的用户体验;另外对于新增的主备节点配置,必须不低于现有节点,否则可能因为新增节点的性能而拖慢整个业务。因此,即便是定时增加主备节点也很难保证随着数据量的增加对数据进行合理的存储,由于数据不能进行合理的存储,这样也会对查询的速度造成影响,影响查询效率。
因此,传统的Mongo数据库数据存储方法当存储的数据量过大时,存在数据查询缓慢的问题。
发明内容
基于此,有必要针对传统的Mongo数据库数据存储方法当存储的数据量过大时,存在数据查询缓慢的问题,提供一种数据查询方法、装置、计算机设备和可读存储介质。
第一方面,本发明实施例提供一种数据查询方法,所述方法包括:
确定待查询业务的业务优先权重;
确定所述待查询业务针对Mongo数据库中的目标数据集合;所述目标数据集合包括所述Mongo数据库中的冷库数据集合;
根据所述业务优先权重和所述目标数据集合的数量,确定所述待查询业务对应的执行线程数;所述执行线程数小于或等于所述目标数据集合的数量;
根据所述执行线程数,为所述待查询业务分配对应数量的执行线程;
调用所述分配的对应数量的执行线程,以查询所述目标数据集合中的部分集合或者全部集合。
在其中一个实施例中,所述根据所述执行线程数,为所述待查询业务分配对应数量的执行线程,包括:
若所述执行线程数大于线程池中空闲执行线程的总数,则将所述空闲执行线程分配给所述待查询业务,并在所述线程池中存在新的空闲线程时,将所述新的空闲线程分配给等待中的所述待查询业务;
若所述执行线程数小于或等于所述空闲执行线程的总数,则从所述空闲执行线程中选择与所述执行线程数相匹配的空闲线程,并分配给所述待查询业务。
在其中一个实施例中,所述根据所述业务优先权重和所述目标数据集合的数量,确定所述待查询业务对应的执行线程数,包括:
获取所述业务优先权重对应的权重系数;
获取所述业务优先权重对应的权重系数与所述目标数据集合的数量的乘积值,将所述乘积值确定为所述待查询业务对应的执行线程数。
在其中一个实施例中,所述Mongo数据库还包括热库数据集合;所述冷库数据集合中的数据包括所述热库数据集合中的数据;所述冷库数据集合包括不同时间段所对应的多个数据集合。
在其中一个实施例中,所述方法还包括:
定时检测所述热库中的数据是否符合所述热库的时间要求,将不符合所述时间要求的数据从所述热库中移出。
在其中一个实施例中,所述方法还包括:
实时监听所述热库的数据操作日志,从所述数据操作日志中读取所述热库中的更新数据,根据所述更新数据的日期字段值,确定所述更新数据在所述冷库中对应的数据集合,并将所述更新数据写入所述对应的数据集合。
在其中一个实施例中,所述方法还包括:
若所述冷库中不存在所述更新数据对应的数据集合,则根据所述更新数据的日期字段值,在所述冷库中创建新的数据集合,并将所述更新数据写入所述新的数据集合中。
第二方面,本发明实施例提供一种数据查询装置,所述装置包括:
第一确定模块,用于确定待查询业务的业务优先权重;
第二确定模块,用于确定所述待查询业务针对Mongo数据库中的目标数据集合;所述目标数据集合包括所述Mongo数据库中的冷库数据集合;
第三确定模块,用于根据所述业务优先权重和所述目标数据集合的数量,确定所述待查询业务对应的执行线程数;所述执行线程数小于或等于所述目标数据集合的数量;
分配模块,用于根据所述执行线程数,为所述待查询业务分配对应数量的执行线程;
查询模块,用于调用所述分配的对应数量的执行线程,以查询所述目标数据集合中的部分集合或者全部集合。
第三方面,本发明实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
确定待查询业务的业务优先权重;
确定所述待查询业务针对Mongo数据库中的目标数据集合;所述目标数据集合包括所述Mongo数据库中的冷库数据集合;
根据所述业务优先权重和所述目标数据集合的数量,确定所述待查询业务对应的执行线程数;所述执行线程数小于或等于所述目标数据集合的数量;
根据所述执行线程数,为所述待查询业务分配对应数量的执行线程;
调用所述分配的对应数量的执行线程,以查询所述目标数据集合中的部分集合或者全部集合。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
确定待查询业务的业务优先权重;
确定所述待查询业务针对Mongo数据库中的目标数据集合;所述目标数据集合包括所述Mongo数据库中的冷库数据集合;
根据所述业务优先权重和所述目标数据集合的数量,确定所述待查询业务对应的执行线程数;所述执行线程数小于或等于所述目标数据集合的数量;
根据所述执行线程数,为所述待查询业务分配对应数量的执行线程;
调用所述分配的对应数量的执行线程,以查询所述目标数据集合中的部分集合或者全部集合。
上述实施例提供的数据查询方法、装置、计算机设备和可读存储介质中,计算机设备确定待查询业务的业务优先权重;确定待查询业务针对Mongo数据库中的目标数据集合;目标数据集合包括Mongo数据库中的冷库数据集合;根据业务优先权重和目标数据集合的数量,确定待查询业务对应的执行线程数;执行线程数小于或等于所述目标数据集合的数量;根据执行线程数,为待查询业务分配对应数量的执行线程;调用分配的对应数量的执行线程,以查询目标数据集合中的部分集合或者全部集合。在该方法中,由于不同的待查询业务对应有不同的业务优先权重,而不同权重的业务分配的执行线程数是有限的,这样根据待查询业务的业务优先权重和目标数据集合的数量,确定的待查询业务对应的执行线程数是比较准确的,所确定的执行线程数就能够完成对待查询业务的查询,避免了资源的浪费,提高了确定的待查询业务对应的执行线程数的准确度;进而根据确定的执行线程数,为待查询业务分配对应数量的执行线程,调用分配的执行线程,查询目标数据集合中的部分集合或者全部集合,由于执行线程数是确定的,这样会为待查询业务分配合理的执行线程数,在进行待查询业务的查询时只会调用待查询业务所对应的执行线程,不会同时占用过多的线程执行待查询业务的查询,使得线程的执行效率得到了提高,进而提高了对待查询业务的数据查询效率;另外,该方法中待查询业务针对Mongo数据库中的目标数据集合包括的是Mongo数据库中的冷库数据集合,通过将数据存储在冷库数据集合中,相比于传统技术中将所有数据存储在一个Mongo数据库集群中,通过在Mongo数据库集群中增加主备节点对新增数据进行存储的方法,这样便于对数据进行管理,提高了对数据的管理效率,进而在确定了待查询业务针对的目标数据集合和确定的执行线程后,就可以迅速地调用确定的执行线程,以查询目标数据集合中的部分集合或者全部集合,提高了对待查询业务的数据查询效率。
附图说明
图1为一个实施例提供的计算机设备的内部结构示意图;
图2为一个实施例提供的数据查询方法的流程示意图;
图3为另一个实施例提供的数据查询方法的流程示意图;
图4为一个实施例提供的数据存储的示意图;
图5为一个实施例提供的数据查询装置结构示意图;
图6为一个实施例提供的数据查询装置结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的数据查询方法,可以适用于如图1所示的计算机设备。该计算机设备包括通过系统总线连接的处理器、存储器,该存储器中存储有计算机程序,处理器执行该计算机程序时可以执行下述方法实施例的步骤。可选的,该计算机设备还可以包括网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器,该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。可选的,该计算机设备可以是服务器,可以是个人计算机,还可以是个人数字助理,还可以是其他的终端设备,例如平板电脑、手机等等,还可以是云端或者远程服务器,本申请实施例对计算机设备的具体形式并不做限定。
需要说明的是,本申请实施例提供的数据查询方法,其执行主体可以是上述计算机设备,具体地,还可以是上述计算机设备中处理器、存储在存储器中的软件程序或者是处理器和软件程序两者的结合。下述方法实施例中,均以执行主体是计算机设备为例来进行说明。
下面以具体的实施例对本发明的技术方案以及本发明的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图2为一个实施例提供的数据查询方法的流程示意图。本实施例涉及的是计算机设备为待查询业务分配对应数量的执行线程,调用分配的执行线程,查询待查询业务针对的目标数据集合中的部分集合或者全部集合的具体实现过程。如图2所示,该方法可以包括:
S201,确定待查询业务的业务优先权重。
具体的,计算机设备确定待查询业务的业务优先权重。可选的,计算机设备可以根据待查询业务的业务标识,确定待查询业务的业务优先权重。可以理解的是,不同的业务对应有不同的业务标识,各业务标识对应有不同的业务优先权重。示例性地,若某待查询业务的业务标识为紧急业务,则计算机设备可以将该待查询业务的业务优先权重确定为高;若某待查询业务的业务标识为正常业务,则计算机设备可以将该待查询业务的业务优先权重确定为中;若某待查询业务的业务标识为一般业务,则计算机设备可以将该待查询业务的业务优先权重确定为低。
S202,确定待查询业务针对Mongo数据库中的目标数据集合;目标数据集合包括所述Mongo数据库中的冷库数据集合。
具体的,计算机设备确定待查询业务针对Mongo数据库中的目标数据集合。其中,目标数据集合包括Mongo数据库中的冷库数据集合。可选的,计算机设备可以根据待查询业务的业务类型确定该待查询业务针对Mongo数据库中的目标数据集合。例如,某待查询业务的业务类型为查询近三个月的数据,则计算机设备可以根据该业务类型确定近三个月的数据针对Mongo数据库中的冷库数据集合。
S203,根据业务优先权重和目标数据集合的数量,确定待查询业务对应的执行线程数;执行线程数小于或等于目标数据集合的数量。
具体的,计算机设备根据上述确定的待查询业务的业务优先权重和确定的待查询业务针对的目标数据集合的数量,确定该待查询业务对应的执行线程数;其中,执行线程数小于或等于目标数据集合的数量,也就是说,执行线程数可以与目标数据集合的数量相等,一个执行线程对应一个目标数据集合,也可以是执行线程数小于目标数据集合的数量,即确定的执行线程查询目标数据集合中的部分集合。
S204,根据执行线程数,为待查询业务分配对应数量的执行线程。
具体的,计算机设备根据上述确定的待查询业务对应的执行线程数,为上述待查询业务分配对应数量的执行线程。可选的,计算机设备可以根据确定的执行线程数和线程池中空闲线程的数量,为待查询业务分配对应数量的执行线程。可选的,计算机设备为待查询业务分配的执行线程的数量可以小于执行线程数,也可以等于执行线程数。
S205,调用分配的对应数量的执行线程,以查询目标数据集合中的部分集合或者全部集合。
具体的,计算机设备调用上述分配的对应数量的执行线程,以查询目标数据集合中的部分集合或者全部集合。可以理解的是,若计算机设备为待查询业务分配的执行线程的数量小于执行线程数时,则计算机设备调用分配的对应数量的执行线程,查询的是目标数据集合中的部分集合;若计算机设备为待查询业务分配的执行线程的数量等于执行线程数时,则计算机设备调用分配的对应数量的执行线程,查询的是目标数据集合中的全部集合。可以理解的是,计算机设备在进行待查询业务的查询时只会调用待查询业务所对应的执行线程,不会同时占用过多的线程执行待查询业务的查询,使得线程的执行效率得到了提高,进而提高了对待查询业务的数据查询效率。
在本实施例中,由于不同的待查询业务对应有不同的业务优先权重,而不同权重的业务分配的执行线程数是有限的,这样根据待查询业务的业务优先权重和目标数据集合的数量,确定的待查询业务对应的执行线程数是比较准确的,所确定的执行线程数就能够完成对待查询业务的查询,避免了资源的浪费,提高了确定的待查询业务对应的执行线程数的准确度;进而根据确定的执行线程数,为待查询业务分配对应数量的执行线程,调用分配的执行线程,查询目标数据集合中的部分集合或者全部集合,由于执行线程数是确定的,这样会为待查询业务分配合理的执行线程数,在进行待查询业务的查询时只会调用待查询业务所对应的执行线程,不会同时占用过多的线程执行待查询业务的查询,使得线程的执行效率得到了提高,进而提高了对待查询业务的数据查询效率;另外,待查询业务针对Mongo数据库中的目标数据集合包括的是Mongo数据库中的冷库数据集合,通过将数据存储在冷库数据集合中,相比于传统技术中将所有数据存储在一个Mongo数据库集群中,通过在Mongo数据库集群中增加主备节点对新增数据进行存储的方法,这样便于对数据进行管理,提高了对数据的管理效率,进而在确定了待查询业务针对的目标数据集合和确定的执行线程后,就可以迅速地调用确定的执行线程,以查询目标数据集合中的部分集合或者全部集合,提高了对待查询业务的数据查询效率。
在一个实施例中,上述S204,包括:若执行线程数大于线程池中空闲执行线程的总数,则将空闲执行线程分配给待查询业务,并在线程池中存在新的空闲线程时,将新的空闲线程分配给等待中的待查询业务;若执行线程数小于或等于空闲执行线程的总数,则从空闲执行线程中选择与执行线程数相匹配的空闲线程,并分配给待查询业务。
具体的,若计算机设备确定的待查询业务对应的执行线程数大于线程池中空闲执行线程的总数,则计算机设备将空闲执行线程分配给待查询业务,此时,计算机设备为待查询业务分配的执行线程的数量小于待查询业务对应的执行线数,查询的是目标数据集合中的部分集合,并在线程池中存在新的空闲线程时,将新的空闲线程分配给待查询业务,将继续查询目标数据集合中等待被查询的部分集合,直至分配的线程数与确定的待查询业务对应的执行线程数相匹配;若计算机设备确定的待查询业务对应的执行线程数小于线程池中空闲执行线程的总数,则计算机设备从线程池中空闲执行线程中选择与执行线程数相匹配的空闲线程,并分配给待查询业务,计算机设备为待查询业务分配的执行线程的数量等于待查询业务对应的执行线数,查询的是目标数据集合中的全部集合。例如,确定的待查询业务对应的执行线程数为5,若线程池中空闲执行线程的总数为2,则计算机设备将该空闲的2条执行线程分配给待查询业务,并在线程池中存在新的空闲线程时,将新的空闲线程分配给待查询业务,直至为待查询业务分配了5条线程为止;若线程池中空闲执行线程的总数为7,则计算机设备从该7条空闲执行线程选择5条空闲的执行线程分配给待查询业务。
在本实施例中,计算机设备根据确定的执行线程数与线程池中空闲执行线程的总数,为待查询业务分配对应数量的执行线程,这样会为待查询业务分配合理的执行线程,在进行待查询业务的查询时只会调用待查询业务所对应的执行线程,不会同时占用过多的线程执行待查询业务的查询,使得线程的执行效率得到了提高,进而提高了对待查询业务的数据查询效率。
图3为另一个实施例提供的数据查询方法的流程示意图。本实施例涉及的是计算机设备根据待查询业务的业务优先权重和确定的待查询业务针对的目标数据集合的数量,确定待查询业务对应的执行线程数的具体实现过程。如图3所示,在上述实施例的基础上,作为一种可选的实施方式,上述S203,包括:
S301,获取业务优先权重对应的权重系数。
具体的,计算机设备在确定了待查询业务的业务优先权重后,获取业务优先权重对应的权重系数。可选的,计算机设备可以根据预设的业务优先权重与权重系数的对应关系,获取确定的业务优先权重对应的权重系数。例如,预设的业务优先权重与权重系数的对应关系可以为:业务优先权重为高,则对应的权重系数为1,业务优先权重为中,则对应的权重系数为1/2,业务优先权重为低,则对应的权重系数为1/5。
S302,获取业务优先权重对应的权重系数与目标数据集合的数量的乘积值,将乘积值确定为待查询业务对应的执行线程数。
具体的,计算机设备获取到业务优先权重对应的权重系数后,获取上述待查询业务的业务优先权重对应的权重系数与上述确定的待查询业务针对的目标数据集合的数量的乘积值,将获取的乘积值确定为待查询业务对应的执行线程数。可以理解的是,若待查询业务的业务优先权重对应的权重系数与确定的待查询业务针对的目标数据集合的数量的乘积值为非整数,则对乘积值取整加1得到待查询业务对应的执行线程数。例如,获取的业务优先权重对应的权重系数为1/2,确定的待查询业务针对的目标数据集合的数量为8,则得到的待查询业务的业务优先权重对应的权重系数与待查询业务针对的目标数据集合的数量的乘积值为4,则计算机设备将该乘积值4确定为待查询业务对应的执行线程数,也就是确定的待查询业务对应的执行线程数为4;若确定的待查询业务针对的目标数据集合的数量为9,得到的待查询业务的业务优先权重对应的权重系数与待查询业务针对的目标数据集合的数量的乘积值为4.5,则计算机设备确定待查询业务对应的执行线程数为5。
在本实施例中,计算机设备获取待查询业务优先权重对应的权重系数,获取业务优先权重对应的权重系数与目标数据集合的数量的乘积值的过程十分简单,提高了得到待查询业务的业务优先权重对应的权重系数与目标数据集合的数量的乘积值的效率,即提高了确定待查询业务对应的执行线程数的效率。
图4为一个实施例提供的数据存储的示意图。在上述实施例的基础上,作为一种可选的实施方式,上述Mongo数据库还包括热库数据集合;冷库数据集合中的数据包括热库数据集合中的数据;冷库数据集合包括不同时间段所对应的多个数据集合。
具体的,上述Mongo数据库还包括热库数据集合;其中,冷库数据集合中的数据包括热库数据集合中的数据,且冷库数据集合包括不同时间段所对应的多个数据集合。。可以理解的是,热库中存储的数据为活跃度比较高的一些数据,也就是查询频率较高、与当前查询时间最接近的数据;冷库中存储的数据为与当前查询时间相隔较远、查询频率较低的数据。如图4所示,图4左边部分为传统技术中对数据的存储方式,所有的数据都存储在一个表中,表中包含全部的数据,且存储的数据是不分日期进行的存储,若要对表进行扩容是通过增加分片节点的方式扩容该存储数据的表。图4右边部分为本申请提供的数据存储方式,将数据分为冷热数据,热库仅保留最近N个月的数据,用于实时查询业务;冷库中存储的数据按照时间划分为多个Mongo集群,每个Mongo集群中的数据按照月份划分为多张表,每个月一张表,用于非实时查询业务。可以理解的是,本申请中提供的数据存储方式,热库仅存储最近N个月的数据,所以随着业务时间的增长,热库的数据量并不会急剧增加,所以对扩容的需求相对来说少很多(扩容引起增加存储量(磁盘)、增加查询性能(CPU、内存)、增加插入性能(内存、磁盘),而热库因为数据量少很多则可以节省存储量,查询时因过滤数据要少很多则可以节省CPU及内存,插入需要维护索引信息,在数据量少的情况下同样可以节省CPU和内存),同时每次扩容需要增加较多节点(正常增加时会增加主备节点),这些节点的硬件配置都很高,如此会相应占用更多的资源,所以,本申请提供的热库可以节省较多硬件资源。因此热库可使用较高的硬件配置以便于数据的存储和查询,同时,由于冷库存储数据量相较大,这部分数据的硬件成本是增加的,所以冷库可以使用较低的硬件配置来满足业务查询,以此降低存储的成本,可选的,热库的存储器可以采用固态硬盘,冷库的存储器可以采用机械硬盘,相比现有仅采用一个高配置的数据集合存储和查询数据的方式相比,能够节约存储的成本。
在本实施例中,Mongo数据库还包括热库数据集合,冷库数据集合中的数据包括热库数据集合中的数据,通过将数据划分为冷热数据,分别存储在冷库和热库中,这样便于对数据进行管理,提高了对数据的管理效率,进而在确定了待查询业务针对的目标数据集合和确定的执行线程后,计算机设备就能够迅速地调用确定的执行线程,以查询目标数据集合中的部分集合或者全部集合,提高了待查询业务的查询效率。
在上述实施例的基础上,作为一种可选的实施方式,可选的,上述方法还包括:定时检测热库中的数据是否符合热库的时间要求,将不符合时间要求的数据从热库中移出。
具体的,计算机设备定时检测热库中的数据是否符合热库的时间要求,将不符合时间要求的数据从热库中移出。可选的,计算机设备可以在热库中增加(如果热库中已经包含了日期字段可不增加)一个日期字段用于检索过期数据并删除,然后在集合上增加该字段的TTL索引,TTL索引可以定时清除超过指定时间的记录,热库会自动按照该索引清除符合条件的数据。需要说明的是,如果业务数据主要集中在白天,则数据清除需避开高峰时段,减少数据清除对热库性能的影响,而避免的方式可以通过对TTL字段值做一次映射,例如:业务数据在白天8-23点增加量很大,此时我们设置TTL字段值集中在23-8点,这样白天就不会检索到数据,不做清除操作。
在本实施例中,计算机设备定时检测热库中数据是否符合热库的时间要求,将不符合时间要求的数据从热库中移出,这样可以降低热库数据的存储量,便于对数据管理,能够降低对热库存储器的要求,节省较多的硬件成本。
在一些场景中,计算机设备会对热库中存储的数据进行更新,可选的,计算机设备会实时监听热库的数据操作日志,从数据操作日志中读取热库中的更新数据,根据更新数据的日期字段值,确定更新数据在冷库中对应的数据集合,并将更新数据写入冷库中对应的数据集合。可选的,若冷库中不存在上述更新数据对应的数据集合,则计算机设备根据上述更新数据的日期字段值,在冷库中创建新的数据集合,并将更新数据写入新的数据集合中。
在本实施例中,计算机设备实时监听热库的数据操作日志,读取热库中的更新数据,根据更新数据的日期字段值,将更新的数据写入冷库中的数据集合,保证了冷库中的数据集合存储的数据可以进行同步地更新,保证了待查询的业务有对应的数据可以进行查询,进而提高了待查询业务的查询效率。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图5为一个实施例提供的数据查询装置结构示意图。如图5所示,该装置可以包括:第一确定模块10、第二确定模块11、第三确定模块12、分配模块13和查询模块14。
具体的,第一确定模块10,用于确定待查询业务的业务优先权重;
第二确定模块11,用于确定待查询业务针对Mongo数据库中的目标数据集合;目标数据集合包括Mongo数据库中的冷库数据集合;
第三确定模块12,用于根据业务优先权重和目标数据集合的数量,确定待查询业务对应的执行线程数;执行线程数小于或等于目标数据集合的数量;
分配模块13,用于根据执行线程数,为待查询业务分配对应数量的执行线程;
查询模块14,用于调用分配的对应数量的执行线程,以查询目标数据集合中的部分集合或者全部集合。
可选的,Mongo数据库还包括热库数据集合;冷库数据集合中的数据包括所热库数据集合中的数据。
本实施例提供的数据查询装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
图6为一个实施例提供的数据查询装置结构示意图。在上述实施例的基础上,可选的,如图6所示,上述分配模块13包括:第一分配单元131和第二分配单元132。
具体的,第一分配单元131,用于若执行线程数大于线程池中空闲执行线程的总数,则将空闲执行线程分配给待查询业务,并在所述线程池中存在新的空闲线程时,将所述新的空闲线程分配给等待中的所述待查询业务;
第二分配单元132,用于若执行线程数小于或等于空闲执行线程的总数,则从空闲执行线程中选择与执行线程数相匹配的空闲线程,并分配给待查询业务。
本实施例提供的数据查询装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
请继续参见图6,在上述实施例的基础上,可选的,如图6所示,上述第三确定模块12包括:第一获取单元121和第二获取单元122。
具体的,第一获取单元121,用于获取业务优先权重对应的权重系数;
第二获取单元122,用于获取业务优先权重对应的权重系数与目标数据集合的数量的乘积值,将乘积值确定为待查询业务对应的执行线程数。
本实施例提供的数据查询装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
请继续参见图6,在上述实施例的基础上,可选的,如图6所示,上述装置还包括:移出模块15。
具体的,删除模块15,用于定时检测热库中的数据是否符合热库的时间要求,将不符合时间要求的数据从热库中移出。
本实施例提供的数据查询装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
请继续参见图6,在上述实施例的基础上,可选的,如图6所示,上述装置还包括:第一写入模块16。
具体的,第一写入模块16,用于实时监听热库的数据操作日志,从数据操作日志中读取热库中的更新数据,根据更新数据的日期字段值,确定更新数据在冷库中对应的数据集合,并将更新数据写入对应的数据集合。
本实施例提供的数据查询装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
请继续参见图6,在上述实施例的基础上,可选的,如图6所示,上述装置还包括:第二写入模块17。
具体的,第二写入模块17,用于若冷库中不存在更新数据对应的数据集合,则根据更新数据的日期字段值,在冷库中创建新的数据集合,并将更新数据写入新的数据集合中。
本实施例提供的数据查询装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
关于数据查询装置的具体限定可以参见上文中对于数据查询方法的限定,在此不再赘述。上述数据查询装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
确定待查询业务的业务优先权重;
确定待查询业务针对的目标数据集合;
根据业务优先权重和目标数据集合的数量,确定待查询业务对应的执行线程数;执行线程数小于或等于目标数据集合的数量;
根据执行线程数,为待查询业务分配对应数量的执行线程;
调用对应数量的执行线程,以查询目标数据集合中的部分集合或者全部集合。
上述实施例提供的计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
在一个实施例中,提供了一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
确定待查询业务的业务优先权重;
确定待查询业务针对的目标数据集合;
根据业务优先权重和目标数据集合的数量,确定待查询业务对应的执行线程数;执行线程数与目标数据集合的数量的比值小于或等于1;
根据执行线程数,为待查询业务分配对应数量的执行线程;
调用对应数量的执行线程,以查询目标数据集合中的部分集合或者全部集合。
上述实施例提供的可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据查询方法,其特征在于,所述方法包括:
确定待查询业务的业务优先权重;
确定所述待查询业务针对Mongo数据库中的目标数据集合;所述目标数据集合包括所述Mongo数据库中的冷库数据集合;
根据所述业务优先权重和所述目标数据集合的数量,确定所述待查询业务对应的执行线程数;所述执行线程数小于或等于所述目标数据集合的数量;
根据所述执行线程数,为所述待查询业务分配对应数量的执行线程;
调用所述分配的对应数量的执行线程,以查询所述目标数据集合中的部分集合或者全部集合。
2.根据权利要求1所述的方法,其特征在于,所述根据所述执行线程数,为所述待查询业务分配对应数量的执行线程,包括:
若所述执行线程数大于线程池中空闲执行线程的总数,则将所述空闲执行线程分配给所述待查询业务,并在所述线程池中存在新的空闲线程时,将所述新的空闲线程分配给等待中的所述待查询业务;
若所述执行线程数小于或等于所述空闲执行线程的总数,则从所述空闲执行线程中选择与所述执行线程数相匹配的空闲线程,并分配给所述待查询业务。
3.根据权利要求1所述的方法,其特征在于,所述根据所述业务优先权重和所述目标数据集合的数量,确定所述待查询业务对应的执行线程数,包括:
获取所述业务优先权重对应的权重系数;
获取所述业务优先权重对应的权重系数与所述目标数据集合的数量的乘积值,将所述乘积值确定为所述待查询业务对应的执行线程数。
4.根据权利要求1所述的方法,其特征在于,所述Mongo数据库还包括热库数据集合;所述冷库数据集合中的数据包括所述热库数据集合中的数据;所述冷库数据集合包括不同时间段所对应的多个数据集合。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
定时检测所述热库中的数据是否符合所述热库的时间要求,将不符合所述时间要求的数据从所述热库中移出。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
实时监听所述热库的数据操作日志,从所述数据操作日志中读取所述热库中的更新数据,根据所述更新数据的日期字段值,确定所述更新数据在所述冷库中对应的数据集合,并将所述更新数据写入所述对应的数据集合。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述冷库中不存在所述更新数据对应的数据集合,则根据所述更新数据的日期字段值,在所述冷库中创建新的数据集合,并将所述更新数据写入所述新的数据集合中。
8.一种数据查询装置,其特征在于,所述装置包括:
第一确定模块,用于确定待查询业务的业务优先权重;
第二确定模块,用于确定所述待查询业务针对Mongo数据库中的目标数据集合;所述目标数据集合包括所述Mongo数据库中的冷库数据集合;
第三确定模块,用于根据所述业务优先权重和所述目标数据集合的数量,确定所述待查询业务对应的执行线程数;所述执行线程数小于或等于所述目标数据集合的数量;
分配模块,用于根据所述执行线程数,为所述待查询业务分配对应数量的执行线程;
查询模块,用于调用所述分配的对应数量的执行线程,以查询所述目标数据集合中的部分集合或者全部集合。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910894582.5A CN110825732A (zh) | 2019-09-20 | 2019-09-20 | 数据查询方法、装置、计算机设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910894582.5A CN110825732A (zh) | 2019-09-20 | 2019-09-20 | 数据查询方法、装置、计算机设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110825732A true CN110825732A (zh) | 2020-02-21 |
Family
ID=69548158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910894582.5A Pending CN110825732A (zh) | 2019-09-20 | 2019-09-20 | 数据查询方法、装置、计算机设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110825732A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114942942A (zh) * | 2022-05-18 | 2022-08-26 | 马上消费金融股份有限公司 | 特征数据的查询及其用户注册查询方法和装置 |
CN115544096A (zh) * | 2022-11-22 | 2022-12-30 | 深圳市东信时代信息技术有限公司 | 数据查询方法、装置、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294472A (zh) * | 2015-06-03 | 2017-01-04 | 中国移动通信集团广东有限公司 | 一种Hadoop数据库HBase的查询方法及装置 |
CN106599310A (zh) * | 2016-12-29 | 2017-04-26 | 中国建设银行股份有限公司 | 基于多数据源场景的并发查询方法和装置 |
US20170185593A1 (en) * | 2015-12-28 | 2017-06-29 | Sap Se | Semantics for document-oriented databases |
CN109783229A (zh) * | 2018-12-17 | 2019-05-21 | 平安普惠企业管理有限公司 | 线程资源分配的方法及装置 |
CN110019339A (zh) * | 2017-11-20 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 一种数据查询方法和系统 |
-
2019
- 2019-09-20 CN CN201910894582.5A patent/CN110825732A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294472A (zh) * | 2015-06-03 | 2017-01-04 | 中国移动通信集团广东有限公司 | 一种Hadoop数据库HBase的查询方法及装置 |
US20170185593A1 (en) * | 2015-12-28 | 2017-06-29 | Sap Se | Semantics for document-oriented databases |
CN106599310A (zh) * | 2016-12-29 | 2017-04-26 | 中国建设银行股份有限公司 | 基于多数据源场景的并发查询方法和装置 |
CN110019339A (zh) * | 2017-11-20 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 一种数据查询方法和系统 |
CN109783229A (zh) * | 2018-12-17 | 2019-05-21 | 平安普惠企业管理有限公司 | 线程资源分配的方法及装置 |
Non-Patent Citations (3)
Title |
---|
东山絮柳仔: "Mongo DB通过Shell实现集合的日常归档", 《HTTPS://WWW.CNBLOGS.COM/XULIUZAI/P/10698241.HTML》 * |
冯超政,等: "基于冷热数据的Mongo自动分片机制", 《计算机工程》 * |
梁云柯: "MongoDB索引机制研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114942942A (zh) * | 2022-05-18 | 2022-08-26 | 马上消费金融股份有限公司 | 特征数据的查询及其用户注册查询方法和装置 |
CN115544096A (zh) * | 2022-11-22 | 2022-12-30 | 深圳市东信时代信息技术有限公司 | 数据查询方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10579364B2 (en) | Upgrading bundled applications in a distributed computing system | |
US11099937B2 (en) | Implementing clone snapshots in a distributed storage system | |
US20190213085A1 (en) | Implementing Fault Domain And Latency Requirements In A Virtualized Distributed Storage System | |
EP3367251B1 (en) | Storage system and solid state hard disk | |
KR101994021B1 (ko) | 파일 조작 방법 및 장치 | |
US11113158B2 (en) | Rolling back kubernetes applications | |
EP2645259B1 (en) | Method, device and system for caching data in multi-node system | |
US11314689B2 (en) | Method, apparatus, and computer program product for indexing a file | |
CN110555001B (zh) | 数据处理方法、装置、终端及介质 | |
CN110196860B (zh) | 唯一标识分配方法及装置、电子设备、存储介质 | |
CN110727517A (zh) | 一种基于分区设计的内存分配方法和装置 | |
CN103236989A (zh) | 一种内容分发网络中的缓存控制方法、设备及系统 | |
CN103412884A (zh) | 一种异构存储介质下嵌入式数据库的管理方法 | |
CN112256433B (zh) | 基于Kafka集群的分区迁移方法和装置 | |
CN110825732A (zh) | 数据查询方法、装置、计算机设备和可读存储介质 | |
CN113111038A (zh) | 文件存储方法、装置、服务器及存储介质 | |
CN112749198A (zh) | 一种基于版本号的多级数据缓存方法及装置 | |
CN107969153A (zh) | 一种资源分配方法、装置及numa系统 | |
CN110162395B (zh) | 一种内存分配的方法及装置 | |
CN111580951A (zh) | 一种任务分配方法及资源管理平台 | |
CN112711564B (zh) | 合并处理方法以及相关设备 | |
CN106537321B (zh) | 存取文件的方法、装置和存储系统 | |
CN107632944B (zh) | 一种读取数据的方法及装置 | |
CN106970964B (zh) | 基于共享内存的gps数据信息查询方法及系统 | |
CN104639570A (zh) | 资源对象存储处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220323 Address after: 510630 Room 101, No. 227, Gaotang Road, Tianhe District, Guangzhou City, Guangdong Province (Location: Room 601) (office only) Applicant after: Yamei Zhilian Data Technology Co.,Ltd. Address before: Room 201, No.1 Hanjing Road, Tianhe District, Guangzhou City, Guangdong Province Applicant before: GUANGZHOU YAME INFORMATION TECHNOLOGY Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200221 |