一种基于国产CPU和数据库的SQL文件检查方法及系统与流程

文档序号:29937431发布日期:2022-05-07 13:49阅读:70来源:国知局
一种基于国产CPU和数据库的SQL文件检查方法及系统与流程
一种基于国产cpu和数据库的sql文件检查方法及系统
技术领域
1.本发明公开一种基于国产cpu和数据库的sql文件检查方法及系统,涉及数据库技术领域。


背景技术:

2.随着国产软硬件技术的发展,国产数据库的应用越来越广泛,神通数据库、达梦数据库、金仓数据库等国产数据库软件产品在产品性能、易用性等方面都达到或接近世界领先水平。在国产数据库应用越来越广泛的今天,针对于国产数据库的sql语句正确性审查和语句规范性约束是急需解决的问题。
3.在实际的项目开发过程中,数据库表的创建和维护是不可缺少的一部分,在开发过程中会产生很多的sql文件,由于项目一般是多人合作的,不能对sql语句的正确性、规范性和性能进行保障,这给项目的开发部署带来了困难。目前,现有的sql审核提交系统只具有流程提交及数据库管理功能,无法实现sql语句自动审核功能,且针对sql语句写法的统一化标准,人工审核比较吃力,标准越多,人工审核越困难,审核周期较长,效率低下,不能满足实际的开发应用。
4.在项目使用多种国产数据库的情况下,在关键字、语法、要求规范上都有不同,面对复杂的数据库部署环境,单一的检查方法不能满足多种国产数据库的检测,这给数据库规范工作带来了一定的困难。
5.故现发明一种基于国产cpu和数据库的sql文件检查方法及系统,以解决上述问题。


技术实现要素:

6.本发明针对现有技术的问题,提供一种基于国产cpu和数据库的sql文件检查方法及系统,所采用的技术方案为:一种基于国产cpu和数据库的sql文件检查方法,所述的方法具体步骤如下:
7.s1配置规范文件;
8.s2获取sql文件进行解析,数据统一格式的处理信息;
9.s3根据指定的配置文件加载不同的规则文件;
10.s4根据文件类型解析sql语句;
11.s5对执行错误进行报错,对规范性和优化点进行告警。
12.所述s2获取sql文件进行解析,数据统一格式的处理信息的具体步骤如下:
13.s201统一过滤分析模块识别sql文件的类型获取文件中的sql语句;
14.s202通过一个接口多个实现的方式处理不同类型的文件,并以相同的数据输出。
15.所述s4根据文件类型解析sql语句的具体步骤如下:
16.s401通过上一阶段获取到的语句信息,检查语句执行的正确性,
17.s402遍历表名列名、数据类型等关键信息列表,根据规范性配置文件进行检测;
18.s403根据配置文件中的具体配置项,对表名列名进行关键字进行检查,对基础的语法规则和优化点进行检查。
19.所述s5对执行错误进行报错,对规范性和优化点进行告警的具体步骤如下:
20.s501根据配置文件以及数据库类型,对解析出来的sql信息进行规范性检查;
21.s502根据数据库类型的不同进行对应数据库的关键字校验;
22.s503根据制定的规范文件进行校验;
23.s504对字段的字段类型进行校验;
24.s505将报错和告警信息进行整合,反馈到输出中。
25.一种基于国产cpu和数据库的sql文件检查系统,所述的系统具体包括文件配置模块、文件解析模块、文件加载模块、语句解析模块和报错告警模块:
26.文件配置模块:配置规范文件;
27.文件解析模块:获取sql文件进行解析,数据统一格式的处理信息;
28.文件加载模块:根据指定的配置文件加载不同的规则文件;
29.语句解析模块:根据文件类型解析sql语句;
30.报错告警模块:对执行错误进行报错,对规范性和优化点进行告警。
31.所述文件解析模块具体包括语句识别模块和文件处理模块:
32.语句识别模块:统一过滤分析模块识别sql文件的类型获取文件中的sql语句;
33.文件处理模块:通过一个接口多个实现的方式处理不同类型的文件,并以相同的数据输出。
34.所述语句解析模块具体包括执行判断模块、配置检测模块和配置检查模块:
35.执行判断模块:通过上一阶段获取到的语句信息,检查语句执行的正确性,
36.配置检测模块:遍历表名列名、数据类型等关键信息列表,根据规范性配置文件进行检测;
37.配置检查模块:根据配置文件中的具体配置项,对表名列名进行关键字进行检查,对基础的语法规则和优化点进行检查。
38.所述报错告警模块具体包括规范校验模块、关键字校验模块、文件校验模块、类型校验模块和信息输出模块:
39.规范校验模块:根据配置文件以及数据库类型,对解析出来的sql信息进行规范性检查;
40.关键字校验模块:根据数据库类型的不同进行对应数据库的关键字校验;
41.文件校验模块:根据制定的规范文件进行校验;
42.类型校验模块:对字段的字段类型进行校验;
43.信息输出模块:将报错和告警信息进行整合,反馈到输出中。
44.本发明的有益效果为:本发明针对国产环境的数据库提供了自动正确性和规范性检查,现在实际使用的工具中缺少对国产数据库的全面支持,本方法方法对国产数据库工具的发展起到了积极的作用:
45.本发明兼容所有的sql文件格式,对不同文件格式有不同的处理方法,通过统一的过滤处理模块,区分出是哪种文件类型,做到了实用性;
46.本发明方法兼容多种国产数据库,对各个国产数据库的语法以及关键字等信息都
进行了匹配,通过外部配置文件的方式进行操作,后续易拓展,易维护
47.本发明方法支持可定制可修改,对于增加的一些额外的字段检测、修改规范性规则很方便,通过修改对应外部配置文件做到规则的定制,在运行的时候实时加载配置文件,做到灵活易迁移;
48.本发明是基于标签和操作关键字进行语句的解析,支持多种操作语句,对于常用的sql语句有着很好的兼容性,可以运用到项目初始化、增加基础数据、测试数据增加、版本升级等多种场景上,对复杂语句也有着很好的逐层解析能力,并对影响数据库整体性能的语句提出告警,方便进行优化;
49.本发明方法运用一个接口多个实现的方式,对不同类型的文件进行处理,并且用相同的数据输出方式,便于维护和拓展,后续有新的实现方式需要增加,直接拓展一个实现就能解决,具有很好的拓展性,便于使用。
附图说明
50.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
51.图1是本发明方法的流程图。
具体实施方式
52.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
53.实施例一:
54.一种基于国产cpu和数据库的sql文件检查方法,所述的方法具体步骤如下:
55.s1配置规范文件;
56.s2获取sql文件进行解析,数据统一格式的处理信息;
57.s3根据指定的配置文件加载不同的规则文件;
58.s4根据文件类型解析sql语句;
59.s5对执行错误进行报错,对规范性和优化点进行告警;
60.基于国产cpu和数据库的sql正确性及规范性检查方法,面对国产数据库类型的不同以及多样化的检查规范,本发明方法通过配置文件的形式适应各种实际情况,通过统一的配置文件形式,易拓展、易修改;在配置好检查规范之后,获取sql文件;在获取到相应的语句之后,根据指定的配置文件加载不同的规则文件;
61.在解析完成之后,把表名信息、列名信息及其他信息存入列表中,以统一的形式输出,进行下一阶段的处理;
62.最后对执行错误进行报错,对规范性和优化点进行告警,完成对复杂sql文件的自动检查;
63.本发明方法对于规则可以灵活配置也可以修改,在统一形式的配置文件中可以配置数据库类型,在确定数据库类型之后,可以自动匹配出该数据库的关键字等信息,减少了
用户的配置,并支持增加自定义关键字、表名字段名的长度限制、是否允许拼音、大小写是否统一以及表名字段名中不能出现的字段等配置;在运行的时候先根据需求加载对应的配置文件,实现了对多种数据库灵活适配;
64.进一步的,所述s2获取sql文件进行解析,数据统一格式的处理信息的具体步骤如下:
65.s201统一过滤分析模块识别sql文件的类型获取文件中的sql语句;
66.s202通过一个接口多个实现的方式处理不同类型的文件,并以相同的数据输出;
67.首先通过统一过滤分析模块识别sql文件的类型,针对不同类型的sql文件,进行不同的处理方法,比如.xml类型、.sql类型、.txt类型进行不同处理,获取文件中的sql语句;在获取sql语句时提供一个统一的接口,分别对应多种文件类型进行实现,xml类型主要针对标签就行获取相关信息,sql类型和txt类型通过语句关键词,逐层分析获取相关信息;
68.本方法根据传入的文件路径获取到sql文件,本方法适用于多种类型的sql文件检查,包括xml格式、txt格式、sql格式等多种文件类型,根据传入的文件后缀分析文件类型,通过同一接口的多种实现分别对各种形式的文件进行处理;因为实际项目中,不同开发人员使用不同的数据库管理工具,生成的sql文件也可能有所不同,本发明利用统一过滤分析模块,通过文件后缀识别出不同的文件类型,分发到不同的处理逻辑中,对不符合规则的文件后缀进行报错提醒,防止获取到错误的文件类型,方便后续的解析处理,实现了自动识别与处理,增强了易迁移性和实用性;
69.进一步的,所述s4根据文件类型解析sql语句的具体步骤如下:
70.s401通过上一阶段获取到的语句信息,检查语句执行的正确性,
71.s402遍历表名列名、数据类型等关键信息列表,根据规范性配置文件进行检测;
72.s403根据配置文件中的具体配置项,对表名列名进行关键字进行检查,对基础的语法规则和优化点进行检查;
73.然后根据文件类型解析sql语句,包括create语句、delete语句、update语句、select语句等具体的语句,通过上一阶段获取到的语句信息,检查语句执行的正确性,并遍历表名列名、数据类型等关键信息列表,根据规范性配置文件进行检测,根据配置文件中的具体配置项,对表名列名进行关键字冲突检查、过长过短检查等多种具体的检查,对基础的语法规则和优化点进行检查;
74.本方法通过先解析sql中的语句,来判断语句中错误的地方,对不符合语法的语句提示报错信息,记录到错误信息列表中,并通过处理sql文件中的关键字逐层解析sql文件中的语句,因为输入的文件类型不同,所以存在不同的处理方式;对于xml类型的文件来说,通过标签找到相应的表名、字段名以及字段类型,语句中相对应的操作类型,包括建表语句,增加语句,删除语句,修改语句类型等,解析出来存入相应的列表里面,等待后面的检查过程;对于txt类型的文件,需要通过关键字判断出是那种数据操作类型,根据各个数据库的语句规则根据关键字逐层解析表名、字段名以及字段类型,也存入相对应的列表里面;同样其他各种文件类型也可以拓展相对应的解析方式,统一把数据存入到列表之中,方便后续进行的规范性检查,做到不同输入,统一输出形式,大大提高了适用性;
75.再进一步的,所述s5对执行错误进行报错,对规范性和优化点进行告警的具体步骤如下:
76.s501根据配置文件以及数据库类型,对解析出来的sql信息进行规范性检查;
77.s502根据数据库类型的不同进行对应数据库的关键字校验;
78.s503根据制定的规范文件进行校验;
79.s504对字段的字段类型进行校验;
80.s505将报错和告警信息进行整合,反馈到输出中;
81.本方法根据配置文件进行规范性检查,根据一开始配置好的配置文件以及数据库类型,对解析出来的sql信息进行规范性检查;根据数据库类型的不同,本方法会进行对应数据库的关键字校验,对表名或者字段名与关键字冲突的进行告警,根据制定的规范性文件,对表名、字段名进行过长或过短校验,大小写规范校验,拼音的校验,对不符合规范的进行告警;对字段的字段类型进行校验,对超出数据库范围以及字段过大过小问题进行报错和告警,对拉低数据库整体性能的语句进行校验,给出告警信息;最终把报错和告警信息进行整合,反馈到输出中,实现对sql文件的规范性检查。
82.实施例二:
83.一种基于国产cpu和数据库的sql文件检查系统,所述的系统具体包括文件配置模块、文件解析模块、文件加载模块、语句解析模块和报错告警模块:
84.文件配置模块:配置规范文件;
85.文件解析模块:获取sql文件进行解析,数据统一格式的处理信息;
86.文件加载模块:根据指定的配置文件加载不同的规则文件;
87.语句解析模块:根据文件类型解析sql语句;
88.报错告警模块:对执行错误进行报错,对规范性和优化点进行告警,
89.进一步的,所述文件解析模块具体包括语句识别模块和文件处理模块:
90.语句识别模块:统一过滤分析模块识别sql文件的类型获取文件中的sql语句;
91.文件处理模块:通过一个接口多个实现的方式处理不同类型的文件,并以相同的数据输出;
92.进一步的,所述语句解析模块具体包括执行判断模块、配置检测模块和配置检查模块:
93.执行判断模块:通过上一阶段获取到的语句信息,检查语句执行的正确性,
94.配置检测模块:遍历表名列名、数据类型等关键信息列表,根据规范性配置文件进行检测;
95.配置检查模块:根据配置文件中的具体配置项,对表名列名进行关键字进行检查,对基础的语法规则和优化点进行检查;
96.再进一步的,所述报错告警模块具体包括规范校验模块、关键字校验模块、文件校验模块、类型校验模块和信息输出模块:
97.规范校验模块:根据配置文件以及数据库类型,对解析出来的sql信息进行规范性检查;
98.关键字校验模块:根据数据库类型的不同进行对应数据库的关键字校验;
99.文件校验模块:根据制定的规范文件进行校验;
100.类型校验模块:对字段的字段类型进行校验;
101.信息输出模块:将报错和告警信息进行整合,反馈到输出中。
102.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1