一种查询语句无效字段检查方法及装置与流程

文档序号:31699164发布日期:2022-10-01 07:10阅读:38来源:国知局
一种查询语句无效字段检查方法及装置与流程

1.本技术涉及计算机技术领域,具体而言,涉及一种查询语句无效字段检查方法及装置。


背景技术:

2.信用卡智慧经营系统目前主要采用es存储指标数据,即es指标仓库。标准化的代码可以在无需关注具体实现的情况下查到需要的数据。在实践中发现,由于代码高度封装,开发人员无法了解整条链路,同时,es指标仓库是文档型数据结构,即便这一条文档有一个不在定义中的字段也会照样查询或插入,不会报错,因此,开发人员在修改代码的同时会影响其他开发人员编写的代码,导致请求到es的查询语句经常会有不存在的字段甚至可能不带查询条件查全表,从而多次引发oom错误,降低开发效率。


技术实现要素:

3.本技术实施例的目的在于提供一种查询语句无效字段检查方法及装置,能够对请求到es的查询语句进行无效字段检查,避免多次引发oom错误,从而有利于提升开发效率。
4.本技术实施例第一方面提供了一种查询语句无效字段检查方法,包括:
5.接收请求到es指标仓库中的查询语句;
6.检查所述查询语句是否包括无效字段;
7.如果是,则生成针对所述查询语句包括无效字段的异常查询记录;
8.存储所述异常查询记录。
9.在上述实现过程中,该方法可以先接收请求到es指标仓库中的查询语句;然后检查所述查询语句是否包括无效字段;如果查询语句中包括无效字段,则生成针对所述查询语句包括无效字段的异常查询记录,并存储所述异常查询记录。可见,实施这种实施方式,能够对请求到es的查询语句进行无效字段检查,避免多次引发oom错误,从而有利于提升开发效率。
10.进一步地,所述检查所述查询语句是否包括无效字段,包括:
11.获取与所述查询语句对应目标索引的表结构;
12.根据所述目标索引的表结构判断所述查询语句是否包括无效字段。
13.进一步地,所述根据所述目标索引的表结构判断所述查询语句是否包括无效字段,包括:
14.对所述查询语句进行正则匹配,得到所述查询语句中所有涉及到的目标字段;
15.将所述目标索引的表结构与所述目标字段进行比对,得到比对信息;
16.根据所述比对信息判断所述查询语句是否包括无效字段。
17.进一步地,在获取与所述查询语句对应目标索引的表结构之前,所述方法还包括:
18.在消费数据时,把每个索引的表结构记录到服务器中。
19.进一步地,在存储所述异常查询记录之后,所述方法还包括:
20.判断存储的异常查询记录的总数量是否超过预设数量阈值;
21.如果是,则输出异常查询过多告警信息。
22.本技术实施例第二方面提供了一种查询语句无效字段检查装置,所述查询语句无效字段检查装置包括:
23.接收单元,用于接收请求到es指标仓库中的查询语句;
24.检查单元,用于检查所述查询语句是否包括无效字段;
25.生成单元,用于当检查出所述查询语句包括无效字段时,则生成针对所述查询语句包括无效字段的异常查询记录;
26.记录存储单元,用于存储所述异常查询记录。
27.在上述实现过程中,该查询语句无效字段检查装置可以通过接收单元接收请求到es指标仓库中的查询语句;通过检查单元检查所述查询语句是否包括无效字段;通过生成单元在检查出所述查询语句包括无效字段时,生成针对所述查询语句包括无效字段的异常查询记录;并通过记录存储单元存储所述异常查询记录。可见,实施这种实施方式,能够对请求到es的查询语句进行无效字段检查,避免多次引发oom错误,从而有利于提升开发效率。
28.进一步地,所述检查单元包括:
29.获取子单元,用于获取与所述查询语句对应目标索引的表结构;
30.判断子单元,用于根据所述目标索引的表结构判断所述查询语句是否包括无效字段。
31.进一步地,所述判断子单元,包括:
32.匹配模块,用于对所述查询语句进行正则匹配,得到所述查询语句中所有涉及到的目标字段;
33.比对模块,用于将所述目标索引的表结构与所述目标字段进行比对,得到比对信息;
34.判断模块,用于根据所述比对信息判断所述查询语句是否包括无效字段。
35.进一步地,所述记录存储单元,还用于在消费数据时,把每个索引的表结构记录到服务器中。
36.进一步地,所述查询语句无效字段检查装置还包括:
37.判断单元,用于判断存储的异常查询记录的总数量是否超过预设数量阈值;
38.输出单元,用于在所述异常查询记录的总数量超过所述预设数量阈值时,输出异常查询过多告警信息。
39.本技术实施例第三方面提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本技术实施例第一方面中任一项所述的查询语句无效字段检查方法。
40.本技术实施例第四方面提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本技术实施例第一方面中任一项所述的查询语句无效字段检查方法。
附图说明
41.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
42.图1为本技术实施例提供的一种查询语句无效字段检查方法的流程示意图;
43.图2为本技术实施例提供的另一种查询语句无效字段检查方法的流程示意图;
44.图3为本技术实施例提供的又一种查询语句无效字段检查方法的流程示意图;
45.图4为本技术实施例提供的一种查询语句无效字段检查装置的结构示意图;
46.图5为本技术实施例提供的另一种查询语句无效字段检查装置的结构示意图。
具体实施方式
47.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
48.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
49.实施例1
50.请参看图1,图1为本技术实施例提供了一种查询语句无效字段检查方法的流程示意图。其中,该查询语句无效字段检查方法包括:
51.s101、接收请求到es指标仓库中的查询语句。
52.本实施例中,该方法首先获取用户输入的查询语句,并基于该查询语句开展后续步骤。
53.s102、检查查询语句是否包括无效字段,若是,则执行步骤s103~s104;若否,则结束本流程。
54.本实施例中,该方法自动检查查询语句中的所有字段,并判断其中是否包括无效字段。
55.作为一种可选的实施方式,检查查询语句是否包括无效字段,包括:
56.获取与查询语句对应目标索引的表结构;
57.根据目标索引的表结构判断查询语句是否包括无效字段。
58.本实施例中,因为想要检查查询语句是否包含无效字段,需要先知道这张表的数据结构。所以,在该方法中应当先了解离线数据都是通过消费nas文件落入到es的,而在了解了该种情况的基础上,该方法可以将redis中记录的每个索引的表结构提取出来,然后再判断查询语句中是否包括无效字段。
59.s103、生成针对查询语句包括无效字段的异常查询记录。
60.本实施例中,该方法可以生成与无效字段相对应的异常查询记录,以便开发人员后续查看。
61.s104、存储异常查询记录。
62.目前,信用卡智慧经营系统主要采用es存储指标数据,基于此开发人员开发出了一套基于es的指标仓库。其中,标准化的代码可以让大家无需关注具体实现就能查到想要
的数据。然而,因为代码高度封装,开发人员无法了解整条链路,所以在开发人员改自己的代码时经常会影响到其他人的代码,从而导致请求到es的查询语句经常会有不存在的字段甚至可能不带查询条件查全表,进而多次引发oom。
63.基于该种情况,本技术认为其出现问题的原因在于es是文档型数据结构。该种文档型数据结构即便这一条文档有一个不在定义中的字段也会照样查询或插入,不会报错。因此,该方法设计了一种类似于mysql的校验器,可以检查请求到es中的查询语句是否有不存在的字段或者查询条件为空,同时也不能加重开发人员的负担,从而实现无侵入的效果。
64.本实施例中,该方法的执行主体可以为计算机、服务器等计算装置,对此本实施例中不作任何限定。
65.在本实施例中,该方法的执行主体还可以为智能手机、平板电脑等智能设备,对此本实施例中不作任何限定。
66.可见,实施本实施例所描述的查询语句无效字段检查方法,能够在开发人员完全无感知的情况下加以执行,同时还遵循着最小修改原则。另外,该方法能够在落数时记录了每个索引的表结构,并将器存入了redis,从而使得其他的一些自动化操作过程可以参照这个表结构。该方法中每个es查询都会经过dsl校验器,并对所有异常的查询都有cat记录,使得其上线前只需关注该类异常便可以避免生产事故的发生。最后,该方法的dsl扩展性高,能够为以后增强es查询功能留下扩展空间。
67.实施例2
68.请参看图2,图2为本技术实施例提供了一种查询语句无效字段检查方法的流程示意图。其中,该查询语句无效字段检查方法包括:
69.s201、接收请求到es指标仓库中的查询语句。
70.本实施例中,该步骤意在判断查询语句是否是请求到es指标仓库的查询语句,并以此限定该方法的应用场景。
71.本实施例中,该方法可以基于java的aop生成了dsl校验器,切入es的查询方法。
72.s202、获取与查询语句对应目标索引的表结构。
73.本实施例中,查询语句在进行es查询之前,会先进入dsl校验器。而dsl校验器会到redis中拉取要查的索引的表结构。
74.作为一种可选的实施方式,在获取与查询语句对应目标索引的表结构之前,方法还包括:
75.在消费数据时,把每个索引的表结构记录到服务器中。
76.本实施例中,该步骤用于说明在消费数据时,该方法可以先把每个索引的表结构记录到redis中。
77.s203、对查询语句进行正则匹配,得到查询语句中所有涉及到的目标字段。
78.本实施例中,该方法可以通过正则匹配,获取查询语句中所有涉及到的字段。
79.s204、将目标索引的表结构与目标字段进行比对,得到比对信息。
80.s205、根据比对信息判断查询语句是否包括无效字段,若是,则执行步骤s206~s208;若否,则结束本流程。
81.本实施例中,该方法可以通过对比,确定是否查询语句中是否包括无效字段。
82.s206、生成针对查询语句包括无效字段的异常查询记录。
83.本实施例中,在查询语句包括无效字段时,生成异常查询记录并记录该异常查询记录到cat中。
84.本实施例中,该方法存储异常查询记录至cat分布式监控系统。
85.在本实施例中,cat(central application tracking)是基于java开发的实时分布式应用监控平台,提供了全面的监控服务和业务决策支持。
86.也就是说:cat定义了一个基本的监控模型,可以用来实时监控,至于要监控些什么可以自己定义,比如要做分布式全链路跟踪监控,可以自己埋点获取监控信息;
87.s207、存储异常查询记录。
88.s208、判断存储的异常查询记录的总数量是否超过预设数量阈值,若是,则执行步骤s209;若否,则结束本流程。
89.s209、输出异常查询过多告警信息
90.本实施例中,异常查询记录的总数量达到一定阈值会自动触发告警。
91.请参看图3,图3示出了又一种查询语句无效字段检查方法的流程示意图。图3中包括dsl校验器、es指标仓库、由nas文件生成的消费数据、redis远程字典服务和cat分布式监控系统。其中,如果要检查查询语句是否包含无效字段,就要先知道这张表的数据结构,在智慧经营系统中,离线数据都是通过消费nas文件落入到es的,所以在消费数据时,可以先把每个索引的表结构记录到redis中。同时,基于java的aop生成了dsl校验器,切入es的查询方法。另外,在请求查询es之前,查询语句)(即查询参数)会进入到dsl校验器,校验器会到redis中拉取要查的索引的表结构,然后通过正则匹配,获取查询语句中所有涉及到的字段。两边对比一下,如果成功则继续正常流程,如果异常则记录至cat,达到一定阈值会触发告警。
92.本实施例中,该方法的执行主体可以为计算机、服务器等计算装置,对此本实施例中不作任何限定。
93.在本实施例中,该方法的执行主体还可以为智能手机、平板电脑等智能设备,对此本实施例中不作任何限定。
94.可见,实施本实施例所描述的查询语句无效字段检查方法,能够在开发人员完全无感知的情况下加以执行,同时还遵循着最小修改原则。另外,该方法能够在落数时记录了每个索引的表结构,并将器存入了redis,从而使得其他的一些自动化操作过程可以参照这个表结构。该方法中每个es查询都会经过dsl校验器,并对所有异常的查询都有cat记录,使得其上线前只需关注该类异常便可以避免生产事故的发生。最后,该方法的dsl扩展性高,能够为以后增强es查询功能留下扩展空间。
95.实施例3
96.请参看图4,图4为本技术实施例提供的一种查询语句无效字段检查装置的结构示意图。如图4所示,该查询语句无效字段检查装置包括:
97.接收单元310,用于接收请求到es指标仓库中的查询语句;
98.检查单元320,用于检查查询语句是否包括无效字段;
99.生成单元330,用于当检查出查询语句包括无效字段时,生成针对查询语句包括无效字段的异常查询记录;
100.记录存储单元340,用于存储异常查询记录。
101.本实施例中,对于查询语句无效字段检查装置的解释说明可以参照实施例1中的描述,对此本实施例中不再多加赘述。
102.可见,实施本实施例所描述的查询语句无效字段检查装置,能够在开发人员完全无感知的情况下加以执行,同时还遵循着最小修改原则。另外,该方法能够在落数时记录了每个索引的表结构,并将器存入了redis,从而使得其他的一些自动化操作过程可以参照这个表结构。该方法中每个es查询都会经过dsl校验器,并对所有异常的查询都有cat记录,使得其上线前只需关注该类异常便可以避免生产事故的发生。最后,该方法的dsl扩展性高,能够为以后增强es查询功能留下扩展空间。
103.实施例4
104.请参看图5,图5为本技术实施例提供的一种查询语句无效字段检查装置的结构示意图。如图5所示,该查询语句无效字段检查装置包括:
105.接收单元310,用于接收请求到es指标仓库中的查询语句;
106.检查单元320,用于检查查询语句是否包括无效字段;
107.生成单元330,用于当检查出查询语句包括无效字段时,则生成针对查询语句包括无效字段的异常查询记录;
108.记录存储单元340,用于存储异常查询记录。
109.作为一种可选的实施方式,检查单元320包括:
110.获取子单元321,用于获取与查询语句对应目标索引的表结构;
111.判断子单元322,用于根据目标索引的表结构判断查询语句是否包括无效字段。
112.作为一种可选的实施方式,判断子单元322包括:
113.匹配模块,用于对查询语句进行正则匹配,得到查询语句中所有涉及到的目标字段;
114.比对模块,用于将目标索引的表结构与目标字段进行比对,得到比对信息;
115.判断模块,用于根据比对信息判断查询语句是否包括无效字段。
116.作为一种可选的实施方式,记录存储单元340还用于在消费数据时,把每个索引的表结构记录到服务器中。
117.作为一种可选的实施方式,查询语句无效字段检查装置还包括:
118.判断单元350,用于判断存储的异常查询记录的总数量是否超过预设数量阈值;
119.输出单元360,用于在异常查询记录的总数量超过预设数量阈值时,输出异常查询过多告警信息。
120.本实施例中,对于查询语句无效字段检查装置的解释说明可以参照实施例1中的描述,对此本实施例中不再多加赘述。
121.可见,实施本实施例所描述的查询语句无效字段检查装置,能够在开发人员完全无感知的情况下加以执行,同时还遵循着最小修改原则。另外,该方法能够在落数时记录了每个索引的表结构,并将器存入了redis,从而使得其他的一些自动化操作过程可以参照这个表结构。该方法中每个es查询都会经过dsl校验器,并对所有异常的查询都有cat记录,使得其上线前只需关注该类异常便可以避免生产事故的发生。最后,该方法的dsl扩展性高,能够为以后增强es查询功能留下扩展空间。
122.本技术实施例提供了一种电子设备,包括存储器以及处理器,存储器用于存储计
算机程序,处理器运行计算机程序以使电子设备执行本技术实施例1或实施例2中的查询语句无效字段检查方法。
123.本技术实施例提供了一种计算机可读存储介质,其存储有计算机程序指令,计算机程序指令被一处理器读取并运行时,执行本技术实施例1或实施例2中的查询语句无效字段检查方法。
124.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
125.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
126.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
127.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
128.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
129.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1