CN111522816B - 基于数据库引擎的数据处理方法、装置、终端及介质 - Google Patents

基于数据库引擎的数据处理方法、装置、终端及介质 Download PDF

Info

Publication number
CN111522816B
CN111522816B CN202010300027.8A CN202010300027A CN111522816B CN 111522816 B CN111522816 B CN 111522816B CN 202010300027 A CN202010300027 A CN 202010300027A CN 111522816 B CN111522816 B CN 111522816B
Authority
CN
China
Prior art keywords
execution plan
determining
query statement
database
syntax tree
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
CN202010300027.8A
Other languages
English (en)
Other versions
CN111522816A (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.)
Yunhe Enmo Beijing Information Technology Co ltd
Original Assignee
Yunhe Enmo Beijing Information Technology Co ltd
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 Yunhe Enmo Beijing Information Technology Co ltd filed Critical Yunhe Enmo Beijing Information Technology Co ltd
Priority to CN202010300027.8A priority Critical patent/CN111522816B/zh
Publication of CN111522816A publication Critical patent/CN111522816A/zh
Application granted granted Critical
Publication of CN111522816B publication Critical patent/CN111522816B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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
    • 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/2457Query processing with adaptation to user needs
    • G06F16/24573Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata

Abstract

本申请公开了一种基于数据库引擎的数据处理方法、装置、终端及介质。其中方法包括:确定查询语句以及编辑查询语句所依据的语法规则;依据语法规则对查询语句进行解析,得到抽象语法树;基于预配置的目标数据库,确定抽象语法树的对应的至少一个元数据;确定查询语句的执行计划;依据抽象语法树对应的至少一个元数据和执行计划,对查询语句进行优化分析处理,以实现对目标数据库进行优化分析处理。本申请实现了对SQL语句的质量的自动化监控目的,降低了对SQL语句的质量分析成本,起到了通过对SQL语句的质量分析,达到对目标数据库进行优化的目的,避免了因数据库的不良设计,导致数据库对应用程序的响应缓慢情况的发生。

Description

基于数据库引擎的数据处理方法、装置、终端及介质
技术领域
本申请涉及计算机技术领域,具体涉及一种基于数据库引擎的数据处理方法、装置、终端及介质。
背景技术
结构化查询语言(Structured Query Language,简称SQL)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
目前的Oracle、MySQL、DB2、SQL Server等数据库缺乏有效的审核管理和流程规范,这就使得数据库中存在的不良SQL、不良表等不良设计。因此,数据库中的不良设计并不能在测试、开发过程中得到及时解决,这就造成应用被发布上线以后,爆发各种性能问题和安全问题。
为了解决上述问题,一般通过人工阅读SQL,理解其含义,再进行质量控制。这种方式存在效率低、成本高的问题;同时,对于动辄数万、数十万条SQL的系统来说,通过人工对SQL质量进行控制几乎是不可能完成的任务。
发明内容
为了解决上述至少一个技术问题,本申请提供一种基于数据库引擎的数据处理方法、装置、终端及介质。
根据本申请的第一方面,提供了一种基于数据库引擎的数据处理方法,该方法,包括:
确定查询语句以及编辑查询语句所依据的语法规则;
依据语法规则对查询语句进行解析,得到抽象语法树;
基于预配置的目标数据库,确定抽象语法树的对应的至少一个元数据;
确定查询语句的执行计划;
依据抽象语法树对应的至少一个元数据和执行计划,对目标数据库进行优化分析处理。
根据本申请的第二方面,提供了一种基于数据库引擎的数据处理装置,该装置包括:
语句信息确定模块,用于确定查询语句以及编辑查询语句所依据的语法规则;
语法树转换模块,用于依据语法规则对查询语句进行解析,得到抽象语法树;
元数据确定模块,用于基于预配置的目标数据库,确定抽象语法树对应的至少一个元数据;
执行计划确定模块,用于确定查询语句的执行计划;
数据库优化分析模块,用于依据抽象语法树对应的至少一个元数据和执行计划,对目标数据库进行优化分析处理。
根据本申请的第三方面,提供了一种终端,该终端包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时以实现上述基于数据库引擎的数据处理方法。
根据本申请的第四方面,提供了一种计算机可读存储介质,该介质存储有计算机可执行指令,该计算机可执行指令用于以执行上述基于数据库引擎的数据处理方法。
本申请通过确定编辑查询语句所依据的语法规则,提供了将查询语句解析为抽象语法树的语法基础和词法基础,实现了去除查询语句中多余成分的目的,从而在目标数据库进行精确查找,确定抽象语法树对应的至少一个元数据,并在确定查询语句的执行计划后,依据抽象语法树对应的至少一个元数据和执行计划,对目标数据库进行优化分析处理,实现了对SQL语句的质量的自动化监控目的,降低了对SQL语句的质量分析成本,起到了通过对SQL语句的质量分析,达到对目标数据库进行优化的目的;同时,避免了因目标数据库的不良设计,导致的应用目标数据库的应用程序的性能和安全问题的发生。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种基于数据库引擎的数据处理方法的流程示意图;
图2为本申请实施例提供的一种基于数据库引擎的数据处理方法中对目标数据库进行优化分析处理的流程示意图;
图3为本申请实施例提供的一种基于数据库引擎的数据处理方法的应用系统的结构示意图;
图4为本申请实施例提供的一种基于数据库引擎的数据处理方法的应用系统中一个实施例中抽象语法树的示意图;
图5为本申请实施例提供的一种基于数据库引擎的数据处理方法的应用系统中查看推荐优化建议信息一个实施例中示意图;
图6为本申请实施例提供的一种基于数据库引擎的数据处理方法的应用系统中查看执行计划一个实施例中示意图;以及
图7为根据本申请实施例提供的一种基于数据库引擎的数据处理装置的框图结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。
首先对本申请涉及的几个名词进行介绍和解释:
在本申请实施例中,数据库引擎是一种对数据库进行操作的管理工具,主要提供存储、处理和保护数据的核心服务,利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。
在本申请实施例中,执行计划(execution plan,也叫查询计划或者解释计划)是数据库执行SQL语句的具体步骤。例如,通过索引还是全表扫描访问表中的数据等。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
根据本申请的一个实施例,提供了一种基于数据库引擎的数据处理方法,如图1所示,该方法包括步骤S101至步骤S105。
步骤S101:确定查询语句以及编辑查询语句所依据的语法规则。
具体地,终端通过数据库引擎确定待分析的查询语句以及编辑查询语句所依据的语法规则。更具体地,终端可以为手机、平板、PC机等电子设备。
在本申请实施例中,数据库引擎支持Oracle、MySQL、DB2、SQL Server等数据库语法规则。具体地,数据库引擎可以通过预配置的交互界面来提供多种数据库语法规则的选择控件,从而在检测到用户的选择操作时,依据用户的选择操作,来确定编辑查询语句所依据的语法规则。
具体地,可以在将数据库引擎配置至终端本地时,确定用户选定的该数据库引擎所支持的数据库语法规则。例如,当向应用程序提供数据支持的数据库为Oracle数据库时,将数据库引擎配置为提供Oracle数据库语法规则,那么该数据库引擎获取到的查询语句为符合Oracle数据库语法规则的查询语句。
具体地,若数据库引擎应用在测试或开发过程中,数据库引擎检测到的是研发用户输入的SQL语句。
具体地,查询语句可以是应用程序上线后,被确定为响应比较为缓慢的语句,即数据库引擎检测到的是运维用户输入的SQL语句。
步骤S102:依据语法规则对查询语句进行解析,得到抽象语法树。
在本申请实施例中,抽象语法树(abstract syntax code,简称AST)是查询语句的抽象语法结构的树状表示,树上的每个节点都表示查询语句的一种结构。由于抽象语法树并不包括查询语句中包括空格等在内的多余成分,因此,方便了对查询语句的分析。
具体地,不同的语法规则对应不同的词法分析和语法分析,因此解析抽象语法树所采用的方法不同。
步骤S103:基于预配置的目标数据库,确定抽象语法树对应的至少一个元数据。
具体地,目标数据库既可以是测试或开发阶段的数据库,也可以为向已上线的应用程序提供数据支持的数据库。
具体地,目标数据库中存储的元数据一般为表,表中包括多个数据字段。例如,身份证信息表中包括姓名、身份证号、手机号、家庭住址等字段。
步骤S104:确定查询语句的执行计划。
具体地,执行计划既可以在数据库引擎的预先生成的多个执行计划中进行查询获得,也可以在需要执行该步骤时进行获取。
例如,数据库引擎在执行步骤S101之前,数据库引擎中已预生成有多个执行计划,因此执行步骤S104时,直接从预生成的多个执行计划中调取与该查询语句对应的执行计划即可,起到缩短了执行计划的获取时间的效果。
步骤S105:依据抽象语法树对应的至少一个元数据和执行计划,对目标数据库进行优化分析处理。
在本申请实施例中,通过抽象语法树对应的至少一个元数据和执行计划,对目标数据库进行优化分析处理,从而确定目标数据库以及构建目标数据库的SQL语句的设计是否合理。例如,表中的数据字段是否需要建立索引、不同表的依赖关系等。
本申请实施例,通过确定编辑查询语句所依据的语法规则,提供了将查询语句解析为抽象语法树的语法和词法基础,实现了去除查询语句中多余成分的目的,从而在目标数据库进行精确查找,确定抽象语法树对应的至少一个元数据,并在确定查询语句的执行计划后,依据抽象语法树对应的至少一个元数据和执行计划,对目标数据库进行优化分析处理,实现了对SQL语句的质量的自动化监控目的,降低了对SQL语句的质量分析成本,起到了通过对SQL语句的质量分析,达到对目标数据库进行优化的目的;同时,避免了因目标数据库的不良设计,导致的应用目标数据库的应用程序的性能和安全问题的发生。
在一些实施中,如图1所示,步骤S104进一步包括:步骤S1041、步骤S1042和步骤S1043(图中未示出),其中,
步骤S1041:确定查询语句的哈希值;
步骤S1042:将查询语句的哈希值在在预生成的执行计划表中进行匹配,其中,执行计划表包括预生成的多个执行计划各自对应的哈希值;
步骤S1043:若执行计划表中包括与查询语句的哈希值匹配的执行计划,则将匹配成功的执行计划确定为查询语句的执行计划。
具体地,可以在对查询语句预处理后,进行加密处理,得到对应的数组。例如,在SQL语句末端加上'\0'字符,做MD5,这样,能够返回长度为16的byte数组,每个byte相当于256进制(即两个16进制)。假设,SQL依据为“select*from tab”,处理后返回ab d4db b3 096b 15 f1 eb ba 0c 78 61 4e a8 8b。转换时,应用返回结果中最后4位,即61 4e a8 8b,对返回结果中最后4位进行计算:8b*256*256*256+a8*256*256+4e*256+61,从而得到SQL语句的哈希值。
例如,假设SQL语句为:
SELECT*FORM CUSTOMER
WHERE
IDCARDNO='320113198001003226',计算出的SQL语句的哈希值为:6jxdt5dzk1vmy。
在本申请实施例中,数据库引擎通过执行计划表提供了不同查询语句各自对应的哈希值,从而起到了通过哈希值缩短确定查询语句的执行计划的时间效果,简化了执行计划的确定步骤。
具体地,执行计划表中一个哈希值可能对应一个执行计划,也可能对应多个执行计划。例如,若查询语句表示的含义为:在学生成绩表中查询张三的成绩,那么执行计划可以有两种,一种是根据学号在学生成绩表中查询,另一种是对学生成绩表进行逐行遍历,直至筛选到张三的成绩。
在一些实施例中,步骤S104进一步包括:
步骤S1044(图中未示出):若执行计划表中不包括与查询语句的哈希值匹配的执行计划,则依据语句规则对应的执行计划获取关键词,确定查询语句的执行计划。
具体地,不同的数据库的语法规则对应不同的执行计划获取关键词。
具体地,可以通过可视化界面来显示数据库引擎提供的不同语法规则各自对应的执行计划获取关键词;还可以通过查询命令来查看不同语法规则各自对应的执行计划获取关键词。
例如,数据库引擎提供的不同语法规则各自对应的执行计划获取关键词,可以如表1所示。
表1
Figure BDA0002453645070000071
例如,在MySQL语句的前面加上EXPLAIN关键字即可查询到MySQL语句的执行计划。
在一些实施例中,如图2所示,步骤S105进一步包括:步骤S1051、步骤S1052和步骤S1053(图中未示出),其中,
步骤S1051:构建抽象语法树对应的至少一个元数据与抽象语法树的关联关系,得到增强语法树;
步骤S1052:将增强语法树和执行计划作为待优化分析对象;
步骤S1053:依据优化建议数据库,确定待优化分析对象的推荐优化建议信息,其中,优化建议数据库包括多个已优化分析对象分别对应的推荐优化建议信息。
具体地,推荐优化建议信息一般包括对目标数据库中元数据进行修改的建议。例如,为目标数据库中某个表的某个字段建立索引。
具体地,可以通过建立映射关系来将增强语法树和执行计划关联至一起,从而通过映射关系来确定待优化分析对象。
在一些实施例中,步骤S1053进一步包括:
确定预创建的神经网络模型;
依据优化建议数据库对神经网络模型进行训练,得到分析模型;
将待优化分析对象输入至分析模型,得到待优化分析对象对应的推荐优化建议信息。
具体地,神经网络模块可以为BP神经网络模型。
具体地,可以将优化建议数据库中一部分数据作为训练数据,另一部分作为验证数据,从而完成对神经网路模型的训练,得到分析模型。更具体地,优化建议数据库包括的数据量越多,分析模型进行分析的精确度越高。
在一些实施例中,步骤S103进一步包括:步骤S1031和步骤S1032(图中未示出),其中,
步骤S1031:确定抽象语法树对应的至少一个元数据的应用场景;
步骤S1032:若抽象语法树对应的至少一个元数据的应用场景为经常性应用场景,则从本地缓存中读取抽象语法树对应的至少一个元数据。
具体地,可以为目标数据库中元数据增加场景标签,不同的场景标签标准器应用场景类型。更具体地,数据库引擎一般将经常性应用场景的元数据存储在缓存中,非经常性应用场景的元数据存储在本地内存中。
例如,目标数据库中用户身份信息表经常被用于查询手机缴费业务、身份证查询业务、家庭住址变等业务场景调用,因此,可以将用户身份信息表的应用场景设置为经常性应用场景,并进行缓存,以在应用过程中,能够直接从缓存中进行调取。
本申请实施例通过判断元数据的应用场景的类型,来确定元数据的存储位置,从而实现加快对元数据读取速度的目的,起到了对查询语句进行快速分析的效果。
在一些实施例中,步骤S102进一步包括:步骤S1021、步骤S1022和步骤S1023(图中未示出),其中,
步骤S1021:确定语法规则对应的词法解析器和语法解析器;
步骤S1022:依据词法分析器,将查询语句解析为一维数组;
步骤S1023:依据语法分析器,将一维数组进行树形转换处理,得到抽象语法树。
具体地,词法分析器读取查询语句的代码,然后把它们按照预定的规则合并成一个个的标识tokens;同时,词法分析器会移除空白符、注释等。最后,整个查询语句的代码将被分割进一个tokens列表,即一维数组。
具体地,语法解析器将词法解析器解析出来的数组转换成树形的形式,同时,验证语法。语法解析器验证语法有错时,抛出语法错误。
本申请实施例通过词法分析和语法分析两个步骤,将待分析的查询语句转换为了抽象语法树,从而去除了查询语句中的类似空格的多余成分,从而依据抽象语法树快速在目标数据库中进行查询,得到抽象语法树对应的至少一个元数据。
为了进一步说明本申请提供的基于数据库引擎的数据处理方法,下面结合图3所示的一种基于数据库引擎的数据处理方法的应用系统为例进行说明。
本申请实施例提供的应用系统包括终端100和数据库300。其中,终端100上运行有数据库引擎,数据库300中包括表customer,即用户身份证信息表,用户身份证信息表中包括10万条用户信息,每条用户信息包括姓名、身份证号、手机号、家庭住址几个字段。
应用时,终端100的用户200可以为对数据库300进行管理的研发用户,也可以为已上线应用程序的运维用户。具体地,终端100获取到的SQL语句既可以是用户200手动输入至数据库引擎的,也可以是依据指定格式的文件导入至通过数据库引擎的。
假设,终端100接收到用户200输入的SQL语句为:select*from customer whereidcardno='320113198001003226',数据库引擎对该SQL语句进行解析,转换得到如图4所示的抽象语法树AST。
终端100在数据库300中查询该SQL语句的元数据,并将查询到的元数据与图4所示的抽象语法树进行关联处理,得到增强语法树;同时,数据库引擎确定该SQL语句的哈希值,将该SQL语句的哈希值在预生成的执行计划表中进行查询,若查询到与该SQL语句的哈希值匹配的执行计划,则直接作为该SQL语句的执行计划;若未查询到与该SQL语句的哈希值匹配的执行计划,则直接在该SQL语句之前添加执行计划获取关键词,从而确定该SQL语句的执行计划。将增强语法树和该SQL语句的执行计划作为待优化分析对象,并利用优化建议数据库对该SQL语句的执行计划进行分析,确定推荐优化建议信息。应用时,可以通过预设的交互界面来对用户输入的SQL语句以及对SQL语句的分析结果进行显示。具体地,该交换界面可以提供标签分别为SQL语句、风险点、执行计划的几个控件。
其中,标签为SQL语句的控件用于对用户输入的SQL语句进行管理,通过对该控件的操作,可以查看到用户输入的全部SQL语句。标签为风险点的控件用于对用户输入的SQL语句进行分析的结果,即,用户输入的SQL语句存在的问题,以及相应的建议(即推荐优化建议信息)。如图5所示,检测到用户对风险点控件的操作时,在图5所示的交互界面中,显示用户输入的SQL语句存在的问题,并在检测到用户对图5所示的交互界面中查看控件的单击操作时,显示推荐优化建议信息。假设,根据图5中的第二个风险点提示(即执行计划存在全表扫描)给出的建议进行的优化处理为,采用如下语句建立索引:
CREATE INDEX idx_customer;
_idcardno ON;
CUSTOMER(IDCARDNO)。
按照上述语句建立索引后,该SQL语句的风险点减少,起到通过优化SQL语句来优化数据库的效果,防止因SQL语句设计不合理,导致的数据库响应速度慢的问题。
标签为执行计划的控件用于查看用户输入的SQL语句的执行计划,具体可以参照图6所示的执行计划。
本申请的又一实施例提供了一种基于数据库引擎的数据处理装置,如图7所示,该装置70包括:语句信息确定模块701、语法树转换模块702、元数据确定模块703、执行计划确定模块704以及数据库优化分析模块705。
语句信息确定模块701,用于确定查询语句以及编辑查询语句所依据的语法规则;
语法树转换模块702,用于依据语法规则对查询语句进行解析,得到抽象语法树;
元数据确定模块703,用于基于预配置的目标数据库,确定抽象语法树对应的至少一个元数据;
执行计划确定模块704,用于确定查询语句的执行计划;
数据库优化分析模块705,用于依据抽象语法树对应的至少一个元数据和执行计划,对目标数据库进行优化分析处理。
本申请实施例,通过确定编辑查询语句所依据的语法规则,提供了将查询语句解析为抽象语法树的语法基础和词法基础,实现了去除查询语句中多余成分的目的,从而在目标数据库进行精确查找,确定抽象语法树对应的至少一个元数据,并在确定查询语句的执行计划后,依据抽象语法树对应的至少一个元数据和执行计划,对目标数据库进行优化分析处理,实现了对SQL语句的质量的自动化监控目的,降低了对SQL语句的质量分析成本,起到了通过对SQL语句的质量分析,达到对目标数据库进行优化的目的;同时,避免了因目标数据库的不良设计,导致的应用目标数据库的应用程序的性能和安全问题的发生。
进一步地,执行计划确定模块704包括:标识确定子模块、标识匹配子模块、第一执行计划确定子模块(图中未示出)。
标识确定子模块,用于确定查询语句的哈希值;
标识匹配子模块,用于将查询语句的哈希值在在预生成的执行计划表中进行匹配,其中,执行计划表包括预生成的多个执行计划各自对应的哈希值;
第一执行计划确定子模块,用于若执行计划表中包括与查询语句的哈希值的哈希值匹配的执行计划,则将匹配成功的执行计划确定为查询语句的执行计划。
进一步地,执行计划确定模块704包括:
第二执行计划确定子模块(图中未示出),用于若执行计划表中不包括与查询语句的哈希值匹配的执行计划,则依据语句规则对应的执行计划获取关键词,确定查询语句的执行计划。
进一步地,数据库优化分析模块705包括:增强树确定子模块、关联关系确定子模块和优化建议确定子模块(图中未示出)。
增强树确定子模块,用于构建抽象语法树对应的至少一个元数据与抽象语法树的关联关系,得到增强语法树;
关联关系确定子模块,用于将增强语法树和执行计划作为待优化分析对象;
优化建议确定子模块,用于依据优化建议数据库,确定待优化分析对象对应的推荐优化建议信息,其中,优化建议数据库包括多个已优化分析对象分别对应的推荐优化建议信息。
进一步地,优化建议确定子模块包括:神经模型确定单元、分析模型确定单元和优化建议确定单元(图中未示出)。
神经模型确定单元,用于确定预创建的神经网络模型;
分析模型确定单元,用于依据优化建议数据库对神经网络模型进行训练,得到分析模型;
优化建议确定单元,用于将待优化分析对象输入至分析模型,得到待优化分析对象对应的推荐优化建议信息。
进一步地,元数据确定模块703包括:应用场景确定子模块和元数据读取子模块(图中未示出)。
应用场景确定子模块,用于确定抽象语法树对应的至少一个元数据的应用场景;
元数据读取子模块,用于若抽象语法树对应的至少一个元数据的应用场景为经常性应用场景,则从本地缓存中读取抽象语法树对应的至少一个元数据。
进一步地,语法树转换模块702包括:解析器确定子模块、词法解析子模块和语法解析子模块(图中未示出)。
解析器确定子模块,用于确定语法规则对应的词法解析器和语法解析器;
词法解析子模块,用于依据词法分析器,将查询语句解析为一维数组;
语法解析子模块,用于依据语法分析器,将一维数组进行树形转换处理,得到抽象语法树。
本实施例的基于数据库引擎的数据处理装置可执行本申请实施例提供的基于数据库引擎的数据处理方法,其实现原理相类似,此处不再赘述。
本申请又一实施例提供了一种终端,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时以实现上述基于数据库引擎的数据处理方法。
具体地,处理器可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
具体地,处理器通过总线与存储器连接,总线可包括一通路,以用于传送信息。总线可以是PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。
存储器可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器用于存储执行本申请方案的计算机程序的代码,并由处理器来控制执行。处理器用于执行存储器中存储的应用程序代码,以实现图7所示实施例提供的基于数据库引擎的数据处理装置的动作。
本申请又一实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,该计算机可执行指令用于执行上述图1或图2所示的基于数据库引擎的数据处理方法。
以上所描述的装置实施例仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上是对本申请的较佳实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (8)

1.一种基于数据库引擎的数据处理方法,其特征在于,包括:
确定查询语句以及编辑所述查询语句所依据的语法规则;通过预配置的交互界面来提供多种数据库语法规则的选择控件,并在检测到用户的选择操作时,依据用户的选择操作,来确定编辑查询语句所依据的语法规则;
依据所述语法规则对所述查询语句进行解析,得到抽象语法树;
基于预配置的目标数据库,确定所述抽象语法树对应的至少一个元数据;
确定所述查询语句的执行计划;
依据所述抽象语法树对应的至少一个元数据和所述执行计划,对所述目标数据库进行优化分析处理;
所述确定所述查询语句的执行计划的步骤,包括:
确定所述查询语句的哈希值;
将所述查询语句的所述哈希值在在预生成的执行计划表中进行匹配,其中,所述执行计划表包括预生成的多个执行计划各自对应的哈希值;
若所述执行计划表中包括与所述查询语句的所述哈希值匹配的执行计划,则将匹配成功的执行计划确定为所述查询语句的执行计划;
所述依据所述抽象语法树对应的至少一个元数据和所述执行计划,对所述目标数据库进行优化分析处理的步骤,包括:
构建所述抽象语法树对应的至少一个元数据与所述抽象语法树的关联关系,得到增强语法树;
将所述增强语法树和所述执行计划作为待优化分析对象;
依据优化建议数据库,确定所述待优化分析对象的推荐优化建议信息,其中,所述优化建议数据库包括多个已优化分析对象分别对应的推荐优化建议信息。
2.根据权利要求1所述的方法,其特征在于,所述确定所述查询语句的执行计划的步骤,进一步包括:
若所述执行计划表中不包括与所述查询语句的所述哈希值匹配的执行计划,则依据所述语法规则对应的执行计划获取关键词,确定所述查询语句的执行计划。
3.根据权利要求1所述的方法,其特征在于,所述依据优化建议数据库,确定所述待优化分析对象的推荐优化建议信息的步骤,包括:
确定预创建的神经网络模型;
依据所述优化建议数据库对所述神经网络模型进行训练,得到分析模型;
将所述待优化分析对象输入至所述分析模型,得到所述待优化分析对象对应的推荐优化建议信息。
4.根据权利要求1所述的方法,其特征在于,所述基于预配置的目标数据库,确定所述抽象语法树对应的至少一个元数据的步骤,包括:
确定所述抽象语法树对应的至少一个元数据的应用场景;
若所述抽象语法树对应的所述至少一个元数据的应用场景为经常性应用场景,则从本地缓存中读取所述抽象语法树对应的所述至少一个元数据。
5.根据权利要求1所述的方法,其特征在于,所述依据所述语法规则对所述查询语句进行解析,得到抽象语法树的步骤,包括:
确定所述语法规则对应的词法解析器和语法解析器;
依据所述词法解析器,将所述查询语句解析为一维数组;
依据所述语法解析器,将所述一维数组进行树形转换处理,得到所述抽象语法树。
6.一种基于数据库引擎的数据处理装置,其特征在于,包括:
语句信息确定模块,用于确定查询语句以及编辑所述查询语句所依据的语法规则;通过预配置的交互界面来提供多种数据库语法规则的选择控件,并在检测到用户的选择操作时,依据用户的选择操作,来确定编辑查询语句所依据的语法规则;
语法树转换模块,用于依据所述语法规则对所述查询语句进行解析,得到抽象语法树;
元数据确定模块,用于基于预配置的目标数据库,确定所述抽象语法树对应的至少一个元数据;
执行计划确定模块,用于确定所述查询语句的执行计划;
数据库优化分析模块,用于依据所述抽象语法树对应的至少一个元数据和所述执行计划,对所述目标数据库进行优化分析处理;
执行计划确定模块包括:
标识确定子模块,用于确定查询语句的哈希值;
标识匹配子模块,用于将查询语句的哈希值在在预生成的执行计划表中进行匹配,其中,执行计划表包括预生成的多个执行计划各自对应的哈希值;
第一执行计划确定子模块,用于若执行计划表中包括与查询语句的哈希值的哈希值匹配的执行计划,则将匹配成功的执行计划确定为查询语句的执行计划;
数据库优化分析模块包括:
增强树确定子模块,用于构建抽象语法树对应的至少一个元数据与抽象语法树的关联关系,得到增强语法树;
关联关系确定子模块,用于将增强语法树和执行计划作为待优化分析对象;
优化建议确定子模块,用于依据优化建议数据库,确定待优化分析对象对应的推荐优化建议信息,其中,优化建议数据库包括多个已优化分析对象分别对应的推荐优化建议信息。
7.一种终端,包括:存储器、处理器及存储在该存储器上并可在该处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1至5中任一项所述的方法。
8.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1至5中任一项所述的方法。
CN202010300027.8A 2020-04-16 2020-04-16 基于数据库引擎的数据处理方法、装置、终端及介质 Active CN111522816B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010300027.8A CN111522816B (zh) 2020-04-16 2020-04-16 基于数据库引擎的数据处理方法、装置、终端及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010300027.8A CN111522816B (zh) 2020-04-16 2020-04-16 基于数据库引擎的数据处理方法、装置、终端及介质

Publications (2)

Publication Number Publication Date
CN111522816A CN111522816A (zh) 2020-08-11
CN111522816B true CN111522816B (zh) 2021-04-30

Family

ID=71901135

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010300027.8A Active CN111522816B (zh) 2020-04-16 2020-04-16 基于数据库引擎的数据处理方法、装置、终端及介质

Country Status (1)

Country Link
CN (1) CN111522816B (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949541B (zh) * 2020-08-14 2024-03-22 中国工商银行股份有限公司 多源数据库语句检查方法及装置
CN111984678B (zh) * 2020-08-24 2022-06-14 安徽新华博信息技术股份有限公司 一种基于Elasticsearch的SQL使用方法
CN112035508A (zh) * 2020-08-27 2020-12-04 深圳天源迪科信息技术股份有限公司 基于sql在线元数据解析的方法及系统、设备
CN112506965A (zh) * 2020-12-03 2021-03-16 北京天融信网络安全技术有限公司 一种数据库管理装置及方法
CN112597182A (zh) * 2020-12-16 2021-04-02 平安普惠企业管理有限公司 数据查询语句的优化方法、装置、终端及存储介质
CN112597199B (zh) * 2020-12-22 2024-03-08 南京三眼精灵信息技术有限公司 异构多数据源适配方法及装置
CN112783916A (zh) * 2021-01-04 2021-05-11 广州海量数据库技术有限公司 Sql语句审核方法及装置、存储介质及电子设备
CN112347126B (zh) * 2021-01-05 2021-04-02 平安科技(深圳)有限公司 大数据处理方法、装置、设备及介质
CN112860727B (zh) * 2021-02-20 2024-01-12 平安科技(深圳)有限公司 基于大数据查询引擎的数据查询方法、装置、设备及介质
CN112949172B (zh) * 2021-02-24 2023-07-04 重庆中科云从科技有限公司 一种数据处理方法、装置、机器可读介质及设备
CN113312373A (zh) * 2021-05-12 2021-08-27 上海哲锦信息科技有限公司 一种数据结构化查询语句的解析方法及设备
CN113626464A (zh) * 2021-08-02 2021-11-09 浪潮云信息技术股份公司 基于ClickHouse数据库内存数据的查询支持方法及系统
CN113797545A (zh) * 2021-08-25 2021-12-17 广州三七网络科技有限公司 游戏脚本处理方法、装置、计算机设备和存储介质
CN113742371B (zh) * 2021-11-08 2022-02-15 北京安华金和科技有限公司 一种sql语句块分析处理方法和装置
CN114443691B (zh) * 2022-01-18 2024-01-23 苏州浪潮智能科技有限公司 数据库查询调优方法、系统及计算机设备
CN114969203A (zh) * 2022-05-11 2022-08-30 深圳无一科技有限公司 数据实时同步方法、装置、设备及介质
CN114692208B (zh) * 2022-05-31 2022-09-27 中建电子商务有限责任公司 一种数据查询服务权限的处理方法
CN115114354B (zh) * 2022-08-30 2023-01-06 广州市玄武无线科技股份有限公司 一种分布式数据存储及查询系统
CN115630085B (zh) * 2022-12-02 2023-03-28 天津南大通用数据技术股份有限公司 一种数据库变量参数作用域控制方法、装置及设备
CN116680299B (zh) * 2023-06-05 2024-04-09 粤港澳大湾区(广东)国创中心 数据库查询方法、系统、存储介质以及设备
CN117290377A (zh) * 2023-09-28 2023-12-26 北京领雁科技股份有限公司 一种关系型数据库间sql语句的转换方法以及装置
CN117331963B (zh) * 2023-11-28 2024-03-08 恒生电子股份有限公司 数据访问处理方法、装置、电子设备及存储介质
CN117389996B (zh) * 2023-12-11 2024-03-29 深圳万物安全科技有限公司 数据库优化建议生成方法、终端设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101021874A (zh) * 2007-03-21 2007-08-22 金蝶软件(中国)有限公司 一种对查询sql请求进行优化的方法及装置
CN101093501A (zh) * 2007-07-31 2007-12-26 武汉大学 一种高效、透明的分布式空间数据库查询方法
CN102609451A (zh) * 2012-01-11 2012-07-25 华中科技大学 面向流式数据处理的sql查询计划生成方法
CN103051812A (zh) * 2013-01-14 2013-04-17 成都西可科技有限公司 一种通过自动调节手机屏幕背光亮度实现节能的方法
CN106598862A (zh) * 2016-12-19 2017-04-26 济南浪潮高新科技投资发展有限公司 一种基于sql语义可扩展的性能诊断调优方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080300777A1 (en) * 2002-07-02 2008-12-04 Linda Fehr Computer-controlled power wheelchair navigation system
US7873627B2 (en) * 2006-01-18 2011-01-18 Microsoft Corporation Relational database scalar subquery optimization
DE502006007802D1 (de) * 2006-06-01 2010-10-14 Mediareif Moestl & Reif Kommun Verfahren zum steuern eines relationalen datenbanksystems
EP2234025A1 (en) * 2009-03-24 2010-09-29 Software AG XML database management system for an XML database comprising access-protected XML data
CN102799624B (zh) * 2012-06-19 2015-03-04 北京大学 基于Datalog的分布式环境下大图数据查询方法
CN102982075B (zh) * 2012-10-30 2016-10-05 北京京东世纪贸易有限公司 支持访问异构数据源的系统和方法
US10275305B2 (en) * 2014-11-25 2019-04-30 Datavore Labs, Inc. Expert system and data analysis tool utilizing data as a concept
CN109241104B (zh) * 2018-10-12 2021-11-02 北京聚云位智信息科技有限公司 决策型分布式数据库系统中aisql的解析器及其实现方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101021874A (zh) * 2007-03-21 2007-08-22 金蝶软件(中国)有限公司 一种对查询sql请求进行优化的方法及装置
CN101093501A (zh) * 2007-07-31 2007-12-26 武汉大学 一种高效、透明的分布式空间数据库查询方法
CN102609451A (zh) * 2012-01-11 2012-07-25 华中科技大学 面向流式数据处理的sql查询计划生成方法
CN103051812A (zh) * 2013-01-14 2013-04-17 成都西可科技有限公司 一种通过自动调节手机屏幕背光亮度实现节能的方法
CN106598862A (zh) * 2016-12-19 2017-04-26 济南浪潮高新科技投资发展有限公司 一种基于sql语义可扩展的性能诊断调优方法

Also Published As

Publication number Publication date
CN111522816A (zh) 2020-08-11

Similar Documents

Publication Publication Date Title
CN111522816B (zh) 基于数据库引擎的数据处理方法、装置、终端及介质
US10169337B2 (en) Converting data into natural language form
KR101755365B1 (ko) 레코드 포맷 정보의 관리
CN111949541B (zh) 多源数据库语句检查方法及装置
US8065323B2 (en) Offline validation of data in a database system for foreign key constraints
CN108182215B (zh) 一种结构化查询语言sql性能统计的方法及装置
CN110795455A (zh) 依赖关系解析方法、电子装置、计算机设备及可读存储介质
JP5791149B2 (ja) データベース・クエリ最適化のためのコンピュータで実装される方法、コンピュータ・プログラム、およびデータ処理システム
US11698918B2 (en) System and method for content-based data visualization using a universal knowledge graph
CN110597844B (zh) 异构数据库数据统一访问方法及相关设备
US20160267085A1 (en) Providing answers to questions having both rankable and probabilistic components
US9053207B2 (en) Adaptive query expression builder for an on-demand data service
US20170132289A1 (en) Database entity analysis
CN108694172B (zh) 信息输出方法和装置
CN113760891A (zh) 一种数据表的生成方法、装置、设备和存储介质
US20150347506A1 (en) Methods and apparatus for specifying query execution plans in database management systems
CN110008448B (zh) 将SQL代码自动转换为Java代码的方法和装置
US11720563B1 (en) Data storage and retrieval system for a cloud-based, multi-tenant application
CN111143390A (zh) 更新元数据的方法及装置
CN116186174A (zh) 基于数据分析的数据血缘关系图构建方法及相关设备
US11921763B2 (en) Methods and systems to parse a software component search query to enable multi entity search
CN114372083A (zh) 元数据分析方法及装置
US20170031909A1 (en) Locality-sensitive hashing for algebraic expressions
JP2017010376A (ja) マートレス検証支援システムおよびマートレス検証支援方法
US10824671B2 (en) Organizing multiple versions of content

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