结构化查询语言的处理方法技术

技术编号:39670829 阅读:11 留言:0更新日期:2023-12-11 18:36
本申请涉及一种结构化查询语言的处理方法

【技术实现步骤摘要】
结构化查询语言的处理方法、装置、电子设备及存储介质


[0001]本申请涉及计算机领域,尤其涉及一种结构化查询语言的处理方法

装置

电子设备及存储介质


技术介绍

[0002]结构化查询语言
(Structured Query Language

SQL)
,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询

更新和管理关系数据库系统

[0003]现有的
SQL
语句在执行的过程中,是由客户端发送
SQL
语句至服务端,服务端将
SQL
语句发送至对应的执行引擎进行执行,最后反馈处理结果至客户端

其中,执行引擎在执行
SQL
语句的过程中,可以先检测
SQL
语句是否符合词法

语法或者语意的要求,若不符合要求则会报错

通常情况下执行引擎的计算资源较为紧张,若由执行引擎接收到
SQL
语句,在执行的过程中发现
SQL
语句的错误,再进行报错不仅耗时较长还浪费了执行引擎的较多计算资源,导致
SQL
语句响应效率低下的问题


技术实现思路

[0004]为了解决上述技术问题,本申请提供了一种结构化查询语言的处理方法

装置

电子设备及存储介质

[0005]第一方面,本申请提供了一种结构化查询语言的处理方法,所述方法包括:
[0006]获取待执行语句,所述待执行语句表示由结构化查询语言组成的语句;
[0007]生成所述待执行语句的抽象语法树;
[0008]判断所述抽象语法树中的各个节点信息是否符合预设规则;
[0009]在所述抽象语法树中的各个所述节点信息均符合所述预设规则的情况下,将所述待执行语句输出至目标执行引擎

[0010]可选的,所述生成所述待执行语句的抽象语法树,包括:
[0011]确定所述待执行语句的类型标识,所述类型标识表示执行所述待执行语句的目标执行引擎的标识;
[0012]基于所述类型标识,确定所述目标执行引擎对应的目标解析器,所述目标解析器表示用于解析所述待执行语句的解析器;
[0013]基于所述目标解析器,判断所述待执行语句是否符合所述目标执行引擎的语法规则;
[0014]在所述待执行语句不符合所述目标执行引擎的语法规则的情况下,生成第一错误信息,所述第一错误信息表示所述待执行语句存在的错误;
[0015]在所述待执行语句符合所述目标执行引擎的语法规则的情况下,生成所述待执行语句的抽象语法树

[0016]可选的,所述基于所述类型标识,确定所述目标执行引擎对应的目标解析器,包
括:
[0017]获取解析器集合,所述解析器集合表示预先配置的解析器的集合;
[0018]确定所述类型标识对应的所述目标执行引擎;
[0019]判断所述解析器集合中是否存在与所述目标执行引擎对应的解析器;
[0020]在所述解析器集合中存在所述目标执行引擎对应的解析器的情况下,将所述目标执行引擎对应的解析器,确定为所述目标解析器;
[0021]在所述解析器集合中不存在所述目标执行引擎对应的解析器的情况下,生成第二错误信息,所述第二错误信息表示所述类型标识存在的错误

[0022]可选的,所述节点信息包括目标表信息;以及,
[0023]所述判断所述抽象语法树中的各个节点信息是否符合预设规则,包括:
[0024]获取元数据信息,所述元数据信息表示数据库中的表信息;
[0025]判断所述元数据信息表示的表信息中是否存在所述目标表信息;
[0026]在所述元数据信息表示的表信息中存在所述目标表信息的情况下,确定所述抽象语法树中的节点信息符合预设规则;
[0027]在所述元数据信息表示的表信息中不存在所述目标表信息的情况下,确定所述抽象语法树中的节点信息不符合预设规则

[0028]可选的,所述节点信息还包括目标分区信息;以及,
[0029]所述在所述元数据信息表示的表信息中存在所述目标表信息的情况下,确定所述抽象语法树中的节点信息符合预设规则,包括:
[0030]在所述元数据信息表示的表信息中存在所述目标表信息的情况下,确定所述元数据信息表示的表信息的分区信息集合;
[0031]判断所述分区信息集合中是否存在所述目标分区信息;
[0032]在所述分区信息集合中存在所述目标分区信息的情况下,确定所述抽象语法树中的节点信息符合预设规则

[0033]可选的,所述获取元数据信息,包括:
[0034]获取元数据应用的目录信息,所述元数据应用表示与所述数据库交互的应用,所述目录信息与数据库中的表信息存在对应关系;
[0035]基于所述目录信息以及所述对应关系,获取所述数据库中的表信息;
[0036]将所述表信息作为所述元数据信息

[0037]可选的,所述将所述待执行语句输出至目标执行引擎,包括:
[0038]确定所述待执行语句的类型标识,所述类型标识表示执行所述待执行语句的目标执行引擎的标识;
[0039]获取执行引擎集合,所述执行引擎集合表示预先配置的执行引擎的集合;
[0040]基于所述类型标识,判断所述执行引擎集合中是否存在所述类型标识对应的所述目标执行引擎;
[0041]在所述执行引擎集合中存在所述类型标识对应的所述目标执行引擎的情况下,将所述待执行语句输出至目标执行引擎

[0042]第二方面,本申请提供了一种结构化查询语言的处理装置,所述装置包括:
[0043]获取模块,用于获取待执行语句,所述待执行语句表示由结构化查询语言组成的
语句;
[0044]生成模块,用于生成所述待执行语句的抽象语法树;
[0045]判断模块,用于判断所述抽象语法树中的各个节点信息是否符合预设规则;
[0046]输出模块,用于在所述抽象语法树中的各个所述节点信息均符合所述预设规则的情况下,将所述待执行语句输出至目标执行引擎

[0047]第三方面,提供了一种电子设备,包括处理器

通信接口

存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0048]存储器,用于存放计算机程序;
[0049]处理器,用于执行存储器上所存放的程序时,实现第一方面任一项实施例所述的方法

[0050]第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种结构化查询语言的处理方法,其特征在于,所述方法包括:获取待执行语句,所述待执行语句表示由结构化查询语言组成的语句;生成所述待执行语句的抽象语法树;判断所述抽象语法树中的各个节点信息是否符合预设规则;在所述抽象语法树中的各个所述节点信息均符合所述预设规则的情况下,将所述待执行语句输出至目标执行引擎
。2.
根据权利要求1所述的方法,其特征在于,所述生成所述待执行语句的抽象语法树,包括:确定所述待执行语句的类型标识,所述类型标识表示执行所述待执行语句的目标执行引擎的标识;基于所述类型标识,确定所述目标执行引擎对应的目标解析器,所述目标解析器表示用于解析所述待执行语句的解析器;基于所述目标解析器,判断所述待执行语句是否符合所述目标执行引擎的语法规则;在所述待执行语句不符合所述目标执行引擎的语法规则的情况下,生成第一错误信息,所述第一错误信息表示所述待执行语句存在的错误;在所述待执行语句符合所述目标执行引擎的语法规则的情况下,生成所述待执行语句的抽象语法树
。3.
根据权利要求2所述的方法,其特征在于,所述基于所述类型标识,确定所述目标执行引擎对应的目标解析器,包括:获取解析器集合,所述解析器集合表示预先配置的解析器的集合;确定所述类型标识对应的所述目标执行引擎;判断所述解析器集合中是否存在与所述目标执行引擎对应的解析器;在所述解析器集合中存在所述目标执行引擎对应的解析器的情况下,将所述目标执行引擎对应的解析器,确定为所述目标解析器;在所述解析器集合中不存在所述目标执行引擎对应的解析器的情况下,生成第二错误信息,所述第二错误信息表示所述类型标识存在的错误
。4.
根据权利要求1所述的方法,其特征在于,所述节点信息包括目标表信息;以及,所述判断所述抽象语法树中的各个节点信息是否符合预设规则,包括:获取元数据信息,所述元数据信息表示数据库中的表信息;判断所述元数据信息表示的表信息中是否存在所述目标表信息;在所述元数据信息表示的表信息中存在所述目标表信息的情况下,确定所述抽象语法树中的节点信息符合预设规则;在所述元数据信息表示的表信息中不存在所述目标表信息的情况下,确定所述抽象语法树中的节点信息不符合预设规则
。5.
根据权利要求4所述的方法,其特征在于,所述节点信息还包括目标分区信息;...

【专利技术属性】
技术研发人员:刘泽鑫
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1