一种基于预处理的数据查询优化方法、装置、设备及介质与流程
未命名
08-01
阅读:167
评论:0
1.本技术涉及前端应用技术领域,尤其是涉及到一种基于预处理的数据查询优化方法、装置、设备及介质。
背景技术:
2.elasticsearch,简称es,是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便地使大量数据具有搜索、分析和探索的能力。充分利用elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。现有技术中,基于es查询的产品端并没有对dsl(领域专用语言,domain specificlanguage)进行限制和兼容,对于高并发查询、复杂查询容易导致集群过载崩溃,耗尽es集群的计算资源,业务缺少可扩展性。
技术实现要素:
3.有鉴于此,本技术提供了一种基于预处理的数据查询优化方法、装置、设备及介质,实现了es查询请求的预处理操作,提高了es查询的可扩展性和兼容性,解决了并发查询、复杂查询容易导致集群过载崩溃,耗尽es集群的计算资源的技术问题。
4.根据本技术的第一方面,提供了一种基于预处理的数据查询优化方法,包括:
5.获取dsl查询请求,其中,所述dsl查询请求携带header头信息、查询参数,所述查询参数包括时间范围、查询逻辑、检索词、字段信息和匹配逻辑;
6.对所述dsl查询请求进行合法性校验及熔断规则判断;
7.若所述dsl查询请求不满足合法性校验和/或熔断规则时,终止所述dsl查询请求,返回查询异常值;
8.若所述dsl查询请求满足合法性校验及熔断规则时,对所述dsl查询请求进行查询优化处理,其中,查询优化处理包括业务归一化处理、搜索语法优化处理和异步查询优化处理;
9.执行优化后的所述dsl查询请求的搜索,返回查询结果。
10.根据本技术的第二方面,提供了一种基于预处理的数据查询优化装置,包括:
11.获取模块,用于获取dsl查询请求,其中,所述dsl查询请求携带header头信息、查询参数,所述查询参数包括时间范围、查询逻辑、检索词、字段信息和匹配逻辑;
12.校验模块,用于对所述dsl查询请求进行合法性校验及熔断规则判断;
13.响应模块,用于若所述dsl查询请求不满足合法性校验和/或熔断规则时,终止所述dsl查询请求,返回查询异常值;
14.优化模块,用于若所述dsl查询请求满足合法性校验及熔断规则时,对所述dsl查询请求进行查询优化处理,其中,查询优化处理包括业务归一化处理、搜索语法优化处理和异步查询优化处理;
15.执行模块,用于执行优化后的所述dsl查询请求的搜索,返回查询结果。
16.根据本技术的第三方面,提供了一种计算机设备,包括存储器、处理器以及存储在
存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述基于预处理的数据查询优化方法的步骤。
17.根据本技术的第四方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述基于预处理的数据查询优化方法的步骤。
18.借由上述技术方案,本技术提供的一种基于预处理的数据查询优化方法、装置、设备及介质,首先,获取dsl查询请求,对dsl查询请求进行合法性校验及熔断规则判断,若dsl查询请求不满足合法性校验和/或熔断规则时,终止dsl查询请求,返回查询异常值,若dsl查询请求满足合法性校验及熔断规则时,对dsl查询请求进行查询优化处理,查询优化处理包括业务归一化处理、搜索语法优化处理和异步查询优化处理,执行优化后的所述dsl查询请求的搜索,返回查询结果。实现了es查询请求的预处理操作,提高了es查询的可扩展性和兼容性,解决了并发查询、复杂查询容易导致集群过载崩溃,耗尽es集群的计算资源的技术问题。
19.实现了个性化的入口页面搭建,自定义设置每个子应用的标题、名称、标识、页面地址、布局属性、尺寸属性、监听事件和触发事件,解决现有微前端设计模式不能灵活配置入口页面及布局的技术问题。
20.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,并可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特列举本技术的具体实施方式。
附图说明
21.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
22.图1示出了本发明实施例中提供的一种基于预处理的数据查询优化方法应用场景的示意图;
23.图2示出了本发明实施例中提供的一种基于预处理的数据查询优化方法流程示意图;
24.图3示出了本发明实施例中提供的一种基于预处理的数据查询优化装置示意图。
25.具体实施方式
26.下文中将参考附图并结合实施例来详细说明本技术的技术方案。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
27.如图1所示,为本发明实施例中提供的一种基于预处理的数据查询优化方法应用场景的示意图,图中为elasticsearch集群结构,elasticsearch集群用于响应来自客户端的查询操作,客户端为接收用户查询操作的输入前端,图中单独一个elasticsearch服务器实例称为一个node节点。elasticsearch设置了coordinatenode协调节点用来管理集群,这种设置对客户端(应用程序)来说是透明的,客户端可以请求任何一个它已知的node,如果该node是集群当前的coordinate,那么它会将请求转发到相应的node上进行处理,如果该
node不是coordinate,那么该node会先将请求转交给coordinatenode,再由coordinate进行转发,各node返回的数据全部交由coordinatenode进行汇总,最后返回给客户端。为了实现图1中基于预处理的数据查询优化,本发明实施例中提供了一种基于预处理的数据查询优化方法,coordinate节点接收到数据查询请求后,执行本发明实施例提供的一种基于预处理的数据查询优化方法。为了更加清晰的描述本发明实施例中提供的一种基于预处理的数据查询优化方法,如图2所示,包括:
28.步骤201、获取dsl查询请求;
29.其中,所述dsl查询请求携带header头信息、查询参数,所述查询参数包括时间范围、查询逻辑、检索词、字段信息和匹配逻辑;
30.dsl(domainspecificlanguage)是一种基于json形式,用于elasticsearch查询的特定语法。dsl查询请求的请求参数包括dsl查询请求的时间范围、查询逻辑、检索词、字段信息和匹配逻辑等参数。
31.步骤202、对所述dsl查询请求进行合法性校验及熔断规则判断;
32.为了避免es集群(elasticsearch集群)的计算压力过大,能够稳定、最大限度的满足客户计算要求,需要对集群进行保护,故设置es集群查询保护,因此在本实施例中需要提前对查询请求进行判断,对于超过集群可处理的红线、超过存储数据时间范围、含有漏洞攻击行为、访问频次异常的查询请求需要进行一定的限制,相应地,步骤202具体可以包括:
33.步骤202-1、验证所述dsl查询请求是否符合搜索引擎的查询权限;
34.其中,本步骤主要是验证用户是否具有该项数据的查询权限。
35.步骤202-2、判断所述dsl查询请求中的时间参数,判断range字段中的时间范围是否超范围;判断所述dsl查询请求中的过滤器中的搜索词个数是否超过预设阈值;判断所述dsl查询请求中的搜索词是否属于漏洞攻击或敏感词;判断所述dsl查询请求的访问频次是否超限。
36.当dsl查询请求不满足查询保护条件时执行dsl查询请求,会大量耗费es集群的计算能力,造成集群无法处理其它查询请求,影响其它用户的查询。当dsl查询请求满足查询保护条件时,才能进行请求的搜索。例如:判断range字段中的时间范围是否超范围,以进行时间熔断,以range字段进行判断,判断range的范围,判断客户一次查询时间范围是否超限,否则提示拒绝请求,判断客户一次查询的起始时间是否超出集群限定的最早时间,否则拒绝请求;以filter进行过滤器熔断,判断当前客户所填写的过滤器参数中,模糊搜索词是否超过集群可处理的红线设定最大指标,否则拒绝请求判断当前客户总过滤器大小条件拼接生成的字符串是否超长(查询数组中元素多),否则拒绝请求;判断所述dsl查询请求中的搜索词进行搜索词熔断,判断客户是否有攻击手段想绕过当前熔断策略(如三重胡须)如果存在则将客户拉至黑名单,并对当前客户增加禁用时间,随着攻击次数过多拉长至禁用状态,判断搜索词是否含有敏感词汇,如存在则对客户提示禁止输入敏感词,并拒绝请求。判断访问频次进行熔断,获取账号信息的时间+次数规则,按照规则计算当前客户已使用量,当客户超过请求限制,提示客户当前使用次数已达标。
37.步骤203、若所述dsl查询请求不满足合法性校验和/或熔断规则时,终止所述dsl查询请求,返回查询异常值;
38.其中,步骤203具体可以包括:
39.步骤203-1、若所述dsl查询请求不满足合法性校验和/或熔断规则时,终止所述dsl查询请求,返回查询异常值;
40.步骤203-2、对所述dsl查询请求对应的用户进行限制性访问处理。
41.步骤204、若所述dsl查询请求满足合法性校验及熔断规则时,对所述dsl查询请求进行查询优化处理;
42.其中,查询优化处理包括业务归一化处理、搜索语法优化处理和异步查询优化处理,这些处理具体可以包括如下方式。
43.一、对于业务归一化处理包括:
44.1、根据所述header头信息中的业务信息,拼接与业务信息对应的参数;
45.2、根据所述header头信息中的业务信息,对查询参数进行归一化。
46.该项处理实际应用中,可在进行业务归一化处理时,根据前端header头信息确认当前产品附属于那个模块处理将请求信息发送至逻辑分发层在逻辑分发层中根据注册树模式实例化对应产品逻辑,并将参数信息发至对应的处理层,处理层中根据用户配置信息验证当前账号中逻辑信息是否满足,如果不满足则提示用户当前账号无权限(也可以通过步骤202-1替代),若有权限拼接每个模块参数(一个模块对于一个业务),将参数发送至该业务的统一处理模块进行对入参规整化,将参数输出为归一化参数。
47.业务归一化处理可实现多模板解耦,不同业务上可随意拆解、增强扩展性,方便后续统一校验参数。
48.二、对于搜索语法优化处理包括:
49.1、根据所述dsl查询请求中的时间参数,对时间范围range进行判断,根据年月日的不同粒度生成查询索引;
50.本实施例中引入了索引别名(index patterns)优化了数据的查询,索引别名可以指向一个或多个索引,也可以给任何一个需要索引名的api来使用,特别是对于包含时间字段的数据,索引可按日期进行分级拆分,一般日期索引可以通过yyyy.mm.dd格式的日期加通配符构建索引别名,例如针对5月的index pattern可以采用xgks_202205*,5月中旬的index pattern可以采用xgks_2022052*,5月上旬的index pattern可以采用xgks_2022051*,2022年的index pattern可以采用xgks_2022*。例如:时间范围:2022-01-0100:00:00~2022-10-0100:00:00,时间差值为273天,根据时间范围计算出差值生成对应的映射数据生成273天对应的查询精准到日|到月|到年,{"2022":{"01":["01",...],"02":["01",...],"03":["01",...],...},将生成的数据进行二次整理,首先判断当前月份是否足月如果足月,相应地,数据结构改为:{"2022":{"01","02","03",...}},接着验证年份是否足年如果足年,相应地,数据结构改为:{"2022",...}。数据索引后判断当前用户选择来源,基于索引模式调用对应的处理逻辑,将索引后的时间数据拼接上对应的来源信息生成当前所需查询索引xxx_2022*_yyy,xxx为索引标识符,yyy为产品来源。
[0051]
该操作利用分级索引查询的方式对时间数据进行检索,解决了因索引生成混乱造成的过度传参,避免在http协议中传输了过大的数据值,无法进行处理;解决了索引生成计算逻辑复杂化,开发者不需要理解底层生成结构,输入参数开始时间、结束时间和来源,即可获得索引数据,不需要自行实现;具有可扩展性,增加了对外输出改写函数,方便对逻辑实现进行二次改写,提高生成索引的精准性,现有技术生成直接使用模糊进行生成,对搜索
引擎的扫描过于臃肿,本实施中生成的索引还可按照客户所选择来源拼接表示索引别名创建专门的视图,大大提升了检索速度和便利性。
[0052]
2、根据所述dsl查询请求中的查询参数的类型,将特定数值查询条件转化为term进行数值精确匹配;将数值比较条件转化为range查询条件。
[0053]
例如:过滤器生成(filters)示例中:
[0054]
[{
[0055]
type:“input”,
[0056]
field:“type”,
[0057]
value:[1,2]
[0058]
}]
[0059]
依据查询参数type字段发送至逻辑分发层,在逻辑分发层中基于注册树模式获取对应的类型处理方法,并将field字段和value字段数据发送至处理层中,在逻辑处理层中,针对value数据进行二次校验,基于value==1时使用term解决历史问题中对所有查询字段使用in类型查询性能提升,针对value》1时校验当前mapping数据类型针对数值类型由terms改写为range查询,因搜索引擎底层针对数值类型查询字段也会转成range减少了引擎对入参的二次改写,提升引擎的校验通过性,封装装了基于指针算法嵌套拼接逻辑,可让开发人员无需理解组合规则。该操作实现了代码复用,减少代码冗余性,根据es搜索对应的字段类型封装独立的处理方法,并可针对类型进行二次组合,具有更好的扩展性,基于es搜索语法类型控制,扩展对应字段类型方法即可支持新拓展类型。
[0060]
三、对于异步查询优化处理包括:
[0061]
1、估计所述dsl查询请求的耗时等级;
[0062]
2、根据所述dsl查询请求的耗时等级,当耗时等级大于预设等级时,启用异步任务进行查询处理;当耗时等级不大于预设等级时,进行普通查询处理。
[0063]
这里需要特别说明,异步任务在elasticsearch7.7及之后版本中支持,搜索过程允许异步执行,客户端发送搜索请求后,弹性搜索服务器向客户端返回一个id。稍后,客户端使用该id来获取搜索进度,并支持返回“部分”结果。这对于ui交互相关的查询请求是非常友好的,比如绘图过程可以分步显示,本实施例中通过预估查询请求的耗时等级判断是否用异步任务进行查询处理,例如:将对应的dsl查询请求发送至对应的逻辑处理中,对于普通搜索根据build生成的过滤器信息进行数据检索,进行普通查询处理;对于去重搜索因热度排序需要对hash值进行多次统计,因每次统计对搜索引擎造成的压力急剧增加,因此将词逻辑改为异步执行,当客户请求热度排序时,将统计数据进行异步查询程序挂载,搜索服务器向客户端返回一个id,并提示客户当前正在大查询中请耐心等待,获取到统计后的数据时根据当前的排名信息进行二次查询,获得对应的数据结果。
[0064]
本发明实施例中通过对dsl查询请求的耗时进行估计,可自动判断进行异步任务查询还是普通查询,提高了查询效率,有效提升用户体验。这里需要特别说明,对dsl查询请求的耗时估计可以采用多种方式,例如:通过对历史的查询请求的响应情况进行记录,例如可记录于redis数据库中,记录历史每个查询请求的id、请求参数、响应时间、处理方式(异步或普通)等,当接收到新的查询请求时,通过查询历史记录可获取该类查询请求历史的处理方式和响应时间,如果历史处理方式为普通查询,且响应时间大于1秒,可将这普通查询
请求的处理方式变更为异步查询任务并保存至数据库中;当然也可以通过判断是否属于耗时操作自动进行相应处理,例如检索词的个数、是否模糊查询等,当判断为耗时操作时,则进行异步查询任务。这里需要指出的时,查询请求的响应情况需要同步考虑集群负载,例如集群负载已超过90%时,即使一般简单的查询也容易产生超时,这是不应将该查询操作定义为耗时查询操作,因此,本步骤中需要结合集群负载的情况判断是否属于耗时操作,例如下表(该表可存储于redis中):
[0065]
id请求关键字集群负载响应时间处理方式1match、range50%4ms普通2match、range80%120ms异步3all_match60%90ms异步4term50%3ms普通
[0066]
如上表所示即使统一类查询id:1和id:2,因为对应负载不一样,响应时间不一样,因此其处理方式也会有差异。
[0067]
步骤205、执行优化后的所述dsl查询请求的搜索,返回查询结果。
[0068]
为了实现多集群多业务的应用,将不同业务请求或产品服务交由不同的集群进行处理,需要对查询请求进行分发,步骤202之前包括:
[0069]
步骤202-a、根据所述header头信息中的业务信息,为所述dsl查询请求分配与所述业务信息对应的集群地址;
[0070]
其中,可以在redis存储服务器中根据产品端模块进行配置对应集群地址,当客户端请求时在header头信息中声明模块信息,集群选取服务自动发现,根据当前模块选取可用集群地址,并将地址信息注入到上下文中,对于客户端来说,无需理解选取服务的逻辑处理,可直接根据上下文中的地址内容处理查询请求。
[0071]
步骤202-b、将与所述业务信息对应的集群地址注入到dsl查询请求上下文中,转发所述dsl查询请求。
[0072]
本发明实施例提供的一种基于预处理的数据查询优化方法,首先,获取dsl查询请求,对dsl查询请求进行合法性校验及熔断规则判断,若dsl查询请求不满足合法性校验和/或熔断规则时,终止dsl查询请求,返回查询异常值,若dsl查询请求满足合法性校验及熔断规则时,对dsl查询请求进行查询优化处理,查询优化处理包括业务归一化处理、搜索语法优化处理和异步查询优化处理,执行优化后的所述dsl查询请求的搜索,返回查询结果。实现了es查询请求的预处理操作,提高了es查询的可扩展性和兼容性,解决了并发查询、复杂查询容易导致集群过载崩溃,耗尽es集群的计算资源的技术问题。
[0073]
进一步地,作为图2方法的具体实现,本技术实施例中提供了一种基于基于预处理的数据查询优化装置,如图3所示,该装置包括:
[0074]
获取模块310,用于获取dsl查询请求,其中,所述dsl查询请求携带header头信息、查询参数,所述查询参数包括时间范围、查询逻辑、检索词、字段信息和匹配逻辑;
[0075]
校验模块320,用于对所述dsl查询请求进行合法性校验及熔断规则判断;
[0076]
响应模块330,用于若所述dsl查询请求不满足合法性校验和/或熔断规则时,终止所述dsl查询请求,返回查询异常值;
[0077]
优化模块340,用于若所述dsl查询请求满足合法性校验及熔断规则时,对所述dsl
查询请求进行查询优化处理,其中,查询优化处理包括业务归一化处理、搜索语法优化处理和异步查询优化处理;
[0078]
执行模块350,用于执行优化后的所述dsl查询请求的搜索,返回查询结果。
[0079]
本发明实施例提供的一种基于预处理的数据查询优化装置,获取模块获取dsl查询请求,校验模块对dsl查询请求进行合法性校验及熔断规则判断,校验模块判断若dsl查询请求不满足合法性校验和/或熔断规则时,通过响应模块终止dsl查询请求,返回查询异常值,若dsl查询请求满足合法性校验及熔断规则时,优化模块对dsl查询请求进行查询优化处理,查询优化处理包括业务归一化处理、搜索语法优化处理和异步查询优化处理,最后由执行模块执行优化后的所述dsl查询请求的搜索,返回查询结果。实现了es查询请求的预处理操作,提高了es查询的可扩展性和兼容性,解决了并发查询、复杂查询容易导致集群过载崩溃,耗尽es集群的计算资源的技术问题。
[0080]
本技术实施例中提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
[0081]
获取dsl查询请求,其中,所述dsl查询请求携带header头信息、查询参数,所述查询参数包括时间范围、查询逻辑、检索词、字段信息和匹配逻辑;
[0082]
对所述dsl查询请求进行合法性校验及熔断规则判断;
[0083]
若所述dsl查询请求不满足合法性校验和/或熔断规则时,终止所述dsl查询请求,返回查询异常值;
[0084]
若所述dsl查询请求满足合法性校验及熔断规则时,对所述dsl查询请求进行查询优化处理,其中,查询优化处理包括业务归一化处理、搜索语法优化处理和异步查询优化处理;
[0085]
执行优化后的所述dsl查询请求的搜索,返回查询结果。
[0086]
本技术实施例中提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0087]
获取dsl查询请求,其中,所述dsl查询请求携带header头信息、查询参数,所述查询参数包括时间范围、查询逻辑、检索词、字段信息和匹配逻辑;
[0088]
对所述dsl查询请求进行合法性校验及熔断规则判断;
[0089]
若所述dsl查询请求不满足合法性校验和/或熔断规则时,终止所述dsl查询请求,返回查询异常值;
[0090]
若所述dsl查询请求满足合法性校验及熔断规则时,对所述dsl查询请求进行查询优化处理,其中,查询优化处理包括业务归一化处理、搜索语法优化处理和异步查询优化处理;
[0091]
执行优化后的所述dsl查询请求的搜索,返回查询结果。
[0092]
需要说明的是,上述关于计算机可读存储介质或计算机设备所能实现的功能或步骤,可对应参阅前述方法实施例中,服务端侧以及客户端侧的相关描述,为避免重复,这里不再一一描述。
[0093]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
[0094]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
[0095]
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
技术特征:
1.一种基于预处理的数据查询优化方法,其特征在于,包括:获取dsl查询请求,其中,所述dsl查询请求携带header头信息、查询参数,所述查询参数包括时间范围、查询逻辑、检索词、字段信息和匹配逻辑;对所述dsl查询请求进行合法性校验及熔断规则判断;若所述dsl查询请求不满足合法性校验和/或熔断规则时,终止所述dsl查询请求,返回查询异常值;若所述dsl查询请求满足合法性校验及熔断规则时,对所述dsl查询请求进行查询优化处理,其中,查询优化处理包括业务归一化处理、搜索语法优化处理和异步查询优化处理;执行优化后的所述dsl查询请求的搜索,返回查询结果。2.根据权利要求1所述的方法,其特征在于,所述对所述dsl查询请求进行合法性校验及熔断规则判断的步骤之前,包括:根据所述header头信息中的业务信息,为所述dsl查询请求分配与所述业务信息对应的集群地址;将与所述业务信息对应的集群地址注入到dsl查询请求上下文中,转发所述dsl查询请求。3.根据权利要求1所述的方法,其特征在于,所述对所述dsl查询请求进行合法性校验及熔断规则判断包括:验证所述dsl查询请求是否符合搜索引擎的查询权限;判断所述dsl查询请求中的时间参数,判断range字段中的时间范围是否超范围;判断所述dsl查询请求中的过滤器中的搜索词个数是否超过预设阈值;判断所述dsl查询请求中的搜索词是否属于漏洞攻击或敏感词;判断所述dsl查询请求的访问频次是否超限。4.根据权利要求1所述的方法,其特征在于,所述业务归一化处理包括:根据所述header头信息中的业务信息,拼接与业务信息对应的参数,根据所述header头信息中的业务信息,对查询参数进行归一化。5.根据权利要求1所述的方法,其特征在于,所述搜索语法优化处理包括:根据所述dsl查询请求中的时间参数,对时间范围range进行判断,根据年月日的不同粒度生成查询索引;根据所述dsl查询请求中的查询参数的类型,将特定数值查询条件转化为term进行数值精确匹配;将数值比较条件转化为range查询条件。6.根据权利要求1所述的方法,其特征在于,所述异步查询优化处理包括:估计所述dsl查询请求的耗时等级;根据所述dsl查询请求的耗时等级,当耗时等级大于预设等级时,启用异步任务进行查询处理;当耗时等级不大于预设等级时,进行普通查询处理。7.根据权利要求1所述的方法,其特征在于,所述若所述dsl查询请求不满足合法性校验和/或熔断规则时,终止所述dsl查询请求,返回查询异常值的步骤包括:若所述dsl查询请求不满足合法性校验和/或熔断规则时,终止所述dsl查询请求,返回查询异常值;对所述dsl查询请求对应的用户进行限制性访问处理。8.一种基于预处理的数据查询优化装置,其特征在于,包括:
获取模块,用于获取dsl查询请求,其中,所述dsl查询请求携带header头信息、查询参数,所述查询参数包括时间范围、查询逻辑、检索词、字段信息和匹配逻辑;校验模块,用于对所述dsl查询请求进行合法性校验及熔断规则判断;响应模块,用于若所述dsl查询请求不满足合法性校验和/或熔断规则时,终止所述dsl查询请求,返回查询异常值;优化模块,用于若所述dsl查询请求满足合法性校验及熔断规则时,对所述dsl查询请求进行查询优化处理,其中,查询优化处理包括业务归一化处理、搜索语法优化处理和异步查询优化处理;执行模块,用于执行优化后的所述dsl查询请求的搜索,返回查询结果。9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述基于预处理的数据查询优化方法的步骤。10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述基于预处理的数据查询优化方法的步骤。
技术总结
本发明涉及前端应用技术领域,公开了一种基于预处理的数据查询优化方法、装置、设备及介质,通过获取DSL查询请求,对DSL查询请求进行合法性校验及熔断规则判断,若DSL查询请求不满足合法性校验和/或熔断规则时,终止DSL查询请求,返回查询异常值,若DSL查询请求满足合法性校验及熔断规则时,对DSL查询请求进行查询优化处理,查询优化处理包括业务归一化处理、搜索语法优化处理和异步查询优化处理,执行优化后的所述DSL查询请求的搜索,返回查询结果。实现了ES查询请求的预处理操作,提高了ES查询的可扩展性和兼容性,解决了并发查询、复杂查询容易导致集群过载崩溃,耗尽ES集群的计算资源的技术问题。计算资源的技术问题。计算资源的技术问题。
技术研发人员:邢宸 宋岩强 白剑波 李青龙
受保护的技术使用者:北京智慧星光信息技术有限公司
技术研发日:2022.11.28
技术公布日:2023/7/31
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
