一种SQL语句处理方法、装置、设备及存储介质制造方法及图纸

技术编号:36433058 阅读:13 留言:0更新日期:2023-01-20 22:45
本发明专利技术公开了一种SQL语句处理方法、装置、设备及存储介质。该方法包括:从客户端获取SQL语句,并确定所述SQL语句中存在不支持函数的不支持SQL语句;若根据规则文件确定所述不支持SQL语句的处理模式为语法解析模式,则根据所述规则文件对所述不支持SQL语句进行函数转换,得到替换SQL语句;对所述替换SQL语句进行语法解析,得到语法解析结果。本发明专利技术实施例可以提高测试效率。以提高测试效率。以提高测试效率。

【技术实现步骤摘要】
一种SQL语句处理方法、装置、设备及存储介质


[0001]本专利技术涉及计算机
,尤其涉及一种SQL语句处理方法、装置、设备及存储介质。

技术介绍

[0002]外场验证性测试(Proof of Concept,POC)测试时,数据库用户一般都会测试数据库对mysql、oracle、pg、db2等主流数据库中函数的支持程度。
[0003]而目前的分布式数据库系统,通常无法完全兼容所有主流数据库函数。因此在应对POC测试时,需要临时去开发测试中的不支持函数,一方面影响测试效率,其次也会对自身分布式数据库兼容项评估造成影响。

技术实现思路

[0004]本专利技术提供了一种SQL语句处理方法、装置、设备及存储介质,以提高测试效率。
[0005]根据本专利技术的一方面,提供了一种SQL语句处理方法,包括:
[0006]从客户端获取SQL语句,并确定所述SQL语句中存在不支持函数的不支持SQL语句;
[0007]若根据规则文件确定所述不支持SQL语句的处理模式为语法解析模式,则根据所述规则文件对所述不支持SQL语句进行函数转换,得到替换SQL语句;
[0008]对所述替换SQL语句进行语法解析,得到语法解析结果。
[0009]根据本专利技术的另一方面,提供了一种SQL语句处理装置,包括:
[0010]不支持语句确定模块,用于从客户端获取SQL语句,并确定所述SQL语句中存在不支持函数的不支持SQL语句;
[0011]语句替换模块,用于若根据规则文件确定所述不支持SQL语句的处理模式为语法解析模式,则根据所述规则文件对所述不支持SQL语句进行函数转换,得到替换SQL语句;
[0012]语法解析模块,用于对所述替换SQL语句进行语法解析,得到语法解析结果。
[0013]根据本专利技术的另一方面,提供了一种电子设备,所述电子设备包括:
[0014]至少一个处理器;以及
[0015]与所述至少一个处理器通信连接的存储器;其中,
[0016]所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本专利技术任一实施例所述的SQL语句处理方法。
[0017]根据本专利技术的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本专利技术任一实施例所述的SQL语句处理方法。
[0018]本专利技术实施例通过规则文件对存在不支持函数的不支持SQL语句进行函数替换,得到可正常处理的替换SQL语句,实现对不支持函数的兼容处理,提高测试效率,同时降低测试过程中对自身分布式数据库兼容项的评估影响。
[0019]应当理解,本部分所描述的内容并非旨在标识本专利技术的实施例的关键或重要特征,也不用于限制本专利技术的范围。本专利技术的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0020]为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021]图1是根据本专利技术一实施例提供的一种SQL语句处理方法的流程图;
[0022]图2A是根据本专利技术又一实施例提供的一种SQL语句处理方法的流程图;
[0023]图2B是根据本专利技术又一实施例提供的一种SQL语句处理逻辑的示意图;
[0024]图3是根据本专利技术又一实施例提供的一种SQL语句处理装置的结构示意图;
[0025]图4是实现本专利技术实施例的电子设备的结构示意图。
具体实施方式
[0026]为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。
[0027]需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0028]为便于理解本专利技术实施例,并明确保护范围,对本专利技术的应用场景进行如下说明:
[0029]对于由数据节点和计算节点组成的分布式数据库,例如GoldenDB分布式数据库,其数据节点通常可对不支持函数的等价函数正常处理,即分布式数据库有其他函数具有与不支持函数相同的功能,但计算节点并未设计对不支持函数的实现。这种不支持函数常见的处理方法是透传在数据节点进行计算,而透传的前提则是存在不支持函数的不支持语句必须先通过计算节点上的语法解析。
[0030]图1为本专利技术一实施例提供的一种SQL语句处理方法的流程图,本实施例可适用于在分布式数据库系统部署magic工具,并在magic工具配置规则文件,分别对含有关键词的关键SQL语句和含有不支持函数的不支持语句进行处理的情况,该方法可以由SQL语句处理装置来执行,该装置可以采用硬件和/或软件的形式实现,该装置可配置于具备相应数据处理能力的电子设备中,例如分布式数据库系统的计算节点。如图1所示,该方法包括:
[0031]S110、从客户端获取SQL语句,并确定所述SQL语句中存在不支持函数的不支持SQL
语句。
[0032]具体的,Magic工具的工作需要开发人员提供一份Gramrule.xml文件,作为规则文件存储在分布式数据库系统本地,并加载Gramrule.xml文件到缓存中。当处理客户端发至计算节点的SQL语句时,若配置文件中开启使用Magic工具的配置项,且计算节点通过语法解析,确定出现存在不支持函数的不支持SQL语句时,便会走动启用该工具的流程。
[0033]S120、若根据规则文件确定所述不支持SQL语句的处理模式为语法解析模式,则根据所述规则文件对所述不支持SQL语句进行函数转换,得到替换SQL语句。
[0034]S130、对所述替换SQL语句进行语法解析,得到语法解析结果。
[0035]具体的,规则文件记载对不支持SQL语句的两种处理模式,即语法解析模式和透传模式。如果不支持函数在规则文件中有匹配的等价函数,则该不支持函数的处理模式为语法解析模式,可通过该等价函数对不支持SQL语句进行函数转换,将转换后的SQL语句作为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种SQL语句处理方法,其特征在于,所述方法包括:从客户端获取SQL语句,并确定所述SQL语句中存在不支持函数的不支持SQL语句;若根据规则文件确定所述不支持SQL语句的处理模式为语法解析模式,则根据所述规则文件对所述不支持SQL语句进行函数转换,得到替换SQL语句;对所述替换SQL语句进行语法解析,得到语法解析结果。2.根据权利要求1所述的方法,其特征在于,所述根据所述规则文件对所述不支持SQL语句进行函数转换,得到替换SQL语句包括:根据所述规则文件确定所述不支持函数的等价函数,并根据所述等价函数对所述不支持SQL语句中不支持函数进行替换,得到替换SQL语句;或,根据所述规则文件确定所述不支持函数的等价函数和不支持函数参数的转换方式,并根据所述等价函数和所述转换方式分别对所述不支持函数和所述不支持函数参数进行处理,得到替换SQL语句。3.根据权利要求1所述的方法,其特征在于,所述确定所述SQL语句中存在不支持函数的不支持SQL语句之后,还包括:若根据规则文件确定所述不支持SQL语句的处理模式为透传模式,则对所述不支持SQL语句增加透传标签得到第一透传SQL语句,并向数据节点透传所述第一透传SQL语句。4.根据权利要求1所述的方法,其特征在于,所述从客户端获取SQL语句之后,还包括:确定所述SQL语句中存在关键词的关键SQL语句;若根据规则文件确定所述关键SQL语句的处理模式为透传模式,则对所述关键SQL语句增加透传标签得到第二透传SQL语句,并向数据节点透传所述第二透传SQL语句。5.根据权利要求4所述的方法,其特征在于,所述确定所述SQL语句中存在关键词的关键SQL语句之后,还包括:若根据所述规则文件确定所述关键SQL语句的处理模式为拼接模式,则为所述关键SQL语句增加hit控制标签,并在语法解析时将所述hit控制标签拼接至...

【专利技术属性】
技术研发人员:史智慧
申请(专利权)人:金篆信科有限责任公司
类型:发明
国别省市:

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

1