ITPub博客

首页 > 数据库 > 国内数据库 > 「分布式技术专题」SQL 解析的 AP/TP 判别

「分布式技术专题」SQL 解析的 AP/TP 判别

原创 国内数据库 作者:Hubble数据库 时间:2023-02-13 15:30:56 0 删除 编辑

通常 SQL语句可以分为分为四大类: 数据查询语言 DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。

但在数据的操作上,可以根据 SQL对于IO、CPU、内存等资源的消耗可以分为 AP的SQL和TP的SQL。


通常情况下单个 TP的SQL语句对于资源的消耗是非常的少的。而AP的SQL会消耗量的IO、内存、CPU等资源。过程如下图:

ap_tp_decide

SQL的判别可以从几个点入手:

1)基于规则的判别。

SQL语法可以解析为抽象语法解析树,通过观察者模型对语法解析数进行规则分析,提取出SQL语法的关键信息点可以进行简单的做甄别出SQL的类别。如TP 类SQL会有事务级别的插入、修改、删除等操作,也会有指定条件的简单查询等操。AP类SQL通常会有大量的分类统计与语法嵌套,根据类似SQL的规则的甄别可以通常可以判断出70%左右的SQL的类别。对于无法做到甄别的可以再通过算法模型做进一步判别

2)基于算法模型的判别。

基于算法模型的判别需要从几个步骤入手:训练集、验证集数据准备与标注、特征变量处理、训练模型选择、模型参数优化、验证准确性、根据验证准确性做进一步优化。

训练集、验证集准备:

开启数据库的日志记录功能,把 SQL语句以及对应的资源消耗等记录记录下来,用做算法模型需要使用的数据,并把数据分成训练集合验证集。

特征变量处理:

可以对数据的特征变量进行进一步加工处理,如对 SQL可以进一步处理为语法树,根据语法树展开放入到特征变量中去。

训练模型选择:

本次做的处理是分类模型,是对 SQL语句或者SQL解析后的语法树进行分类,所以我们可以选择分类模型来处理这个事情,但由于数据库对于性能要求很高,所以在选择时也要从模型调用的性能做为考虑。

模型参数优化:

通常指的就是模型调参,这个是一个算法模型的常规做法根据不同的参数进行优化。

验证准确性:

把数据代入到验证集中对数据做进一步校验,验证算法的准确度。


以上为 SQL 解析的 AP/TP 判别, 「分布式技术专题」是国产数据库 hubble 团队精心整编,专题会持续更新,欢迎大家保持关注。

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026685/viewspace-2935007/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
100%国产自研的Hubble是基于最适合云原生的GO语言编写,已通过逻辑计划融合SQL、Graph、ML、3D点云、NL2SQL等实现AI-Native数据库,重新定义数据基础设施。支持36种AI原生算法;支持158种量化分析函数;支持图逻辑计划;支持3D点云。

注册时间:2023-02-13

  • 博文量
    29
  • 访问量
    15102