历时两天的训练营活动,真的是大开眼界耳目一新,OpenGauss提供面向多核的极致性能、全链路的业务和数据安全、基于AI的调优和高效运维的能力让我受益匪浅。尤其是OpenGauss在AI自治方面的能力真是令人惊喜。自调优、自诊断自愈、自组装这三大自治简直是所有dba的福音。相信对很多dba来说,调优都是让人大把大把掉发的过程。想起了这么一个场景,
面试官:某某你简历上写了你会数据库调优,你都是怎么调优的?
某某:加索引。
面试官:还有么?
某某:没了。
面试官:我们公司的门你知道在哪里吧,自己走还是我送你?
这个场景是我臆想的一个面试场景,但是大家是不是觉得很真实,每个人的简历上但凡写到了数据库,都会在后面顺便写一句,会数据库调优。但是问题就来了,面试官一问到数据库调优的,大家就说加索引,除了加索引大家还知道别的么?或者索引相关的点你全部都知道么?聚簇索引,非聚簇索引,普通索引,唯一索引,change buffer,表锁、行锁、间隙锁以及行锁并发情况下的最大TPS是多少?还有索引为啥会选择错误?这些大家知道嘛?
所以说调优从来都不是一个简单的事情。无论是从硬件架构上的优化,还是数据库参数的优化以及sql语句的优化,都不是一蹴而就的。而opengauss却将调优做到了极简。历史信息收集与可视化、SQL改写、慢SQL诊断与建议、索引推荐、参数推荐、参数表现估计、趋势预测(AI负载、性能预测)、扩容提示(AI存储空间预测)、健康指数、风险预警、综合报告、DB系统故障检测与预警、业务画像 入侵威胁检测等等,这些都只是OpenGaussAI自治化的一角,下面是我体会到的OpenGauss的AI强大之处。
AI in DBMS: 参数调优与诊断能力介绍
调优参数列表:根据不同的场景预设,用户也可以根据经验配置;
调优方法概括:结合深度强化学习与全局优化算法,针对不同类别的参数进行细粒度调优。
调优效果评估:观察benchmark的跑分结果,预置的benchmark丰富,极简可扩展。
离线参数调优流程概述:
1.利用长期参数调优总结出的先验规则进行参数配置诊断与生成数据库workload报告;
2.根据系统的workload、环境信息推荐初始参数配置,包括推荐参数值、建议最大值和最小值(用以保证稳 定性,供用户结合自身经验进行选择);
3.利用训练好的强化学习模型进行调优,或者使用全局优化算法在给定的参数空间内进行搜索;
4.常规评价调优效果好坏的方法是跑benchmark获得反馈,调优框架除支持常规benchmark如TPC-C、TPC-H 等,还为用户提供了自定义benchmark的框架,用户只需要进行少量工作进行适配即可;目前还在演进支 持Performance Model的参数调优,将更进一步加快调优速度。
AI in DBMS: 慢SQL发现能力介绍
1.上线业务预检测:上线一批新业务前,使用SQL诊断功能评估此次上线业务的预估执行时长,便于用户参考是否应该修改上线业务。 2.Workload分析:能够对现有workload进行分析,将现有workload自动分为若干类别,并依次分析此类别SQL语句执行代价,以及各个类别之间的相似程度;
3.SQL透视:能够将workload进行可视化,通过不同颜色和距离远近判断SQL语句之间的相似性,从而供用户直观地分析SQL语句的特点。
AI in Kernel:AI优化器之基于在线学习的查询性能预测
数据收集->特征提取->模型训练/推理->多任务学习
AI in DBMS: 数据库监控与异常检测
数据库指标是数据库与用户行为健康的重要标志,数据库中的异常行为可能导致数据库指标产生异常,因此对指标进行有效的监控显得十分必要。
数据库状态监控,指对数据库运行指标进行全方位实时监控。系统能够发现和识别数据库异常以及潜在的性能问题,并及时将数据库异常报告给用户,通过针对各项运行指标的统计分析报告,帮助管理员、运维人员、决策者多视角了解数据库的运行状态,从而更好的应对数据库的需求及规划。
AI in Kernel: 单Query/ Workload级别索引推荐能力介绍
根据用户的Workload整体信息,为用户推荐需要创建的索引。
单Query索引推荐的核心方法:
采用索引设计和优化的相关理论,基于原生的词法和语法解析,对查询语句中的子句和谓词进行分析和处理,再结合字段选择度、聚合条件、多表Join关系等输出最终建议。
索引性能验证的方法:
通过修改优化器相应的数据结构,利用优化器评估,进而判断创建该索引后,对优化器生成执行计划的影响。该过程可以不用真正创建索引,即业内所谓的“假设索引”,业内也多采 用此种方法。
Workload级别索引推荐的核心方法:
通过用户输入(或自主采集)得到的workload信息,根据预设模型,进一步评估创建索引对整体Workload的影响,从而从候选索引中筛选出若核心索引。 从单条到workload端。
AI in SQL:全流程AI,构筑数据库内端到端DB4AI系统,无需人工参与
关键组件说明:
- 自动特征工程: 从相关的数据表中自动提取有用且有意义的特征,减少了特征工程所需的时间。将周级的处理时间缩短至天级。
- 模型最优选择: 在多个模型中,选择出最适合本数据的模型。
- 超参数优化: 选出合适模型后,并且能够设定好它的最优参数。
- 优化算法选择: 自动地选择出一个优化算法(如SGD、L-BFGS、GD等),以便能够达到效率和精度的平衡。
- 支持深度学习: 支持主流深度学习框架。并自动地选择出一个优化算法,以便能够达到效率和精度的平衡。
- 模型管理: 记录模型准确度等相关信息。增加模型生命周期管理,支持增量训练,模型更新,支持模型导入和导出。
以上种种都是opengauss在AI自治方向的发展与革新,时代在进步,数据库技术日新月异,而在这百花齐放的数据库技术中,我相信OpenGauss必将占有一席之地!