CN117251477B - 基于sql解析的数据开发脚本标准化检查方法及系统 - Google Patents

基于sql解析的数据开发脚本标准化检查方法及系统 Download PDF

Info

Publication number
CN117251477B
CN117251477B CN202311532710.4A CN202311532710A CN117251477B CN 117251477 B CN117251477 B CN 117251477B CN 202311532710 A CN202311532710 A CN 202311532710A CN 117251477 B CN117251477 B CN 117251477B
Authority
CN
China
Prior art keywords
node
statement
sql
script
performance optimization
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202311532710.4A
Other languages
English (en)
Other versions
CN117251477A (zh
Inventor
包洪强
孙艳勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jibeike Century Information Technology Co ltd
Global Business Intelligence Consulting Co
Original Assignee
Beijing Jibeike Century Information Technology Co ltd
Global Business Intelligence Consulting Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jibeike Century Information Technology Co ltd, Global Business Intelligence Consulting Co filed Critical Beijing Jibeike Century Information Technology Co ltd
Priority to CN202311532710.4A priority Critical patent/CN117251477B/zh
Publication of CN117251477A publication Critical patent/CN117251477A/zh
Application granted granted Critical
Publication of CN117251477B publication Critical patent/CN117251477B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2448Query languages for particular applications; for extensibility, e.g. user defined types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及数据库技术领域,公开了一种基于SQL解析的数据开发脚本标准化检查方法及系统,用于提高数据开发脚本标准化检查的准确率。方法包括:获取第一SQL脚本数据库中SQL查询语句的语句组成参数,并进行标准化规则定义,得到脚本标准化检查规则树;进行规则树遍历检查,得到规则树遍历节点列表以及目标检查执行数据;生成第一语句性能优化策略,并进行节点依赖关系分析和节点状态特征提取,得到节点状态特征矩阵;将节点状态特征矩阵输入语句性能优化策略分析模型进行语句性能优化分析,得到第二语句性能优化策略;进行查询语句安全性检查和脚本语句筛选,生成第二SQL脚本数据库。

Description

基于SQL解析的数据开发脚本标准化检查方法及系统
技术领域
本发明涉及数据库技术领域,尤其涉及一种基于SQL解析的数据开发脚本标准化检查方法及系统。
背景技术
随着数据驱动决策在各个领域的广泛应用,对数据库的数据开发脚本进行标准化检查成为保障数据质量和系统性能的关键步骤。在大型数据系统中,数据开发脚本的标准化不仅有助于确保数据的一致性和可理解性,还能提高查询性能、降低系统风险。
在数据库管理和数据开发领域,SQL作为数据查询和操作的主要语言,其脚本的质量和规范性对数据库性能和数据安全至关重要。然而,由于多人协作、业务需求的不断变化以及不同开发者水平的差异,数据开发脚本的质量往往难以维持。
发明内容
本发明提供了一种基于SQL解析的数据开发脚本标准化检查方法及系统,用于提高数据开发脚本标准化检查的准确率。
本发明第一方面提供了一种基于SQL解析的数据开发脚本标准化检查方法,所述基于SQL解析的数据开发脚本标准化检查方法包括:
获取第一SQL脚本数据库中SQL查询语句的语句组成参数,并根据所述语句组成参数对所述第一SQL脚本数据库进行标准化规则定义,得到脚本标准化检查规则树;
根据所述脚本标准化检查规则树对所述第一SQL脚本数据库中的SQL查询语句进行规则树遍历检查,得到规则树遍历节点列表以及目标检查执行数据,其中,所述规则树遍历节点列表包括:语法规范检查节点以及命名规范检查节点;
根据所述目标检查执行数据生成对应的第一语句性能优化策略,并对所述规则树遍历节点列表进行节点依赖关系分析和节点状态特征提取,得到所述语法规范检查节点的第一节点状态特征参数以及所述命名规范检查节点的第二节点状态特征参数;
对所述第一节点状态特征参数和所述第二节点状态特征参数进行状态特征映射和特征矩阵转换,得到节点状态特征矩阵;
将所述节点状态特征矩阵输入预置的语句性能优化策略分析模型进行语句性能优化分析,得到第二语句性能优化策略;
根据所述第二语句性能优化策略对所述第一SQL脚本数据库中SQL查询语句进行查询语句安全性检查,得到安全性检查结果,并根据所述安全性检查结果对所述第一SQL脚本数据库进行脚本语句筛选,生成第二SQL脚本数据库。
结合第一方面,在本发明第一方面的第一种实现方式中,所述获取第一SQL脚本数据库中SQL查询语句的语句组成参数,并根据所述语句组成参数对所述第一SQL脚本数据库进行标准化规则定义,得到脚本标准化检查规则树,包括:
通过预置的SQL解析器,对第一SQL脚本数据库进行SQL脚本解析,得到SQL查询语句;
对所述SQL查询语句进行参数解析,得到语句组成参数,所述语句组成参数包括:表名、字段名及操作符;
根据所述语句组成参数对所述第一SQL脚本数据库进行标准化规则定义,得到多个脚本标准化检查规则;
根据预置的检查逻辑创建所述多个脚本标准化检查规则对应的脚本标准化检查规则树。
结合第一方面,在本发明第一方面的第二种实现方式中,所述根据所述脚本标准化检查规则树对所述第一SQL脚本数据库中的SQL查询语句进行规则树遍历检查,得到规则树遍历节点列表以及目标检查执行数据,其中,所述规则树遍历节点列表包括:语法规范检查节点以及命名规范检查节点,包括:
对所述所述脚本标准化检查规则树进行规则树节点定义和列表创建,得到规则树遍历节点列表,所述规则树遍历节点列表包括:语法规范检查节点以及命名规范检查节点;
根据所述规则树遍历节点列表,对所述第一SQL脚本数据库中的SQL查询语句进行规则树遍历检查,并对所述SQL查询语句与预置规范参数进行比较,得到目标比较结果,并根据所述目标比较结果对所述SQL查询语句进行异常执行标记,得到多个初始异常执行数据;
对所述多个初始异常执行数据进行数据清洗,得到标准异常执行数据,并对所述标准异常执行数据进行数值映射,生成目标检查执行数据。
结合第一方面,在本发明第一方面的第三种实现方式中,所述根据所述目标检查执行数据生成对应的第一语句性能优化策略,并对所述规则树遍历节点列表进行节点依赖关系分析和节点状态特征提取,得到所述语法规范检查节点的第一节点状态特征参数以及所述命名规范检查节点的第二节点状态特征参数,包括:
根据所述目标检查执行数据构建所述SQL查询语句的目标覆盖矩阵,并将所述目标覆盖矩阵输入预置的XGBoost模型进行分类并计算重要特征排名,得到目标特征排名;
根据所述目标特征排名生成所述目标检查执行数据对应的第一语句性能优化策略,并对所述规则树遍历节点列表进行节点依赖关系分析,得到目标节点依赖关系;
根据所述目标节点依赖关系,对所述语法规范检查节点进行状态特征数据分析,得到第一状态特征数据,并对所述命名规范检查节点进行状态特征数据分析,得到第二状态特征数据;
分别对所述第一状态特征数据以及所述第二状态特征数据进行节点状态特征提取,得到所述语法规范检查节点的第一节点状态特征参数以及所述命名规范检查节点的第二节点状态特征参数。
结合第一方面,在本发明第一方面的第四种实现方式中,所述对所述第一节点状态特征参数和所述第二节点状态特征参数进行状态特征映射和特征矩阵转换,得到节点状态特征矩阵,包括:
获取多个节点状态特征标签,并根据所述多个节点状态特征标签确定所述第一节点状态特征参数的多个第一参数聚类中心,以及确定所述第二节点状态特征参数的多个第二参数聚类中心;
通过预置的第一聚类模型分别根据所述多个第一参数聚类中心对所述第一节点状态特征参数进行聚类分析,得到多个第一节点状态特征聚类结果;
通过预置的第二聚类模型分别根据所述多个第二参数聚类中心对所述第二节点状态特征参数进行聚类分析,得到多个第二节点状态特征聚类结果;
对所述多个第一节点状态特征聚类结果进行状态特征映射和向量编码,得到第一节点状态特征向量,并对所述多个第二节点状态特征聚类结果进行状态特征映射和向量编码,得到第二节点状态特征向量;
对所述第一节点状态特征向量和所述第二节点状态特征向量进行矩阵转换,得到节点状态特征矩阵。
结合第一方面,在本发明第一方面的第五种实现方式中,所述将所述节点状态特征矩阵输入预置的语句性能优化策略分析模型进行语句性能优化分析,得到第二语句性能优化策略,包括:
分别将每个耗能设备的目标融合特征输入预置的语句性能优化策略分析模型,其中,所述语句性能优化策略分析模型包括决策层和全局整合层,所述决策层包括多个决策树模型;
通过所述决策层中的多个决策树模型,分别对所述节点状态特征矩阵进行语句性能优化分析,得到每个决策树模型的初始语句性能优化策略;
通过所述全局整合层,对每个决策树模型的初始语句性能优化策略进行加权整合,生成第二语句性能优化策略。
结合第一方面,在本发明第一方面的第六种实现方式中,所述根据所述第二语句性能优化策略对所述第一SQL脚本数据库中SQL查询语句进行查询语句安全性检查,得到安全性检查结果,并根据所述安全性检查结果对所述第一SQL脚本数据库进行脚本语句筛选,生成第二SQL脚本数据库,包括:
根据所述第二语句性能优化策略对所述第一SQL脚本数据库中SQL查询语句进行查询语句安全性检查,得到安全性检查结果;
根据所述安全性检查结果,并通过所述语法规范检查节点以及所述命名规范检查节点对所述第一SQL脚本数据库进行脚本语句异常分析,得到所述语法规范检查节点的第一异常脚本语句以及所述命名规范检查节点的第二异常脚本语句;
对所述第一SQL脚本数据库中的第一异常脚本语句以及第二异常脚本语句进行脚本语句筛选,并将所述第一SQL脚本数据库切换至备份脚本语句,以及对所述第一SQL脚本数据库进行脚本语句更新,得到第二SQL脚本数据库。
本发明第二方面提供了一种基于SQL解析的数据开发脚本标准化检查系统,所述基于SQL解析的数据开发脚本标准化检查系统包括:
获取模块,用于获取第一SQL脚本数据库中SQL查询语句的语句组成参数,并根据所述语句组成参数对所述第一SQL脚本数据库进行标准化规则定义,得到脚本标准化检查规则树;
遍历模块,用于根据所述脚本标准化检查规则树对所述第一SQL脚本数据库中的SQL查询语句进行规则树遍历检查,得到规则树遍历节点列表以及目标检查执行数据,其中,所述规则树遍历节点列表包括:语法规范检查节点以及命名规范检查节点;
分析模块,用于根据所述目标检查执行数据生成对应的第一语句性能优化策略,并对所述规则树遍历节点列表进行节点依赖关系分析和节点状态特征提取,得到所述语法规范检查节点的第一节点状态特征参数以及所述命名规范检查节点的第二节点状态特征参数;
转换模块,用于对所述第一节点状态特征参数和所述第二节点状态特征参数进行状态特征映射和特征矩阵转换,得到节点状态特征矩阵;
优化模块,用于将所述节点状态特征矩阵输入预置的语句性能优化策略分析模型进行语句性能优化分析,得到第二语句性能优化策略;
生成模块,用于根据所述第二语句性能优化策略对所述第一SQL脚本数据库中SQL查询语句进行查询语句安全性检查,得到安全性检查结果,并根据所述安全性检查结果对所述第一SQL脚本数据库进行脚本语句筛选,生成第二SQL脚本数据库。
本发明第三方面提供了一种基于SQL解析的数据开发脚本标准化检查设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于SQL解析的数据开发脚本标准化检查设备执行上述的基于SQL解析的数据开发脚本标准化检查方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的基于SQL解析的数据开发脚本标准化检查方法。
本发明提供的技术方案中,获取第一SQL脚本数据库中SQL查询语句的语句组成参数,并进行标准化规则定义,得到脚本标准化检查规则树;进行规则树遍历检查,得到规则树遍历节点列表以及目标检查执行数据;生成第一语句性能优化策略,并进行节点依赖关系分析和节点状态特征提取,得到节点状态特征矩阵;将节点状态特征矩阵输入语句性能优化策略分析模型进行语句性能优化分析,得到第二语句性能优化策略;进行查询语句安全性检查和脚本语句筛选,生成第二SQL脚本数据库,本发明通过使用SQL解析器,能够自动提取SQL查询语句的语法和结构,避免了手动定义标准化规则的繁琐工作。这提高了标准化检查的准确性和效率。通过规则树遍历,对SQL查询语句进行了全面的规则检查,包括语法规范和命名规范。这确保了脚本的整体质量和一致性。通过分析目标检查执行数据,生成了针对每个查询语句的第一语句性能优化策略。这有助于提高查询语句的执行效率,减少潜在的性能问题。通过对规则树节点的依赖关系进行分析,揭示了规则之间的相互影响。这使得在修改规则时能更好地理解潜在的影响和依赖关系。通过提取语法规范检查节点和命名规范检查节点的状态特征参数,实现了对节点状态的深入了解。映射到特征矩阵有助于进一步的分析和处理。利用预置的语句性能优化分析模型,通过机器学习对节点状态特征矩阵进行分析,生成第二语句性能优化策略。这提高了性能优化的智能化水平。结合第二语句性能优化策略进行安全性检查,确保脚本的执行是安全的。通过异常情况的分析,能够筛选脚本语句,提高了脚本的安全性和可维护性,进而提高了数据开发脚本标准化检查的准确率。
附图说明
图1为本发明实施例中基于SQL解析的数据开发脚本标准化检查方法的一个实施例示意图;
图2为本发明实施例中规则树遍历检查的流程图;
图3为本发明实施例中节点依赖关系分析和节点状态特征提取的流程图;
图4为本发明实施例中状态特征映射和特征矩阵转换的流程图;
图5为本发明实施例中基于SQL解析的数据开发脚本标准化检查系统的一个实施例示意图;
图6为本发明实施例中基于SQL解析的数据开发脚本标准化检查设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种基于SQL解析的数据开发脚本标准化检查方法及系统,用于提高数据开发脚本标准化检查的准确率。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中基于SQL解析的数据开发脚本标准化检查方法的一个实施例包括:
S101、获取第一SQL脚本数据库中SQL查询语句的语句组成参数,并根据语句组成参数对第一SQL脚本数据库进行标准化规则定义,得到脚本标准化检查规则树;
可以理解的是,本发明的执行主体可以为基于SQL解析的数据开发脚本标准化检查系统,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
具体的,通过预置的SQL解析器,对第一SQL脚本数据库进行SQL脚本解析。SQL解析器的主要任务是将输入的SQL脚本分解成可识别的部分,以便进一步的处理和分析。这一步骤是方法的起点,它负责将第一SQL脚本数据库中的SQL查询语句提取出来,以便后续的参数解析和规则定义。对所述SQL查询语句进行参数解析,得到语句组成参数。语句组成参数包括表名、字段名及操作符等关键信息。参数解析的目的是从SQL查询语句中提取出关键的元素,以便后续的标准化规则定义。根据语句组成参数对所述第一SQL脚本数据库进行标准化规则定义。这一步骤涉及创建多个脚本标准化检查规则,这些规则可以帮助确保SQL脚本的一致性和合规性。规则可以包括约束条件、规范的命名约定以及性能优化建议等。规则的定义是根据提取的语句组成参数来进行的,以确保规则与特定的SQL查询语句相关联。得到多个脚本标准化检查规则。这些规则可以涵盖各种方面,例如检查SQL语句是否遵循公司的标准命名约定,是否包含安全漏洞,是否可以进行性能优化等。这些规则将在后续的检查过程中用于验证SQL脚本的合规性。根据预置的检查逻辑创建多个脚本标准化检查规则对应的脚本标准化检查规则树。脚本标准化检查规则树是一种层次结构,它将不同的规则组织在一起,以便逐一应用于SQL查询语句。树的结构有助于有效地管理和执行不同的检查规则。规则树的构建是基于规则之间的依赖关系和逻辑,以确保检查按照正确的顺序进行。
S102、根据脚本标准化检查规则树对第一SQL脚本数据库中的SQL查询语句进行规则树遍历检查,得到规则树遍历节点列表以及目标检查执行数据,其中,规则树遍历节点列表包括:语法规范检查节点以及命名规范检查节点;
具体的,系统根据脚本标准化检查规则树进行规则树节点定义和列表创建。规则树是包含多个检查规则的层次结构,每个规则定义了对SQL查询语句的一种检查要求。规则可以涵盖语法规范、命名规范、性能优化等不同方面。规则树节点的定义涉及规则的组织和结构,以便在遍历时能够有效地应用这些规则。基于规则树遍历节点列表,对第一SQL脚本数据库中的SQL查询语句进行规则树遍历检查。这是一个逐层检查的过程,从树的根节点开始,逐级检查每个节点的规则要求是否被满足。检查是根据SQL查询语句与规则参数的比较来进行的。如果SQL查询语句符合规则要求,那么目标比较结果将被标记为通过,否则将被标记为不通过。一旦完成规则树遍历检查,系统将获得多个初始异常执行数据,这些数据标明了哪些规则在检查中未被满足。这些初始异常执行数据需要进行数据清洗,以生成标准异常执行数据。数据清洗可以包括去除重复项、处理缺失数据、将数据标准化为特定格式等。清洗后的数据更容易分析和比较。对标准异常执行数据进行数值映射。将标准异常执行数据与事先定义的数值映射关系进行比对,以将异常情况映射到具体的数值。这有助于将异常情况量化,以便后续的分析和报告。
S103、根据目标检查执行数据生成对应的第一语句性能优化策略,并对规则树遍历节点列表进行节点依赖关系分析和节点状态特征提取,得到语法规范检查节点的第一节点状态特征参数以及命名规范检查节点的第二节点状态特征参数;
需要说明的是,根据目标检查执行数据,构建SQL查询语句的目标覆盖矩阵。目标覆盖矩阵是一个矩阵,其中每行代表一个SQL查询语句,每列代表一个性能优化目标。这些目标可以包括查询执行时间、资源消耗、查询计划等。目标覆盖矩阵将SQL查询语句与其性能目标相关联,为后续的分析和优化提供了数据基础。例如,假设有三个SQL查询语句,以及两个性能目标(执行时间和资源消耗),目标覆盖矩阵如下所示:
目标1(执行时间) 目标2(资源消耗)
查询1 10秒 100MB
查询2 5秒 50MB
查询3 15秒 150MB
将目标覆盖矩阵输入预置的XGBoost模型进行分类并计算重要特征排名。XGBoost是一种常用的机器学习算法,可以用于分类和特征排名。模型训练的目的是预测SQL查询语句的性能,基于已有的性能数据。重要特征排名将帮助确定哪些因素对性能最重要。例如,XGBoost模型训练后,可以得到如下特征排名:查询的复杂度、使用的索引数量、返回的数据量、查询中的连接操作。这些特征排名将帮助确定哪些因素对SQL查询性能影响最大。根据目标特征排名,生成目标检查执行数据对应的第一语句性能优化策略。性能优化策略是基于特征排名和模型预测的结果,为每个SQL查询语句提供性能优化建议。例如,如果特征排名显示查询的复杂度是最重要的因素,优化策略可以包括简化查询、添加索引或重写查询以提高性能。对规则树遍历节点列表进行节点依赖关系分析。节点依赖关系分析有助于理解不同规则之间的关联性。例如,某些规则依赖于其他规则的结果,或者某些规则可以并行应用。这些依赖关系将有助于更有效地应用规则并避免重复操作。同时,根据目标节点依赖关系,对语法规范检查节点进行状态特征数据分析,得到第一状态特征数据。这一步骤涉及确定语法规范检查节点的状态,例如是否已通过检查、未通过检查、或者是否需要进一步处理。这些状态将有助于识别需要性能优化的地方。对命名规范检查节点进行状态特征数据分析,得到第二状态特征数据。类似地,分析命名规范检查节点的状态将有助于识别需要改进的命名规范问题。最终,分别对第一状态特征数据和第二状态特征数据进行节点状态特征提取,以得到语法规范检查节点的第一节点状态特征参数和命名规范检查节点的第二节点状态特征参数。这些参数将用于指导性能优化策略的应用和规则树的更新。
S104、对第一节点状态特征参数和第二节点状态特征参数进行状态特征映射和特征矩阵转换,得到节点状态特征矩阵;
具体的,获取多个节点状态特征标签。节点状态特征标签是描述状态特征参数的符号标识或描述性标签。这些标签通常描述状态特征参数的不同方面,例如节点的通过状态、未通过状态或需要改进状态。例如,对于语法规范检查节点,有状态特征标签如下:"通过":SQL语句满足语法规范;"未通过":SQL语句不满足语法规范;"需要改进":SQL语句虽然通过了语法规范检查,但仍然有改进的空间。根据这些多个节点状态特征标签,确定第一节点状态特征参数的多个第一参数聚类中心,以及确定第二节点状态特征参数的多个第二参数聚类中心。聚类中心是在聚类分析中用于表示数据点群集的中心点。通过预置的第一聚类模型,根据多个第一参数聚类中心对第一节点状态特征参数进行聚类分析,得到多个第一节点状态特征聚类结果。聚类分析有助于将相似的状态特征参数分组到同一类别中。这些聚类结果表示了第一节点状态特征参数的不同聚类,每个聚类对应一个状态。例如,对于第一参数聚类中心,系统得到三个不同的第一节点状态特征聚类结果,每个聚类对应不同的状态特征标签。通过预置的第二聚类模型,根据多个第二参数聚类中心对第二节点状态特征参数进行聚类分析,得到多个第二节点状态特征聚类结果。这一过程与第一节点状态特征参数的聚类分析类似,但应用于第二节点状态特征参数,以得到不同的聚类结果。对于第二参数聚类中心,系统同样可以得到多个不同的第二节点状态特征聚类结果。对多个第一节点状态特征聚类结果进行状态特征映射和向量编码,以得到第一节点状态特征向量。状态特征映射将聚类结果映射为数值,使其成为向量形式的特征表示。同样,对多个第二节点状态特征聚类结果进行状态特征映射和向量编码,以得到第二节点状态特征向量。这将为第二节点的状态特征提供数值表示。对第一节点状态特征向量和第二节点状态特征向量进行矩阵转换,以得到节点状态特征矩阵。矩阵转换将节点状态特征向量组合成一个矩阵,其中每行代表一个节点,而每列代表不同的状态特征。这个矩阵可以用于后续的分析、比较和可视化。例如,假设有两个语法规范检查节点,每个节点具有三个状态特征标签,通过、未通过和需要改进。系统将这些状态特征标签映射为数值表示,然后组合成一个节点状态特征矩阵,如下所示:
节点 通过 未通过 需要改进
节点1 1 0 0
节点2 0 1 0
这个节点状态特征矩阵表示了每个节点的状态特征,有助于进一步的分析和比较。通过将状态特征参数转化为数值表示,可以更方便地对节点进行量化分析,以支持决策和改进。
S105、将节点状态特征矩阵输入预置的语句性能优化策略分析模型进行语句性能优化分析,得到第二语句性能优化策略;
具体的,节点状态特征矩阵是前一步骤中生成的矩阵,它包含了不同节点的状态特征的数值表示。这个矩阵用于描述SQL脚本中的不同节点的性能和合规性状态。分别将每个耗能设备的节点状态特征矩阵输入预置的语句性能优化策略分析模型。这个模型是用于分析SQL脚本的性能和合规性的工具,通常由决策层和全局整合层组成。决策层包括多个决策树模型,用于独立分析SQL脚本的不同方面。全局整合层负责将各个决策树模型的结果整合成最终的性能优化策略。例如,考虑一个SQL脚本,其中包含多个查询和操作,每个查询和操作都会影响性能和合规性。语句性能优化策略分析模型可以根据节点状态特征矩阵的输入来分析这些查询和操作,以确定如何优化性能和合规性。通过决策层中的多个决策树模型,分别对节点状态特征矩阵进行语句性能优化分析。每个决策树模型独立分析SQL脚本的不同方面,以便提供更详细的建议。例如,一个决策树模型关注性能问题,而另一个关注合规性问题。每个决策树模型的分析结果将包括初始语句性能优化策略。通过全局整合层,对每个决策树模型的初始语句性能优化策略进行加权整合。这一整合过程涉及将不同决策树模型的结果考虑在内,并根据其重要性对这些结果进行加权。这有助于生成更全面和综合的第二语句性能优化策略,以满足多方面的需求。例如,如果一个决策树模型的重要性较高,它的建议将更有影响力,因此在最终的性能优化策略中将占据更大的权重。全局整合层的目标是将不同决策树模型的建议汇总成一个整体性能优化策略,以提供综合性的指导。最终,生成第二语句性能优化策略。这个策略是根据多个决策树模型的加权整合结果得出的,它包括了针对SQL脚本的性能和合规性的综合性建议。第二语句性能优化策略可以涵盖性能优化建议、合规性改进建议和其他相关建议,以确保SQL脚本在性能和合规性方面都得到了充分考虑。例如,如果多个决策树模型的分析结果表明SQL脚本需要优化查询计划以提高性能,并且需要改进命名规范以满足合规性要求,第二语句性能优化策略将包括这两个建议,以支持开发团队的改进工作。
S106、根据第二语句性能优化策略对第一SQL脚本数据库中SQL查询语句进行查询语句安全性检查,得到安全性检查结果,并根据安全性检查结果对第一SQL脚本数据库进行脚本语句筛选,生成第二SQL脚本数据库。
具体的,根据第二语句性能优化策略对第一SQL脚本数据库中的SQL查询语句进行查询语句安全性检查。目的是确保SQL查询语句不会引发潜在的安全漏洞或风险。安全性检查可以包括检查SQL注入、权限问题、敏感数据访问等安全方面的问题。例如,如果第二语句性能优化策略建议通过使用参数化查询来提高安全性,那么安全性检查会验证SQL查询语句是否已经采用了参数化查询的方式。根据安全性检查结果,确定哪些SQL查询语句需要进一步的处理。通常,安全性检查将产生两种结果:通过的查询语句和需要改进的查询语句。通过的查询语句将被认为是安全的,而需要改进的查询语句需要进一步的修复或优化。根据安全性检查结果,并通过语法规范检查节点以及命名规范检查节点对第一SQL脚本数据库进行脚本语句异常分析。这一过程涉及分析那些未通过安全性检查的查询语句以及那些需要改进的查询语句。语法规范检查节点和命名规范检查节点是之前步骤中定义的规则树节点,它们用于检查SQL脚本的语法规范和命名规范。通过这些节点,可以识别不符合规范的脚本语句。例如,如果一个SQL查询语句不符合语法规范,它包含不当的语法结构,需要修复。另一方面,如果一个查询语句的字段命名不符合命名规范,也需要改进。对于语法规范检查节点的第一异常脚本语句以及命名规范检查节点的第二异常脚本语句,进一步的处理包括脚本语句筛选。在这一阶段,需要确定如何处理这些异常脚本语句。将第一SQL脚本数据库中的异常脚本语句切换至备份脚本语句,通常是一个经过验证的、符合规范的版本。这样可以确保脚本语句在安全性和规范性方面都得到满足。以及对第一SQL脚本数据库进行脚本语句更新。在这种情况下,异常脚本语句将被修复或优化,以满足安全性和规范性要求。这通常需要进行手动或自动修复,以确保脚本语句不再存在安全性或规范性问题。通过这个过程,可以确保生成的第二SQL脚本数据库包含安全且规范的SQL脚本,这将有助于减少潜在的安全风险,同时确保脚本在性能方面得到优化。这是一个综合的方法,可以提高SQL脚本的质量和安全性。
本发明实施例中,通过使用SQL解析器,能够自动提取SQL查询语句的语法和结构,避免了手动定义标准化规则的繁琐工作。这提高了标准化检查的准确性和效率。通过规则树遍历,对SQL查询语句进行了全面的规则检查,包括语法规范和命名规范。这确保了脚本的整体质量和一致性。通过分析目标检查执行数据,生成了针对每个查询语句的第一语句性能优化策略。这有助于提高查询语句的执行效率,减少潜在的性能问题。通过对规则树节点的依赖关系进行分析,揭示了规则之间的相互影响。这使得在修改规则时能更好地理解潜在的影响和依赖关系。通过提取语法规范检查节点和命名规范检查节点的状态特征参数,实现了对节点状态的深入了解。映射到特征矩阵有助于进一步的分析和处理。利用预置的语句性能优化分析模型,通过机器学习对节点状态特征矩阵进行分析,生成第二语句性能优化策略。这提高了性能优化的智能化水平。结合第二语句性能优化策略进行安全性检查,确保脚本的执行是安全的。通过异常情况的分析,能够筛选脚本语句,提高了脚本的安全性和可维护性,进而提高了数据开发脚本标准化检查的准确率。
在一具体实施例中,执行步骤S101的过程可以具体包括如下步骤:
(1)通过预置的SQL解析器,对第一SQL脚本数据库进行SQL脚本解析,得到SQL查询语句;
(2)对SQL查询语句进行参数解析,得到语句组成参数,语句组成参数包括:表名、字段名及操作符;
(3)根据语句组成参数对第一SQL脚本数据库进行标准化规则定义,得到多个脚本标准化检查规则;
(4)根据预置的检查逻辑创建多个脚本标准化检查规则对应的脚本标准化检查规则树。
具体的,通过预置的SQL解析器,对第一SQL脚本数据库进行SQL脚本解析。SQL解析器是一种工具,可以将SQL脚本分解成更小的组成部分,例如查询语句、表名、字段名和操作符。这个解析过程将SQL脚本转化为计算机可理解的结构。对SQL查询语句进行参数解析,得到语句组成参数。语句组成参数包括表名、字段名和操作符。这些参数是用于描述SQL脚本的重要组成部分,对于后续的规则定义和检查非常重要。根据语句组成参数,开始对第一SQL脚本数据库进行标准化规则定义。基于提供的参数,定义多个脚本标准化检查规则,这些规则将用于检查SQL脚本是否符合特定的标准、规范或最佳实践。例如,考虑一个标准化规则,要求所有SQL查询语句中的表名必须使用大写字母。基于这个规则,定义的标准化检查规则可以如下所示:规则名称:表名大小写规范;规则描述:检查SQL查询语句中的表名是否使用了大写字母;规则逻辑:如果表名包含小写字母,则认为不符合规范。通过预定义多个类似规则,可以确保SQL脚本的各个方面都得到了充分的标准化检查。根据预置的检查逻辑,创建多个脚本标准化检查规则对应的脚本标准化检查规则树。规则树是一个层次结构,其中包括多个规则节点,每个节点代表一个特定的标准化规则。规则树的结构有助于组织和执行规则检查。例如,可以创建一个规则树,包括多个规则节点,每个节点代表一个特定的标准化规则。这些节点可以按照优先级和依赖关系进行排列,以确保检查规则的有序执行。
在一具体实施例中,如图2所示,执行步骤S102的过程可以具体包括如下步骤:
S201、对脚本标准化检查规则树进行规则树节点定义和列表创建,得到规则树遍历节点列表,规则树遍历节点列表包括:语法规范检查节点以及命名规范检查节点;
S202、根据规则树遍历节点列表,对第一SQL脚本数据库中的SQL查询语句进行规则树遍历检查,并对SQL查询语句与预置规范参数进行比较,得到目标比较结果,并根据目标比较结果对SQL查询语句进行异常执行标记,得到多个初始异常执行数据;
S203、对多个初始异常执行数据进行数据清洗,得到标准异常执行数据,并对标准异常执行数据进行数值映射,生成目标检查执行数据。
具体的,对脚本标准化检查规则树进行规则树节点定义和列表创建。规则树是一个层次结构,其中包含多个规则节点,每个节点代表一个特定的检查规则。这些规则节点根据其性质进行分类,以便组织和执行规则检查。规则树遍历节点列表包括语法规范检查节点和命名规范检查节点。语法规范检查节点用于检查SQL查询语句的语法是否符合标准,而命名规范检查节点用于验证字段和表名的命名是否符合规范。根据规则树遍历节点列表,对第一SQL脚本数据库中的SQL查询语句进行规则树遍历检查。这个过程涉及逐个检查SQL查询语句是否符合每个规则节点定义的规范。对于每个规则节点,SQL查询语句将被与预置的规范参数进行比较。根据这些检查结果,可以对SQL查询语句进行异常执行标记,得到多个初始异常执行数据。例如,假设语法规范检查和命名规范检查都发现了异常,因此该SQL查询语句将被标记为异常。对多个初始异常执行数据进行数据清洗。数据清洗是一个处理异常数据的过程,它可以包括去除不必要的字符、修复语法错误或规范问题等。清洗后的数据将更易于后续处理。对清洗后的数据进行数值映射,生成目标检查执行数据。数值映射是将数据转化为数值表示的过程,以便进行进一步的分析和处理。例如,将异常数据映射为数值,其中1表示异常,0表示正常。这样,可以轻松地对数据进行分类和分析,以确定哪些SQL查询语句需要进一步处理,以符合规范和标准。
在一具体实施例中,如图3所示,执行步骤S103的过程可以具体包括如下步骤:
S301、根据目标检查执行数据构建SQL查询语句的目标覆盖矩阵,并将目标覆盖矩阵输入预置的XGBoost模型进行分类并计算重要特征排名,得到目标特征排名;
S302、根据目标特征排名生成目标检查执行数据对应的第一语句性能优化策略,并对规则树遍历节点列表进行节点依赖关系分析,得到目标节点依赖关系;
S303、根据目标节点依赖关系,对语法规范检查节点进行状态特征数据分析,得到第一状态特征数据,并对命名规范检查节点进行状态特征数据分析,得到第二状态特征数据;
S304、分别对第一状态特征数据以及第二状态特征数据进行节点状态特征提取,得到语法规范检查节点的第一节点状态特征参数以及命名规范检查节点的第二节点状态特征参数。
具体的,根据目标检查执行数据构建SQL查询语句的目标覆盖矩阵。目标覆盖矩阵是一个数据结构,用于表示每个SQL查询语句与特定目标的关系。这些目标可以是性能优化、规范化或其他指标。通过分析目标覆盖矩阵,可以确定每个SQL查询语句的性能和规范问题。将目标覆盖矩阵输入预置的XGBoost模型进行分类。XGBoost是一种机器学习算法,通常用于分类和回归问题。通过训练XGBoost模型,可以根据SQL查询语句的特征(包括性能优化和规范化得分)来预测其性能和规范问题。XGBoost模型将返回每个SQL查询语句的分类结果,例如,预测某个SQL查询语句是否需要性能优化或规范化。此外,XGBoost模型还能够计算每个特征的重要性,用于后续的特征排名。例如,XGBoost模型可以预测SQL1需要性能优化,SQL2需要规范化,SQL3在两个方面都表现得比较好。根据目标特征排名,生成目标检查执行数据对应的第一语句性能优化策略。特征排名可以帮助确定哪些因素对于SQL查询语句的性能和规范问题影响最大。基于这些排名,可以制定相应的性能优化策略,以改进SQL查询语句的性能和规范性。例如,如果特征排名表明表名大小写错误对性能问题有较大影响,那么性能优化策略包括修复表名大小写问题。此外,对规则树遍历节点列表进行节点依赖关系分析,以确定节点之间的依赖关系。这有助于理解哪些规则节点对于性能和规范问题的解决起着关键作用。例如,某些规则节点相互依赖,解决一个节点的问题会影响到其他节点。通过节点依赖关系的分析,可以更好地协调和管理规则的执行。根据目标节点依赖关系,对语法规范检查节点进行状态特征数据分析。状态特征数据包括每个规则节点的状态,例如是否已执行、是否通过、是否失败等。这有助于跟踪规则节点的执行情况。对于命名规范检查节点,也进行状态特征数据分析,以了解规则执行的结果和状态。分别对第一状态特征数据和第二状态特征数据进行节点状态特征提取,以得到语法规范检查节点的第一节点状态特征参数和命名规范检查节点的第二节点状态特征参数。这些节点状态特征参数包括节点的执行状态、执行结果、执行时间等信息。它们提供了有关规则节点执行情况的详细信息,可用于监测和改进规则执行的效率和质量。
在一具体实施例中,如图4所示,执行步骤S104的过程可以具体包括如下步骤:
S401、获取多个节点状态特征标签,并根据多个节点状态特征标签确定第一节点状态特征参数的多个第一参数聚类中心,以及确定第二节点状态特征参数的多个第二参数聚类中心;
S402、通过预置的第一聚类模型分别根据多个第一参数聚类中心对第一节点状态特征参数进行聚类分析,得到多个第一节点状态特征聚类结果;
S403、通过预置的第二聚类模型分别根据多个第二参数聚类中心对第二节点状态特征参数进行聚类分析,得到多个第二节点状态特征聚类结果;
S404、对多个第一节点状态特征聚类结果进行状态特征映射和向量编码,得到第一节点状态特征向量,并对多个第二节点状态特征聚类结果进行状态特征映射和向量编码,得到第二节点状态特征向量;
S405、对第一节点状态特征向量和第二节点状态特征向量进行矩阵转换,得到节点状态特征矩阵。
具体的,获取多个节点状态特征标签。节点状态特征标签是对每个规则节点执行状态的描述,它可以包括节点的名称、执行结果、执行时间等信息。这些标签是用于描述规则节点执行情况的关键元素。例如,对于一个语法规范检查节点,其节点状态特征标签包括:“节点名称:检查SELECT关键字是否存在”、“执行结果:通过”、“执行时间:10毫秒”。根据这些节点状态特征标签,确定第一节点状态特征参数的多个第一参数聚类中心,以及确定第二节点状态特征参数的多个第二参数聚类中心。聚类中心是用于将相似节点状态特征标签归类到不同类别的参考点。通过预置的第一聚类模型,分别根据多个第一参数聚类中心对第一节点状态特征参数进行聚类分析,得到多个第一节点状态特征聚类结果。聚类是一种数据分析方法,用于将数据点分组到相似的类别中,以便更好地理解数据的结构。例如,通过第一聚类模型,可以将具有相似执行结果和执行时间的节点状态特征标签归为同一类别,从而获得第一节点状态特征聚类结果,每个类别包含相似的节点状态特征参数。通过预置的第二聚类模型,同样根据多个第二参数聚类中心对第二节点状态特征参数进行聚类分析,得到多个第二节点状态特征聚类结果。这些聚类结果描述了节点状态特征参数的分布情况,有助于识别潜在的规则执行模式。对多个第一节点状态特征聚类结果进行状态特征映射和向量编码,以得到第一节点状态特征向量。状态特征映射是将节点状态特征聚类结果映射到一个数值空间的过程,以便进行后续的分析和处理。例如,对于第一节点状态特征聚类结果,可以将不同类别的节点状态特征参数映射为一个向量,其中每个维度表示一个特征。这将生成第一节点状态特征向量,用于描述规则节点执行情况。同样,对多个第二节点状态特征聚类结果进行状态特征映射和向量编码,以得到第二节点状态特征向量。这一向量描述了命名规范检查节点的执行情况,包括节点的执行结果和执行时间等信息。将第一节点状态特征向量和第二节点状态特征向量进行矩阵转换,以得到节点状态特征矩阵。节点状态特征矩阵是将不同节点的状态特征向量整合到一个矩阵中,以便进一步的分析和建模。
在一具体实施例中,执行步骤S105的过程可以具体包括如下步骤:
(1)分别将每个耗能设备的目标融合特征输入预置的语句性能优化策略分析模型,其中,语句性能优化策略分析模型包括决策层和全局整合层,决策层包括多个决策树模型;
(2)通过决策层中的多个决策树模型,分别对节点状态特征矩阵进行语句性能优化分析,得到每个决策树模型的初始语句性能优化策略;
(3)通过全局整合层,对每个决策树模型的初始语句性能优化策略进行加权整合,生成第二语句性能优化策略。
具体的,分别将每个耗能设备的目标融合特征输入预置的语句性能优化策略分析模型。这个模型通常由两个主要部分组成,即决策层和全局整合层。决策层包含多个决策树模型,用于根据不同特征进行决策。每个决策树模型针对不同方面的性能优化进行决策,例如查询优化、索引优化等。例如,假设有两个耗能设备,一个是数据库服务器,另一个是网络设备。每个设备有不同的性能指标,例如数据库服务器的CPU利用率、内存利用率,网络设备的带宽利用率等。这些指标将被融合到语句性能优化策略模型中。通过决策层中的多个决策树模型,对节点状态特征矩阵进行语句性能优化分析。每个决策树模型将使用不同的特征和规则来评估节点状态特征矩阵,并为每个节点状态生成初始语句性能优化策略。例如,对于数据库服务器的决策树模型,它使用CPU利用率和内存利用率等指标来评估节点状态特征矩阵,并为每个节点状态生成数据库查询性能优化策略。另一方面,网络设备的决策树模型使用带宽利用率等指标,并生成网络查询性能优化策略。通过全局整合层,对每个决策树模型的初始语句性能优化策略进行加权整合,生成第二语句性能优化策略。这一层的作用是将不同决策树模型的输出进行整合,以获得综合性能优化策略。例如,如果数据库服务器的性能优化策略与网络设备的性能优化策略都对同一SQL查询语句进行了建议,那么全局整合层可以根据它们的权重,整合这两个建议以生成综合的性能优化策略。这个综合策略将考虑不同设备的建议,以确保综合性能得到最佳优化。
在一具体实施例中,执行步骤S106的过程可以具体包括如下步骤:
(1)根据第二语句性能优化策略对第一SQL脚本数据库中SQL查询语句进行查询语句安全性检查,得到安全性检查结果;
(2)根据安全性检查结果,并通过语法规范检查节点以及命名规范检查节点对第一SQL脚本数据库进行脚本语句异常分析,得到语法规范检查节点的第一异常脚本语句以及命名规范检查节点的第二异常脚本语句;
(3)对第一SQL脚本数据库中的第一异常脚本语句以及第二异常脚本语句进行脚本语句筛选,并将第一SQL脚本数据库切换至备份脚本语句,以及对第一SQL脚本数据库进行脚本语句更新,得到第二SQL脚本数据库。
具体的,根据第二语句性能优化策略对第一SQL脚本数据库中的SQL查询语句进行查询语句安全性检查。目的是确保SQL查询语句不会导致安全漏洞或数据泄露。安全性检查通常包括检查SQL注入、权限控制、敏感信息保护等方面的问题。例如,假设第二语句性能优化策略建议优化一个SQL查询语句,但这个语句存在SQL注入风险。安全性检查将分析这个语句,识别潜在的注入漏洞,并生成安全性检查结果。根据安全性检查结果,以及通过语法规范检查节点和命名规范检查节点对第一SQL脚本数据库进行脚本语句异常分析。这一步骤旨在识别与安全性问题相关的异常脚本语句。语法规范检查节点通常用于检查SQL语句的语法正确性,而命名规范检查节点用于检查表和字段的命名是否符合规范。例如,如果安全性检查发现某个SQL查询语句存在注入风险,异常分析将识别这个语句作为第一异常脚本语句。另外,如果某个表或字段的命名不符合规范,命名规范检查节点会标记这些不规范的语句,将其作为第二异常脚本语句。对第一SQL脚本数据库中的第一异常脚本语句和第二异常脚本语句进行脚本语句筛选。这一步骤旨在处理异常脚本语句,确保它们不会进一步执行,从而保证安全性和规范性。例如,对于第一异常脚本语句,可以选择将其从脚本中移除或进行修复,以消除注入风险。对于第二异常脚本语句,可以要求开发人员重新命名表和字段,以符合规范。将第一SQL脚本数据库切换至备份脚本语句,以确保在异常脚本语句被处理之前不会对数据库产生影响。对第一SQL脚本数据库进行脚本语句更新,以得到第二SQL脚本数据库,其中已经移除了异常脚本语句和进行了修复。
上面对本发明实施例中基于SQL解析的数据开发脚本标准化检查方法进行了描述,下面对本发明实施例中基于SQL解析的数据开发脚本标准化检查系统进行描述,请参阅图5,本发明实施例中基于SQL解析的数据开发脚本标准化检查系统一个实施例包括:
获取模块501,用于获取第一SQL脚本数据库中SQL查询语句的语句组成参数,并根据所述语句组成参数对所述第一SQL脚本数据库进行标准化规则定义,得到脚本标准化检查规则树;
遍历模块502,用于根据所述脚本标准化检查规则树对所述第一SQL脚本数据库中的SQL查询语句进行规则树遍历检查,得到规则树遍历节点列表以及目标检查执行数据,其中,所述规则树遍历节点列表包括:语法规范检查节点以及命名规范检查节点;
分析模块503,用于根据所述目标检查执行数据生成对应的第一语句性能优化策略,并对所述规则树遍历节点列表进行节点依赖关系分析和节点状态特征提取,得到所述语法规范检查节点的第一节点状态特征参数以及所述命名规范检查节点的第二节点状态特征参数;
转换模块504,用于对所述第一节点状态特征参数和所述第二节点状态特征参数进行状态特征映射和特征矩阵转换,得到节点状态特征矩阵;
优化模块505,用于将所述节点状态特征矩阵输入预置的语句性能优化策略分析模型进行语句性能优化分析,得到第二语句性能优化策略;
生成模块506,用于根据所述第二语句性能优化策略对所述第一SQL脚本数据库中SQL查询语句进行查询语句安全性检查,得到安全性检查结果,并根据所述安全性检查结果对所述第一SQL脚本数据库进行脚本语句筛选,生成第二SQL脚本数据库。
通过上述各个组成部分的协同合作,通过使用SQL解析器,能够自动提取SQL查询语句的语法和结构,避免了手动定义标准化规则的繁琐工作。这提高了标准化检查的准确性和效率。通过规则树遍历,对SQL查询语句进行了全面的规则检查,包括语法规范和命名规范。这确保了脚本的整体质量和一致性。通过分析目标检查执行数据,生成了针对每个查询语句的第一语句性能优化策略。这有助于提高查询语句的执行效率,减少潜在的性能问题。通过对规则树节点的依赖关系进行分析,揭示了规则之间的相互影响。这使得在修改规则时能更好地理解潜在的影响和依赖关系。通过提取语法规范检查节点和命名规范检查节点的状态特征参数,实现了对节点状态的深入了解。映射到特征矩阵有助于进一步的分析和处理。利用预置的语句性能优化分析模型,通过机器学习对节点状态特征矩阵进行分析,生成第二语句性能优化策略。这提高了性能优化的智能化水平。结合第二语句性能优化策略进行安全性检查,确保脚本的执行是安全的。通过异常情况的分析,能够筛选脚本语句,提高了脚本的安全性和可维护性,进而提高了数据开发脚本标准化检查的准确率。
上面图5从模块化功能实体的角度对本发明实施例中的基于SQL解析的数据开发脚本标准化检查系统进行详细描述,下面从硬件处理的角度对本发明实施例中基于SQL解析的数据开发脚本标准化检查设备进行详细描述。
图6是本发明实施例提供的一种基于SQL解析的数据开发脚本标准化检查设备的结构示意图,该基于SQL解析的数据开发脚本标准化检查设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)610(例如,一个或一个以上处理器)和存储器620,一个或一个以上存储应用程序633或数据632的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器620和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对基于SQL解析的数据开发脚本标准化检查设备600中的一系列指令操作。更进一步地,处理器610可以设置为与存储介质630通信,在基于SQL解析的数据开发脚本标准化检查设备600上执行存储介质630中的一系列指令操作。
基于SQL解析的数据开发脚本标准化检查设备600还可以包括一个或一个以上电源640,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口660,和/或,一个或一个以上操作系统631,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图6示出的基于SQL解析的数据开发脚本标准化检查设备结构并不构成对基于SQL解析的数据开发脚本标准化检查设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种基于SQL解析的数据开发脚本标准化检查设备,所述基于SQL解析的数据开发脚本标准化检查设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述基于SQL解析的数据开发脚本标准化检查方法的步骤。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述基于SQL解析的数据开发脚本标准化检查方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种基于SQL解析的数据开发脚本标准化检查方法,其特征在于,所述基于SQL解析的数据开发脚本标准化检查方法包括:
获取第一SQL脚本数据库中SQL查询语句的语句组成参数,并根据所述语句组成参数对所述第一SQL脚本数据库进行标准化规则定义,得到脚本标准化检查规则树;
根据所述脚本标准化检查规则树对所述第一SQL脚本数据库中的SQL查询语句进行规则树遍历检查,得到规则树遍历节点列表以及目标检查执行数据,其中,所述规则树遍历节点列表包括:语法规范检查节点以及命名规范检查节点;
根据所述目标检查执行数据生成对应的第一语句性能优化策略,并对所述规则树遍历节点列表进行节点依赖关系分析和节点状态特征提取,得到所述语法规范检查节点的第一节点状态特征参数以及所述命名规范检查节点的第二节点状态特征参数;具体包括:根据所述目标检查执行数据构建所述SQL查询语句的目标覆盖矩阵,并将所述目标覆盖矩阵输入预置的XGBoost模型进行分类并计算重要特征排名,得到目标特征排名;根据所述目标特征排名生成所述目标检查执行数据对应的第一语句性能优化策略,并对所述规则树遍历节点列表进行节点依赖关系分析,得到目标节点依赖关系;根据所述目标节点依赖关系,对所述语法规范检查节点进行状态特征数据分析,得到第一状态特征数据,并对所述命名规范检查节点进行状态特征数据分析,得到第二状态特征数据;分别对所述第一状态特征数据以及所述第二状态特征数据进行节点状态特征提取,得到所述语法规范检查节点的第一节点状态特征参数以及所述命名规范检查节点的第二节点状态特征参数;
对所述第一节点状态特征参数和所述第二节点状态特征参数进行状态特征映射和特征矩阵转换,得到节点状态特征矩阵;
将所述节点状态特征矩阵输入预置的语句性能优化策略分析模型进行语句性能优化分析,得到第二语句性能优化策略;具体包括:分别将每个耗能设备的目标融合特征输入预置的语句性能优化策略分析模型,其中,所述语句性能优化策略分析模型包括决策层和全局整合层,所述决策层包括多个决策树模型;通过所述决策层中的多个决策树模型,分别对所述节点状态特征矩阵进行语句性能优化分析,得到每个决策树模型的初始语句性能优化策略;通过所述全局整合层,对每个决策树模型的初始语句性能优化策略进行加权整合,生成第二语句性能优化策略;
根据所述第二语句性能优化策略对所述第一SQL脚本数据库中SQL查询语句进行查询语句安全性检查,得到安全性检查结果,并根据所述安全性检查结果对所述第一SQL脚本数据库进行脚本语句筛选,生成第二SQL脚本数据库。
2.根据权利要求1所述的基于SQL解析的数据开发脚本标准化检查方法,其特征在于,所述获取第一SQL脚本数据库中SQL查询语句的语句组成参数,并根据所述语句组成参数对所述第一SQL脚本数据库进行标准化规则定义,得到脚本标准化检查规则树,包括:
通过预置的SQL解析器,对第一SQL脚本数据库进行SQL脚本解析,得到SQL查询语句;
对所述SQL查询语句进行参数解析,得到语句组成参数,所述语句组成参数包括:表名、字段名及操作符;
根据所述语句组成参数对所述第一SQL脚本数据库进行标准化规则定义,得到多个脚本标准化检查规则;
根据预置的检查逻辑创建所述多个脚本标准化检查规则对应的脚本标准化检查规则树。
3.根据权利要求1所述的基于SQL解析的数据开发脚本标准化检查方法,其特征在于,所述根据所述脚本标准化检查规则树对所述第一SQL脚本数据库中的SQL查询语句进行规则树遍历检查,得到规则树遍历节点列表以及目标检查执行数据,其中,所述规则树遍历节点列表包括:语法规范检查节点以及命名规范检查节点,包括:
对所述脚本标准化检查规则树进行规则树节点定义和列表创建,得到规则树遍历节点列表,所述规则树遍历节点列表包括:语法规范检查节点以及命名规范检查节点;
根据所述规则树遍历节点列表,对所述第一SQL脚本数据库中的SQL查询语句进行规则树遍历检查,并对所述SQL查询语句与预置规范参数进行比较,得到目标比较结果,并根据所述目标比较结果对所述SQL查询语句进行异常执行标记,得到多个初始异常执行数据;
对所述多个初始异常执行数据进行数据清洗,得到标准异常执行数据,并对所述标准异常执行数据进行数值映射,生成目标检查执行数据。
4.根据权利要求1所述的基于SQL解析的数据开发脚本标准化检查方法,其特征在于,所述对所述第一节点状态特征参数和所述第二节点状态特征参数进行状态特征映射和特征矩阵转换,得到节点状态特征矩阵,包括:
获取多个节点状态特征标签,并根据所述多个节点状态特征标签确定所述第一节点状态特征参数的多个第一参数聚类中心,以及确定所述第二节点状态特征参数的多个第二参数聚类中心;
通过预置的第一聚类模型分别根据所述多个第一参数聚类中心对所述第一节点状态特征参数进行聚类分析,得到多个第一节点状态特征聚类结果;
通过预置的第二聚类模型分别根据所述多个第二参数聚类中心对所述第二节点状态特征参数进行聚类分析,得到多个第二节点状态特征聚类结果;
对所述多个第一节点状态特征聚类结果进行状态特征映射和向量编码,得到第一节点状态特征向量,并对所述多个第二节点状态特征聚类结果进行状态特征映射和向量编码,得到第二节点状态特征向量;
对所述第一节点状态特征向量和所述第二节点状态特征向量进行矩阵转换,得到节点状态特征矩阵。
5.根据权利要求1所述的基于SQL解析的数据开发脚本标准化检查方法,其特征在于,所述根据所述第二语句性能优化策略对所述第一SQL脚本数据库中SQL查询语句进行查询语句安全性检查,得到安全性检查结果,并根据所述安全性检查结果对所述第一SQL脚本数据库进行脚本语句筛选,生成第二SQL脚本数据库,包括:
根据所述第二语句性能优化策略对所述第一SQL脚本数据库中SQL查询语句进行查询语句安全性检查,得到安全性检查结果;
根据所述安全性检查结果,并通过所述语法规范检查节点以及所述命名规范检查节点对所述第一SQL脚本数据库进行脚本语句异常分析,得到所述语法规范检查节点的第一异常脚本语句以及所述命名规范检查节点的第二异常脚本语句;
对所述第一SQL脚本数据库中的第一异常脚本语句以及第二异常脚本语句进行脚本语句筛选,并将所述第一SQL脚本数据库切换至备份脚本语句,以及对所述第一SQL脚本数据库进行脚本语句更新,得到第二SQL脚本数据库。
6.一种基于SQL解析的数据开发脚本标准化检查系统,其特征在于,所述基于SQL解析的数据开发脚本标准化检查系统包括:
获取模块,用于获取第一SQL脚本数据库中SQL查询语句的语句组成参数,并根据所述语句组成参数对所述第一SQL脚本数据库进行标准化规则定义,得到脚本标准化检查规则树;
遍历模块,用于根据所述脚本标准化检查规则树对所述第一SQL脚本数据库中的SQL查询语句进行规则树遍历检查,得到规则树遍历节点列表以及目标检查执行数据,其中,所述规则树遍历节点列表包括:语法规范检查节点以及命名规范检查节点;
分析模块,用于根据所述目标检查执行数据生成对应的第一语句性能优化策略,并对所述规则树遍历节点列表进行节点依赖关系分析和节点状态特征提取,得到所述语法规范检查节点的第一节点状态特征参数以及所述命名规范检查节点的第二节点状态特征参数;具体包括:根据所述目标检查执行数据构建所述SQL查询语句的目标覆盖矩阵,并将所述目标覆盖矩阵输入预置的XGBoost模型进行分类并计算重要特征排名,得到目标特征排名;根据所述目标特征排名生成所述目标检查执行数据对应的第一语句性能优化策略,并对所述规则树遍历节点列表进行节点依赖关系分析,得到目标节点依赖关系;根据所述目标节点依赖关系,对所述语法规范检查节点进行状态特征数据分析,得到第一状态特征数据,并对所述命名规范检查节点进行状态特征数据分析,得到第二状态特征数据;分别对所述第一状态特征数据以及所述第二状态特征数据进行节点状态特征提取,得到所述语法规范检查节点的第一节点状态特征参数以及所述命名规范检查节点的第二节点状态特征参数;
转换模块,用于对所述第一节点状态特征参数和所述第二节点状态特征参数进行状态特征映射和特征矩阵转换,得到节点状态特征矩阵;
优化模块,用于将所述节点状态特征矩阵输入预置的语句性能优化策略分析模型进行语句性能优化分析,得到第二语句性能优化策略;具体包括:分别将每个耗能设备的目标融合特征输入预置的语句性能优化策略分析模型,其中,所述语句性能优化策略分析模型包括决策层和全局整合层,所述决策层包括多个决策树模型;通过所述决策层中的多个决策树模型,分别对所述节点状态特征矩阵进行语句性能优化分析,得到每个决策树模型的初始语句性能优化策略;通过所述全局整合层,对每个决策树模型的初始语句性能优化策略进行加权整合,生成第二语句性能优化策略;
生成模块,用于根据所述第二语句性能优化策略对所述第一SQL脚本数据库中SQL查询语句进行查询语句安全性检查,得到安全性检查结果,并根据所述安全性检查结果对所述第一SQL脚本数据库进行脚本语句筛选,生成第二SQL脚本数据库。
7.一种基于SQL解析的数据开发脚本标准化检查设备,其特征在于,所述基于SQL解析的数据开发脚本标准化检查设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于SQL解析的数据开发脚本标准化检查设备执行如权利要求1-5中任一项所述的基于SQL解析的数据开发脚本标准化检查方法。
8.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-5中任一项所述的基于SQL解析的数据开发脚本标准化检查方法。
CN202311532710.4A 2023-11-17 2023-11-17 基于sql解析的数据开发脚本标准化检查方法及系统 Active CN117251477B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311532710.4A CN117251477B (zh) 2023-11-17 2023-11-17 基于sql解析的数据开发脚本标准化检查方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311532710.4A CN117251477B (zh) 2023-11-17 2023-11-17 基于sql解析的数据开发脚本标准化检查方法及系统

Publications (2)

Publication Number Publication Date
CN117251477A CN117251477A (zh) 2023-12-19
CN117251477B true CN117251477B (zh) 2024-02-20

Family

ID=89129812

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311532710.4A Active CN117251477B (zh) 2023-11-17 2023-11-17 基于sql解析的数据开发脚本标准化检查方法及系统

Country Status (1)

Country Link
CN (1) CN117251477B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114911820A (zh) * 2022-06-13 2022-08-16 国网智能电网研究院有限公司 一种sql语句判别模型构建方法、sql语句判别方法
CN114936369A (zh) * 2022-04-25 2022-08-23 中山大学 基于标记的sql注入攻击主动防御方法、系统及存储介质
CN116304231A (zh) * 2023-04-07 2023-06-23 平安科技(深圳)有限公司 基于语法解析树的查询语句生成方法和装置、设备、介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101093493B (zh) * 2006-06-23 2011-08-31 国际商业机器公司 数据库查询语言转换方法、转换装置
US11615081B2 (en) * 2019-12-03 2023-03-28 Embarcadero Technologies, Inc. Systems and methods for addressing errors in SQL statements

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114936369A (zh) * 2022-04-25 2022-08-23 中山大学 基于标记的sql注入攻击主动防御方法、系统及存储介质
CN114911820A (zh) * 2022-06-13 2022-08-16 国网智能电网研究院有限公司 一种sql语句判别模型构建方法、sql语句判别方法
CN116304231A (zh) * 2023-04-07 2023-06-23 平安科技(深圳)有限公司 基于语法解析树的查询语句生成方法和装置、设备、介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于内存的分布式列式数据库查询优化研究;姚建华;李祖华;;计算机产品与流通(第08期);全文 *

Also Published As

Publication number Publication date
CN117251477A (zh) 2023-12-19

Similar Documents

Publication Publication Date Title
Mansoor et al. Multi-objective code-smells detection using good and bad design examples
US7188091B2 (en) Rule processing system
US8694561B2 (en) System and method of optimizing performance of schema matching
CN107203468B (zh) 一种基于ast的软件版本演化对比分析方法
Lo et al. Active refinement of clone anomaly reports
CN111459799A (zh) 一种基于Github的软件缺陷检测模型建立、检测方法及系统
EP2795481A1 (en) Detecting cases with conflicting rules
US20200278862A1 (en) Computer Code Mapping and Visualization
Li et al. A scenario-based approach to predicting software defects using compressed C4. 5 model
CN105260300A (zh) 基于会计准则通用分类标准应用平台的业务测试方法
Mahdavi et al. Semi-Supervised Data Cleaning with Raha and Baran.
Batot et al. Heuristic-based recommendation for metamodel—ocl coevolution
CN112287603A (zh) 一种基于机器学习的预测模型构建方法、装置和电子设备
US11029928B2 (en) Computer code mapping and visualization
CN112784273A (zh) 一种sql风险识别方法、装置及设备
CN117251477B (zh) 基于sql解析的数据开发脚本标准化检查方法及系统
CN113127460B (zh) 数据清洗框架的评估方法及其装置、设备及存储介质
Rajbahadur et al. Pitfalls analyzer: quality control for model-driven data science pipelines
Corea et al. A taxonomy of business rule organizing approaches in regard to business process compliance
CN116541286A (zh) 一种基于插桩和符号执行的高覆盖率测试数据生成方法
Fouque et al. Compositional software reuse with case-based reasoning
Yusuf et al. An automatic approach to measure and visualize coupling in object-oriented programs
Newcomb et al. Requirements for advanced year 2000 maintenance tools
Li et al. How to manage a task-oriented virtual assistant software project: an experience report
KR102046571B1 (ko) 데이터 처리 룰 생성 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant