[发明专利]一种SQL改写方法、装置、电子设备及存储介质在审
申请号: | 202111617253.X | 申请日: | 2021-12-27 |
公开(公告)号: | CN114443688A | 公开(公告)日: | 2022-05-06 |
发明(设计)人: | 唐律 | 申请(专利权)人: | 天翼云科技有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100007 北京市东城区青*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sql 改写 方法 装置 电子设备 存储 介质 | ||
本申请实施例提供了一种SQL改写方法、装置、电子设备及存储介质,涉及数据库技术领域。本申请中,基于目标语法结构信息,确定相应的候选AST标识,再根据候选AST标识以及预先设置的AST集合,选取出与候选AST标识对应的候选AST,并最终根据目标参数信息,对候选AST进行改写,得到相应的目标AST,进而生成目标AST对应的目标SQL。采用本申请,在接收到SQL改写请求后,基于目标语法结构信息对应的候选AST标识,从预先设置的AST集合中,选取出与候选AST标识相匹配的候选AST,提高了SQL改写的效率。
技术领域
本申请涉及数据库技术领域,尤其涉及一种SQL改写方法、装置、电子设备及存储介质。
背景技术
结构化查询语言(Structured Query Language,SQL)被广泛应用于各式各样的数据库,用以提高计算机应用系统的工作质量以及效率。然而,为了满足特定的业务需求,往往需要将一个SQL改写成另一个SQL。
例如,为了实现对SQL的改写,分布式数据库Mycat通过Druid解析器,对初始SQL依次进行词法解析和语法解析,从而获得相应的初始抽象语法树(Abstract Syntax Tree,AST);紧接着,基于特定的业务需求,对初始AST的结构和内容进行修改,得到目标AST,并最终基于目标AST,完成对初始SQL的改写,生成目标SQL。
进一步地,随着业务需求的飞速增长,需要进行大量的SQL改写操作,因而,为了提高SQL的改写效率,分布式数据库Mycat直接将SQL作为键(Key)对相应的目标AST进行缓存。当执行SQL改写操作时,通过SQL进行匹配,从缓存的多个目标AST中,筛选出满足当前业务需求的目标AST,从而完成对初始SQL的改写,生成目标SQL。
然而,采用上述方式的SQL改写方法,直接将SQL作为键对相应的目标AST进行缓存,会因执行SQL改写操作时,需要对整个SQL进行匹配,消耗大量的时间;并且,如果缓存了大量相似度极高的SQL,会影响SQL匹配的准确性。
因此,采用上述方式,会降低了SQL改写的效率。
发明内容
本申请提供一种SQL改写方法、装置、电子设备及存储介质,用以提高SQL改成的效率。
第一方面,本申请实施例提供了一种SQL改写方法,所述方法包括:
接收终端设备发送的SQL改写请求,并从SQL改写请求中,获取目标SQL的目标语法结构信息以及目标参数信息。
确定目标语法结构信息对应的候选抽象语法树AST标识。
基于候选AST标识,从预先设置的AST集合中,选取出与候选AST标识相匹配的候选AST。
基于目标参数信息,对候选AST进行改写,获得相应的目标AST,并基于SQL改写请求,生成目标AST对应的目标SQL。
第二方面,本申请实施例还提供了一种SQL改写装置,所述装置包括:
接收模块,用于接收终端设备发送的SQL改写请求,并从SQL改写请求中,获取目标SQL的目标语法结构信息以及目标参数信息。
处理模块,用于确定目标语法结构信息对应的候选抽象语法树AST标识。
匹配模块,用于基于候选AST标识,从预先设置的AST集合中,选取出与候选AST标识相匹配的候选AST。
生成模块,用于基于目标参数信息,对候选AST进行改写,获得相应的目标AST,并基于SQL改写请求,生成目标AST对应的目标SQL。
一种可选的实施例中,在接收终端设备发送的SQL改写请求之前,所述生成模块还用于:
针对各个原始SQL,分别执行以下操作:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天翼云科技有限公司,未经天翼云科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111617253.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于金属配件的线切割设备
- 下一篇:一种数据处理方法、装置、设备及介质