CN108509501B - 一种查询处理方法、服务器及计算机可读存储介质 - Google Patents
一种查询处理方法、服务器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN108509501B CN108509501B CN201810167497.4A CN201810167497A CN108509501B CN 108509501 B CN108509501 B CN 108509501B CN 201810167497 A CN201810167497 A CN 201810167497A CN 108509501 B CN108509501 B CN 108509501B
- Authority
- CN
- China
- Prior art keywords
- query
- data
- learning model
- target
- statement
- 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.)
- Active
Links
Images
Abstract
本发明提供一种查询处理方法,包括:接收查询请求,查询请求中携带查询语句;将查询语句进行语法分析转换,生成第一目标语法语句;根据第一目标语法语句,选择与之匹配的目标学习模型;根据目标学习模型预测下一次查询所需的第二目标语法语句,并将第二目标语法语句对应的查询结果的数据从磁盘预先加载到内存中去;本发明还提供一种服务器及计算机可读存储介质,不同业务场景下有不同的学习模型,根据学习模型预测下一次查询的查询结果,并将查询结果的数据从磁盘预先加载到内存中去,用来加速后续的查询操作,满足了MongoDB各个场景下数据查询速率提升的需求;提升MongoDB的并发查询性能,最终提升对接业务服务的整体处理效率。
Description
技术领域
本发明涉及数据库领域,更具体地说,涉及一种查询处理方法、服务器及计算机可读存储介质。
背景技术
MongoDB是一个基于分布式文件存储的数据库,存储对象为非结构化数据;数据存储易扩展、低损耗,非常适用于存储业务操作日志、交易历史数据等信息。MongoDB数据库使用简单,功能强大,因其非事务性、海量存储、高效内存读写的特性,使得它在国内外的大小企业中使用非常广泛。
MongoDB号称内存型数据库,会尽可能的将最新写入的数据缓存在内存中,这部分数据也常被称为“热数据”;而持久化保存在磁盘中的数据则被称为“冷数据”。举个例子:假设MongoDB中存储有1000G数据,MongoDB在部署初期被分配允许最大使用机器20G内存,则最新写入MongoDB的20G数据会被缓存在内存中;在通常业务场景下,历史数据的使用频率随时间的推进而降低,越老的历史数据使用的概率越低,越新的历史数据使用概率越高,所以根据这一思想,MongoDB将最新的20G数据缓存在内存中,作为热数据,是满足大部分的常规业务的,能给这些常规业务提供非常快的数据查询,其中,查询结果的数据来自于内存,而非磁盘。
但对于某些业务(例如带有分析型的业务)场景下,MongoDB提供热数据的查询机制则无法给予很好的查询性能,比如每1分钟触发一次查询前8个月当前时刻的100条数据来做数据对比分析,虽然该查询返回的结果集数据不超过800条,但因其时间跨度的因素,目标结果数据已不仅仅局限在内存中,还有部分结果集需要从磁盘中读取,从磁盘读取数据的速率是远远低于从内存中读取数据的速率,查询效率低下;若是该查询属于高并发型查询,则会造成MongoDB处理性能的急剧下降,对接业务服务请求堵塞,极端情况下很可能会出现雪崩式服务崩塌宕机。
发明内容
本发明的主要目的在于提出一种查询处理方法、服务器及计算机可读存储介质,旨在解决现有技术中,MongoDB提供的热数据的查询机制,无法智能的解决不同业务场景下的查询效率低下的问题,以及在高并发型查询下,MongoDB处理性能急剧下降,对接业务服务请求堵塞,极端情况下很可能会出现雪崩式服务崩塌宕机的问题。
为解决上述技术问题,本发明提供一种查询处理方法,查询处理方法包括以下步骤:
接收查询请求,查询请求中携带查询语句;
将查询语句进行语法分析转换,生成第一目标语法语句;
根据第一目标语法语句,选择与之匹配的目标学习模型;
根据目标学习模型预测下一次查询所需的第二目标语法语句,并将第二目标语法语句对应的查询结果的数据从磁盘预先加载到内存中去。
可选的,将第二目标语法语句对应的查询结果的数据从磁盘预先加载到内存中去包括:
将第二目标语法语句对应的查询结果的数据、以守护线程的方式从磁盘预先加载到内存中去。
可选的,在接收查询请求之前,还包括以下步骤:
定期获取操作日志中的所有操作记录的语法语句;
从所有操作记录的语法语句中筛选出查询耗时大于第一预设阈值的操作记录的语法语句;
并根据语法类型对筛选出来的操作记录的语法语句进行类型划分;
分别判断每个类型数据是否已存在对应的学习模型;
对于不存在学习模型的类型数据,则根据类型数据生成对应的学习模型,并保存到磁盘中。
可选的,每个类型数据各自按照预设比例被划分为训练数据和测试数据;
根据类型数据生成对应的学习模型包括:
根据类型数据中的训练数据生成对应的学习模型;
根据测试数据对对应的学习模型的准确率进行校验;
若准确率大于等于第二预设阈值,则将学习模型保存到磁盘中;
若准确率小于第二预设阈值,则将学习模型删除。
可选的,在分别判断每个类型数据是否已存在对应的学习模型之后,还包括以下步骤:
对于已存在学习模型的类型数据,则使用类型数据对对应的学习模型进行优化。
可选的,方法还包括以下步骤:
判断磁盘中保存的学习模型是否满足预设条件;
将满足预设条件的学习模型删除;
预设条件包括以下方式中的至少一种:磁盘中保存的学习模型在预设时长内未被使用,磁盘中保存的学习模型的个数超过第三预设阈值。
可选的,在根据第一目标语法语句,选择与之匹配的目标学习模型之前,还包括以下步骤:
判断服务器的负载是否大于第四预设阈值;
若是,则在预设时长之后,执行根据第一目标语法语句,选择与之匹配的目标学习模型的步骤;
若否,则执行根据第一目标语法语句,选择与之匹配的目标学习模型的步骤。
进一步地,本发明提供一种服务器,服务器包括磁盘、内存、数据预热组件、请求分析器、以及请求连接器;
请求连接器,用于接收查询请求,查询请求中携带查询语句;
请求分析器,用于将查询语句进行语法分析转换,生成第一目标语法语句;
数据预热组件,用于根据第一目标语法语句,选择与之匹配的目标学习模型;并根据目标学习模型预测下一次查询所需的第二目标语法语句,并将第二目标语法语句对应的查询结果的数据从磁盘预先加载到内存中去;
磁盘,用于存储查询结果的数据;
内存,用于存储从磁盘加载过来的查询结果的数据。
可选的,服务器还包括:性能分析组件以及模型生成组件;磁盘还用于存储操作日志;
性能分析组件,用于定期获取操作日志中的所有操作记录的语法语句;从所有操作记录的语法语句中筛选出查询耗时大于预设阈值的操作记录的语法语句;并根据语法类型对筛选出来的操作记录的语法语句进行类型划分,并将每个类型数据传输给模型生成组件;
模型生成组件,用于分别判断每个类型数据是否已存在对应的学习模型;对于不存在学习模型的类型数据,则根据类型数据生成对应的学习模型,并保存到磁盘中。
进一步地,本发明提供一种计算机可读存储介质,计算机可读存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现如上的一种查询处理方法的步骤。
有益效果
本发明提供了一种查询处理方法、服务器及计算机可读存储介质,该查询处理方法包括以下步骤:接收查询请求,查询请求中携带查询语句;将查询语句进行语法分析转换,生成第一目标语法语句;根据第一目标语法语句,选择与之匹配的目标学习模型;根据目标学习模型预测下一次查询所需的第二目标语法语句,并将第二目标语法语句对应的查询结果的数据从磁盘预先加载到内存中去;通过上述方案,不同业务场景下有不同的学习模型,根据学习模型预测下一次查询的查询结果,并将查询结果的数据从磁盘预先加载到内存中去,用来加速后续的查询操作,满足了MongoDB各个场景下数据查询速率提升的需求;并提升MongoDB的并发查询性能,最终提升对接业务服务的整体处理效率。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为实现本发明各个实施例一个可选的服务器的硬件结构示意图;
图2为本发明第一实施例提供的一种查询处理方法的基本流程图;
图3为本发明第一实施例提供的一种MongoDB软件架构的示意图;
图4为本发明第二实施例提供的另一种查询处理方法的基本流程图;
图5为本发明第二实施例提供的一种学习模型的构建方法的基本流程图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,为实现本发明各个实施例一个可选的服务器的结构示意图,该服务器至少包括:输入输出(IO)总线11、处理器12、存储器13、内存14和通信装置15。其中,
输入输出(IO)总线11分别与自身所属的服务器的其它部件(处理器12、存储器13、内存14和通信装置15)连接,并且为其它部件提供传送线路。
处理器12通常控制自身所属的服务器的总体操作。例如,处理器12执行计算和确认等操作。其中,处理器12可以是中央处理器(CPU)。
通信装置15,通常包括一个或多个组件,其允许自身所属的服务器与无线通信系统或网络之间的无线电通信。
存储器13存储处理器可读、处理器可执行的软件代码,其包含用于控制处理器12执行本文描述的功能的指令(即软件执行功能)。
基于上述服务器硬件结构,提出本发明方法各个实施例。
第一实施例
为了解决现有技术中,MongoDB提供的热数据的查询机制,无法智能的解决不同业务场景下的查询效率低下的问题,以及在高并发型查询下,MongoDB处理性能急剧下降,对接业务服务请求堵塞,极端情况下很可能会出现雪崩式服务崩塌宕机的问题,本实施例将提供一种查询处理方法,参见图2,图2为本实施例提供的一种查询处理方法的基本流程图,该查询处理方法包括以下步骤:
S201:接收查询请求,查询请求中携带查询语句;
MongoDB是基于分布式文件存储的数据库,存储对象为非结构化数据;数据存储易扩展、低损耗,非常适用于存储业务操作日志、交易历史数据等信息。
MongoDB数据库使用简单,功能强大,因其非事务性、海量存储、高效内存读写的特性,使得它在国内外的大小企业中使用非常广泛。
查询请求用于请求MongoDB数据库中的数据。
查询请求中携带的查询语句例如查询前8个月当前时刻的100条数据,或者每1分钟触发一次查询前8个月当前时刻的100条数据,或者按照某一时间以及某一地域进行查询,或者按照性别进行查询等。
参见图3,图3为本实施例提供的一种MongoDB软件架构的示意图,图3的软件架构中,是基于MongoDB已有软件架构(包括请求连接器、请求分析器、索引映射器、热数据存储区域、冷数据存储区域)的基础上进行优化(对MongoDB已有软件架构描述有一定的删减),新增了3个组件与2块存储区域,3个组件分别是:性能分析组件、模型生成组件与数据预热组件,2块存储区域分别为操作日志存储区域与学习模型存储区域。
其中,热数据存储区域为内存,冷数据存储区域为磁盘;操作日志存储区域与学习模型存储区域均为磁盘。热数据、冷数据合为业务数据,与操作日志、学习模型组合成MongoDB的存储部分。性能分析组件、模型生成组件与数据预热组件为提升MongoDB数据库查询性能提升而服务。
可以由MongoDB软件架构中的请求连接器执行S201的步骤;由请求连接器接收客户端的查询请求。
可选的,在S201接收查询请求之前,还包括以下生成学习模型的步骤:
第一步:定期获取操作日志中的所有操作记录的语法语句;
学习模型的生成是定期进行,非实时进行的,学习模型的生成的时间间隔可以根据实际情况进行确定,例如可视为每日夜间执行一次、或者每两日执行一次等。
从操作日志存储区域中,定期获取所有操作记录的语法语句;
第二步:从所有操作记录的语法语句中筛选出查询耗时大于第一预设阈值的操作记录的语法语句;
只取查询耗时较大的数据,查询耗时未大于第一预设阈值的操作记录数据直接删除。使用学习模型来提升查询效率,是针对查询耗时较大的数据;若查询耗时未大于第一预设阈值,则表明可能直接选择现有技术中的热数据查询机制进行查询,可快速查询到结果。
第三步:并根据语法类型对筛选出来的操作记录的语法语句进行类型划分;
上述的第一步、第二步、第三步这三个步骤可以由MongoDB软件架构中的性能分析组件执行。
性能分析组件在完成类型划分之后,便将每个类型数据传输给模型生成组件。
在对操作日志进行耗时分析、同类数据归并等一系列数据整合处理之后,将整合好的每个类型数据传输给模型生成组件。
第四步:分别判断每个类型数据是否已存在对应的学习模型;
第五步:对于不存在学习模型的类型数据,则根据类型数据生成对应的学习模型,并保存到磁盘中。
上述的第四步、第五步这两个步骤可以由MongoDB软件架构中的模型生成组件执行。
在使用完定期获取的操作日志中的所有操作记录的数据之后,便把这些数据从磁盘中全部删除。
对于每个类型数据,都有其对应的语法类型,在生成学习模型之后,除了将学习模型保存到磁盘中之外,还将语法类型与学习模型的对应关系保存到磁盘中。语法类型与学习模型的对应关系可以以一个对应关系表的形式进行存储,例如语法类型与学习模型的对应关系表参见下表1:
表1
可选的,在分别判断每个类型数据是否已存在对应的学习模型之后,还包括以下步骤:
对于已存在学习模型的类型数据,则使用类型数据对对应的学习模型进行优化,以提高学习模型的准确率。
可选的,每个类型数据各自按照预设比例被划分为训练数据和测试数据;
预设比例可以根据实际情况进行设置,例如4:1、2:1等;
根据类型数据生成对应的学习模型包括:
根据类型数据中的训练数据生成对应的学习模型;
根据测试数据对生成的对应的学习模型的准确率进行校验;
若准确率大于等于第二预设阈值,则将学习模型保存到磁盘中,以供后续查询使用,以及以供后续查询优化学习模型使用;
若准确率小于第二预设阈值,则将学习模型删除,不保存到磁盘中。
通过预留的测试数据对生成的学习模型的准确率进行校验,保证学习模型的准确性。
第二预设阈值可以在MongoDB配置文件中预先设置调整。
本实施中,使用内置的回归算法尝试对训练数据进行学习模型的生成。
S202:将查询语句进行语法分析转换,生成第一目标语法语句;
可以由MongoDB软件架构中的请求分析器执行S202的步骤;
将查询语句进行语法分析转换,生成第一目标语法语句,第一目标语法语句是机器可识别的语法语句,机器可识别的语法语句执行效率更高。
可选的,在S202将查询语句进行语法分析转换,生成第一目标语法语句之后,还包括以下步骤:将第一目标语法语句保存到操作日志中,并会记录上该查询请求在整个处理过程中的耗时,以供后续性能分析及学习模型的生成使用,且这些存储的数据最终是被定期用于学习模型生成,并在使用完之后清空操作日志中的数据,不做永久存储。
学习模型的生成是定期进行,非实时进行,学习模型的生成的时间间隔可以根据实际情况进行确定,例如可视为每日夜间执行一次、或者每两日执行一次等。
S203:根据第一目标语法语句,选择与之匹配的目标学习模型;
可选的,S203根据第一目标语法语句,选择与之匹配的目标学习模型包括:根据第一目标语法语句的语法类型,从预设的语法类型与学习模型的对应关系中,匹配出目标学习模型。
MongoDB软件架构的学习模型存储区域中,共存储两部分数据,主要是存储多个学习模型,同时也存储预设的语法类型与学习模型的对应关系;在这两部分存储数据中,后者占据空间比例很小。
若没有与目标语法语句匹配的学习模型,则不会进入到S204的步骤。
S204:根据目标学习模型预测下一次查询所需的第二目标语法语句,并将第二目标语法语句对应的查询结果的数据从磁盘预先加载到内存中去。
可以由MongoDB软件架构中的数据预热组件执行S203-S204的步骤;
可选的,S204将第二目标语法语句对应的查询结果的数据从磁盘预先加载到内存中去的方式包括:
将第二目标语法语句对应的查询结果的数据、以守护线程的方式从磁盘预先加载到内存中去。
将查询结果的数据从磁盘预先加载到内存中去,用来加速后续的查询操作,满足了MongoDB各个场景下数据查询速率提升的需求;并提升MongoDB的并发查询性能,最终提升对接业务服务的整体处理效率。
例如,若查询请求为每1分钟触发一次查询前8个月当前时刻的100条数据,6点(此查询请求的起始时间点)查询了一次,则在6点时会匹配出目标学习模型(6点的查询结果是没有使用学习模型的,是采用现有的热数据机制进行查询),将6:01的查询结果预先加载到内存中。通过本实施例的数据预热机制,可以在下一分钟到来前,便将查询结果数据从磁盘预先加载到内存中来。
本实施例中,数据预热组件根据查询语法的特征,选择性的使用学习模型进行类线性回归分析,以匹配出目标学习模型,预测出下一次所需查询的语句,然后将数据预热到内存中去。
可选的,本实施例提供的方法还包括以下步骤:
判断磁盘中保存的学习模型是否满足预设条件;
将满足预设条件的学习模型删除;
预设条件包括以下方式中的至少一种:磁盘中保存的学习模型在预设时长内未被使用,磁盘中保存的学习模型的个数超过第三预设阈值。
也即,磁盘中保存的学习模型可设置失效时间,在预设时长内未被使用的学习模型会被自动删除,以对业务进行调整,旧的学习模型将失去用途;
由于学习模型存储需要占用磁盘空间,所以当磁盘中保存的学习模型的个数超过第三预设阈值时,则将多余的学习模型删除,控制学习模型的数量保持在第三预设阈值范围内;删除的学习模型可以是最新的学习模型,也可以选择未使用时长最长的学习模型等。
第三预设阈值可在MongoDB配置文件中预先设置调整。
可选的,在S203根据第一目标语法语句,选择与之匹配的目标学习模型之前,还包括以下步骤:
判断服务器的负载是否大于第四预设阈值;
若是,则在预设时长之后,执行S203根据第一目标语法语句,选择与之匹配的目标学习模型的步骤;
若否,则执行S203根据第一目标语法语句,选择与之匹配的目标学习模型的步骤。
由于S204数据预热的步骤需要消耗一部分资源,若负载较高时执行S204的步骤,则会加重MongoDB所在服务器的压力。所以在匹配目标学习模型之前,会优先判断当前服务器的负载是否处于相对较低的情况,若负载不高,才执行后续S203-S204的步骤;若负载较高,则适当延后执行S203-S204的步骤;缓解了服务器的压力。
本实施例中,提供了人性化的参数配置方式:首先,学习模型最大个数可通过配置限制(学习模型存储需要占用磁盘);再者,学习模型生成时的准确率阀值可配置,只有准确率满足预设参数的学习模型才会被持久化保存下来;再者,学习模型可设置失效时间,在预设时长内未被使用的学习模型会被自动删除(业务调整,旧的学习模型将失去用途);再者,由于内存空间有限,需要合理使用,所以可以配置内存中热数据过期策略,例如队列形式的先进先出策略、时间最老的优先清除策略等等。
通过本实施例的实施,不同业务场景下有不同的学习模型,根据学习模型预测下一次查询的查询结果,并将查询结果的数据从磁盘预先加载到内存中去,用来加速后续的查询操作,满足了MongoDB各个场景下数据查询速率提升的需求;并提升MongoDB的并发查询性能,最终提升对接业务服务的整体处理效率。
第二实施例
本实施例将提供一种查询处理方法,本实施例的查询处理方法基于图3的MongoDB软件架构来实现,参见图4,图4为本实施例提供的一种查询处理方法的基本流程图,该查询处理方法包括以下步骤:
S401:请求连接器接收客户端的查询请求;
S402:请求分析器分析来自客户端的查询语句,将查询语句解析成机器可识别语法;然后S403、S409、S410这三个步骤同步执行;
S403:索引映射器根据已分析出来的语法元素,通过索引映射关系定位出目标查询结果数据集的存储位置;
S404:整合在内存中的查询结果数据集;
S405:判断目标查询结果数据集的存储位置是否全部在内存;若是,则进入S408;若否,则进入S406;
S406:从磁盘中加载剩余查询结果数据集;
S407:整合从内存中和磁盘中获取的查询结果数据集,并进行排序;
S408:将目标查询结果数据集返回给客户端;进入S414;
S409:将解析后的查询语句持久化存储到操作日志存储区域中,供后续性能分析与学习模型生成使用;进入S414;
S410:将解析后查询语句传入数据预热组件;
在将解析后的查询语句传入数据预热组件之后,会根据服务器当前负载情况判断是否实时进行数据预热预测;若负载不高,才执行后续S411-S412-S413的步骤;若负载较高,则适当延后执行S411-S412-S413的步骤;缓解了服务器的压力。
S411:数据预热组件根据查询语句语法的特征,选择性的使用学习模型进行类线性回归分析,以匹配出目标学习模型;
S412:判断是否匹配出目标学习模型;若是,则进入S413;若否,则进入S414;
根据解析后的查询语句,判断是否有与之匹配的学习模型;
S413:通过目标学习模型预测,从磁盘中将下一次可能出现的查询结果集放入内存中;
S414:结束。
本实施例还给出一种学习模型的构建方法,本实施例的学习模型的构建方法基于图3的MongoDB软件架构来实现,参见图5,图5为本实施例提供的一种学习模型的构建方法的基本流程图,该学习模型的构建方法包括以下步骤:
S501:性能分析组件从已存储的操作日志中调取查询耗时较大的数据;
S502:模型生成组件根据操作记录性能消耗对已有学习模型进行补充优化;
S503:模型生成组件对于无法适用于已有学习模型的操作记录,并且语法规则相似、数量达到一定规模的,尝试用内置的回归算法去进行新学习模型的构建;
S504:模型生成组件对于构建出来的新学习模型,使用预留的测试数据验证其准确率,若准确率满足预设阈值,则给予持久化到学习模型存储区域中去,以供接下去的查询优化使用,否则不做持久化处理;
S505:将已处理过的操作日志清空,不再存储。
本实施例还给出软件架构优化过的MongoDB与原生MongoDB对查询请求处理的比对过程:
首先,配置MongoDB所需配置参数与学习模型所需预设参数;
然后,在两台服务器上分别启动软件架构优化过的MongoDB与原生MongoDB;
最后,运行一段时间,两个MongoDB接收相同的数据;当数据量达到一定的规模后(亿级以上),测试两者在接收同样查询请求时的处理耗时与并发处理能力。
通过本实施例的实施,不同业务场景下有不同的学习模型,根据学习模型预测下一次查询的查询结果,并将查询结果的数据从磁盘预先加载到内存中去,用来加速后续的查询操作,满足了MongoDB各个场景下数据查询速率提升的需求;并提升MongoDB的并发查询性能,最终提升对接业务服务的整体处理效率。
第三实施例
为了解决现有技术中,MongoDB提供的热数据的查询机制,无法智能的解决不同业务场景下的查询效率低下的问题,以及在高并发型查询下,MongoDB处理性能急剧下降,对接业务服务请求堵塞,极端情况下很可能会出现雪崩式服务崩塌宕机的问题,本实施例提供一种服务器,参见图3,图3的MongoDB软件架构的示意图也是本实施例提供的服务器的软件架构的示意图,服务器包括磁盘、内存、数据预热组件、请求分析器、以及请求连接器;
请求连接器,用于接收查询请求,查询请求中携带查询语句;
请求分析器,用于将查询语句进行语法分析转换,生成第一目标语法语句;
数据预热组件,用于根据第一目标语法语句,选择与之匹配的目标学习模型;并根据目标学习模型预测下一次查询所需的第二目标语法语句,并将第二目标语法语句对应的查询结果的数据从磁盘预先加载到内存中去;
磁盘,用于存储查询结果的数据;
内存,用于存储从磁盘加载过来的查询结果的数据。
可选的,服务器还包括:性能分析组件以及模型生成组件;磁盘还用于存储操作日志;
性能分析组件,用于定期获取操作日志中的所有操作记录的语法语句;从所有操作记录的语法语句中筛选出查询耗时大于预设阈值的操作记录的语法语句;并根据语法类型对筛选出来的操作记录的语法语句进行类型划分,并将每个类型数据传输给模型生成组件;
模型生成组件,用于分别判断每个类型数据是否已存在对应的学习模型;对于不存在学习模型的类型数据,则根据类型数据生成对应的学习模型,并保存到磁盘中。
本实施例提供的服务器的磁盘、内存、数据预热组件、请求分析器、请求连接器、性能分析组件以及模型生成组件实现的功能,参见第一实施例、第二实施例中的描述,在此不再赘述。
本实施例提供了智能化的数据预热机制:通过性能分析组件、模型生成组件、数据预热组件来构建出MongoDB的查询数据预热机制,在不同业务场景下学习出不同的合理的数据模型,对即将到来的下一次查询请求进行预判处理、预热数据,来满足各个场景下数据查询速率提升的需求,提升MongoDB的并发查询性能,并最终提升对接业务服务的整体处理效率。
第四实施例
本实施例提供一种计算机可读存储介质,计算机可读存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现第一实施例中、第二实施例中查询处理方法的步骤。
通过本实施例的实施,不同业务场景下有不同的学习模型,根据学习模型预测下一次查询的查询结果,并将查询结果的数据从磁盘预先加载到内存中去,用来加速后续的查询操作,满足了MongoDB各个场景下数据查询速率提升的需求;并提升MongoDB的并发查询性能,最终提升对接业务服务的整体处理效率。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种查询处理方法,其特征在于,所述查询处理方法包括以下步骤:
接收查询请求,所述查询请求中携带查询语句;
将所述查询语句进行语法分析转换,生成第一目标语法语句;
根据所述第一目标语法语句的类型,选择与之匹配的目标学习模型;
根据所述目标学习模型预测下一次查询所需的第二目标语法语句,并将所述第二目标语法语句对应的查询结果的数据从磁盘预先加载到内存中去。
2.如权利要求1所述的查询处理方法,其特征在于,所述将所述第二目标语法语句对应的查询结果的数据从磁盘预先加载到内存中去包括:
将所述第二目标语法语句对应的查询结果的数据、以守护线程的方式从磁盘预先加载到内存中去。
3.如权利要求1或2所述的查询处理方法,其特征在于,在所述接收查询请求之前,还包括以下步骤:
定期获取操作日志中的所有操作记录的语法语句;
从所述所有操作记录的语法语句中筛选出查询耗时大于第一预设阈值的操作记录的语法语句;
并根据语法类型对筛选出来的操作记录的语法语句进行类型划分;
分别判断每个类型数据是否已存在对应的学习模型;
对于不存在学习模型的类型数据,则根据所述类型数据生成对应的学习模型,并保存到所述磁盘中。
4.如权利要求3所述的查询处理方法,其特征在于,所述每个类型数据各自按照预设比例被划分为训练数据和测试数据;
所述根据所述类型数据生成对应的学习模型包括:
根据所述类型数据中的所述训练数据生成对应的学习模型;
根据所述测试数据对对应的学习模型的准确率进行校验;
若准确率大于等于第二预设阈值,则将所述学习模型保存到所述磁盘中;
若准确率小于所述第二预设阈值,则将所述学习模型删除。
5.如权利要求3所述的查询处理方法,其特征在于,在所述分别判断每个类型数据是否已存在对应的学习模型之后,还包括以下步骤:
对于已存在学习模型的类型数据,则使用所述类型数据对对应的学习模型进行优化。
6.如权利要求4所述的查询处理方法,其特征在于,所述方法还包括以下步骤:
判断所述磁盘中保存的学习模型是否满足预设条件;
将满足所述预设条件的学习模型删除;
所述预设条件包括以下方式中的至少一种:所述磁盘中保存的学习模型在预设时长内未被使用,所述磁盘中保存的学习模型的个数超过第三预设阈值。
7.如权利要求1或2所述的查询处理方法,其特征在于,在所述根据所述第一目标语法语句的类型,选择与之匹配的目标学习模型之前,还包括以下步骤:
判断服务器的负载是否大于第四预设阈值;
若是,则在预设时长之后,执行所述根据所述第一目标语法语句,选择与之匹配的目标学习模型的步骤;
若否,则执行所述根据所述第一目标语法语句,选择与之匹配的目标学习模型的步骤。
8.一种服务器,其特征在于,所述服务器包括磁盘、内存、数据预热组件、请求分析器、以及请求连接器;
所述请求连接器,用于接收查询请求,所述查询请求中携带查询语句;
所述请求分析器,用于将所述查询语句进行语法分析转换,生成第一目标语法语句;
所述数据预热组件,用于根据所述第一目标语法语句的类型,选择与之匹配的目标学习模型;并根据所述目标学习模型预测下一次查询所需的第二目标语法语句,并将所述第二目标语法语句对应的查询结果的数据从磁盘预先加载到内存中去;
所述磁盘,用于存储所述查询结果的数据;
所述内存,用于存储从所述磁盘加载过来的所述查询结果的数据。
9.如权利要求8所述的服务器,其特征在于,所述服务器还包括:性能分析组件以及模型生成组件;所述磁盘还用于存储操作日志;
所述性能分析组件,用于定期获取所述操作日志中的所有操作记录的语法语句;从所述所有操作记录的语法语句中筛选出查询耗时大于预设阈值的操作记录的语法语句;并根据语法类型对筛选出来的操作记录的语法语句进行类型划分,并将每个类型数据传输给所述模型生成组件;
所述模型生成组件,用于分别判断所述每个类型数据是否已存在对应的学习模型;对于不存在学习模型的类型数据,则根据所述类型数据生成对应的学习模型,并保存到所述磁盘中。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至7中任一项所述的查询处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810167497.4A CN108509501B (zh) | 2018-02-28 | 2018-02-28 | 一种查询处理方法、服务器及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810167497.4A CN108509501B (zh) | 2018-02-28 | 2018-02-28 | 一种查询处理方法、服务器及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108509501A CN108509501A (zh) | 2018-09-07 |
CN108509501B true CN108509501B (zh) | 2022-07-26 |
Family
ID=63375799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810167497.4A Active CN108509501B (zh) | 2018-02-28 | 2018-02-28 | 一种查询处理方法、服务器及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108509501B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109240681A (zh) * | 2018-09-26 | 2019-01-18 | 郑州云海信息技术有限公司 | 一种模型生成方法、装置及计算机可读存储介质 |
CN111159142B (zh) * | 2018-11-07 | 2023-07-14 | 马上消费金融股份有限公司 | 一种数据处理方法及装置 |
CN111400342A (zh) * | 2019-01-03 | 2020-07-10 | 百度在线网络技术(北京)有限公司 | 数据库更新方法、装置、设备及存储介质 |
CN116738099A (zh) * | 2019-01-21 | 2023-09-12 | 阿里巴巴集团控股有限公司 | 展示方法、装置、终端设备及计算机存储介质 |
CN110347754B (zh) * | 2019-06-05 | 2023-03-24 | 创新先进技术有限公司 | 一种数据查询方法及装置 |
CN112099910B (zh) * | 2020-08-28 | 2023-08-11 | 广州探迹科技有限公司 | 一种容器集群中算法模型的预加载方法 |
CN112579570B (zh) * | 2020-12-16 | 2023-06-23 | 中国辐射防护研究院 | 一种核环境数据存储方法和装置 |
CN112800003A (zh) * | 2021-01-20 | 2021-05-14 | 华云数据(厦门)网络有限公司 | 创建快照的推荐方法、快照创建方法、装置及电子设备 |
CN113282585B (zh) * | 2021-05-28 | 2023-12-29 | 浪潮通用软件有限公司 | 一种报表计算方法、装置、设备及介质 |
CN113452808B (zh) * | 2021-06-29 | 2023-06-23 | 百果园技术(新加坡)有限公司 | 域名解析方法、装置、设备及存储介质 |
CN113791904B (zh) * | 2021-09-13 | 2022-11-08 | 北京百度网讯科技有限公司 | 用于处理查询输入的方法、装置、设备和可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615713A (zh) * | 2015-02-05 | 2015-05-13 | 浪潮通用软件有限公司 | 一种基于多数据库类型的sql执行方法和装置 |
CN105279286A (zh) * | 2015-11-27 | 2016-01-27 | 陕西艾特信息化工程咨询有限责任公司 | 一种交互式大数据分析查询处理方法 |
CN106372132A (zh) * | 2016-08-25 | 2017-02-01 | 北京百度网讯科技有限公司 | 基于人工智能的查询意图预测方法和装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7185015B2 (en) * | 2003-03-14 | 2007-02-27 | Websense, Inc. | System and method of monitoring and controlling application files |
US20060155678A1 (en) * | 2005-01-07 | 2006-07-13 | Hassan Behbehani | Fulfilling search methodology |
CN102081625B (zh) * | 2009-11-30 | 2012-12-26 | 中国移动通信集团北京有限公司 | 一种数据查询的方法及查询服务器 |
CN102479223B (zh) * | 2010-11-25 | 2014-06-04 | 中国移动通信集团浙江有限公司 | 数据查询方法及系统 |
CN103488638B (zh) * | 2012-06-11 | 2016-12-07 | 北京大学 | 一种结果缓存替换的优化方法 |
CN103678338A (zh) * | 2012-09-07 | 2014-03-26 | 中国科学院计算机网络信息中心 | 一种带智能缓存模块的物联网标识解析方法 |
WO2014200468A1 (en) * | 2013-06-12 | 2014-12-18 | Thomson Licensing | Context based image search |
CN103559300B (zh) * | 2013-11-13 | 2017-06-13 | 曙光信息产业(北京)有限公司 | 数据的查询方法和查询装置 |
US20160012104A1 (en) * | 2014-07-11 | 2016-01-14 | Yahoo!, Inc. | Search interfaces with preloaded suggested search queries |
CN104598617A (zh) * | 2015-01-30 | 2015-05-06 | 百度在线网络技术(北京)有限公司 | 一种搜索结果展示方法及装置 |
CN104834675B (zh) * | 2015-04-02 | 2018-02-23 | 浪潮集团有限公司 | 一种基于用户行为分析的查询性能优化方法 |
CN105426411B (zh) * | 2015-10-31 | 2019-05-28 | 南京南瑞继保电气有限公司 | 基于访问趋势预测的时间序列数据库缓存管理方法 |
-
2018
- 2018-02-28 CN CN201810167497.4A patent/CN108509501B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615713A (zh) * | 2015-02-05 | 2015-05-13 | 浪潮通用软件有限公司 | 一种基于多数据库类型的sql执行方法和装置 |
CN105279286A (zh) * | 2015-11-27 | 2016-01-27 | 陕西艾特信息化工程咨询有限责任公司 | 一种交互式大数据分析查询处理方法 |
CN106372132A (zh) * | 2016-08-25 | 2017-02-01 | 北京百度网讯科技有限公司 | 基于人工智能的查询意图预测方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108509501A (zh) | 2018-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108509501B (zh) | 一种查询处理方法、服务器及计算机可读存储介质 | |
CN102780603B (zh) | 网站流量控制方法及装置 | |
US20200349113A1 (en) | File storage method, deletion method, server and storage medium | |
CN111221469B (zh) | 同步缓存数据的方法、装置和系统 | |
CN110417838A (zh) | 一种数据同步方法及同步服务设备 | |
WO2020211363A1 (zh) | 提高程序加载效率的方法、装置、计算机设备和存储介质 | |
CN111651374A (zh) | 一种数据处理方法、装置、计算设备及可读存储介质 | |
CN115168338A (zh) | 数据处理方法、电子设备及存储介质 | |
CN108829345B (zh) | 日志文件的数据处理方法和终端设备 | |
US20220214832A1 (en) | Prefetching metadata in a storage system | |
KR101666440B1 (ko) | 환형큐 기반의 인-메모리 데이터베이스 시스템에서의 데이터 처리방법 | |
JP7341330B2 (ja) | 日付切替データオフロード方法、装置、設備及び媒体 | |
US11394748B2 (en) | Authentication method for anonymous account and server | |
US11321374B2 (en) | External storage of unstructured database objects | |
US20110093688A1 (en) | Configuration management apparatus, configuration management program, and configuration management method | |
CN111552438A (zh) | 一种对象写入的方法、装置、服务器和存储介质 | |
US7441252B2 (en) | Cache control device, and method and computer program for the same | |
CN109656936A (zh) | 数据同步方法、装置、计算机设备和存储介质 | |
KR101744017B1 (ko) | 실시간 검색을 위한 데이터 인덱싱 방법 및 장치 | |
US20200301922A1 (en) | Multiform persistence abstraction | |
US9679015B2 (en) | Script converter | |
CN114116790A (zh) | 数据处理的方法及装置 | |
US8161017B2 (en) | Enhanced identification of relevant database indices | |
US20120192011A1 (en) | Data processing apparatus that performs test validation and computer-readable storage medium | |
US11734281B1 (en) | Database management systems using query-compliant hashing techniques |
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 |
Effective date of registration: 20220701 Address after: 610041 Building 1, No.11 Gaopeng Avenue, high tech Zone, Chengdu, Sichuan Applicant after: Chengdu Guoheng Space Technology Engineering Co.,Ltd. Address before: 10 / F, block a, Han's innovation building, 9018 Beihuan Avenue, gaoxinyuan, Nanshan District, Shenzhen, Guangdong Province Applicant before: NUBIA TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |