具备AI能力
-
参数自动调优
在数据库场景中,不同类型的作业任务对于数据库的最优参数数值组合存在偏差。为了获得更好的运行性能,用户希望快速将数据库的参数调整到最优状态。人工调参的学习成本高且不具有实时性和广泛可用。通过机器学习方法自动调整数据库参数,有助于提高调参效率,降低正确调参成本。
参数自动调优:参数调优服务支持离线与在线两种服务形式,支持多种算法,包括强化学习、全局搜索算法等。
当模型处于训练阶段中,根据输入的数据库参数数值(其中包括数据库当前参数数值以及数据库当前性能参数数值)通过强化学习和启发式算法得到新的参数数值组合,数据库的参数调整由强化学习和启发式算法两个组成部分的输出结果混合得到,将模型的输出经过反归一化得到新的参数数值,将新的数值植入数据库并运行测试作业得到当前数值组合下数据库的性能表现,如执行时长、吞吐量等指标。最后将表现作为反馈给学习模型,往复迭代。
当模型处于调优阶段中,将当前数据库的参数数值作为输入,其中包括数据库当前参数数值以及数据库当前性能参数数值。通过模型得到当前情况下的所能得到的最优参数调整方案。
当模型处于推荐模式下,会直接根据用户当前Workload的特征进行秒级参数推荐。
-
索引推荐
支持单Query索引推荐与Workload级别索引推荐。在进行Workload级别索引推荐时,先根据AI算法,筛选出具有代表性的SQL语句。然后针对代表性的SQL语句,基于语句的语义信息和数据库的统计信息,生成最优的推荐索引。将所有语句的推荐索引作为候选索引集合,然后计算每条候选索引对workload的收益,推荐出收益最大的索引组合方案。
-
时序预测与异常检测
支持采集部署数据库宿主机上的特征信息,并将上述时序特征数据收集并存储起来。利用上述存储的数据进行时序预测,例如存储空间预测等。还支持根据上述数据进行潜在异常问题的发现, 能够先知先觉地发现可能出现的问题,并作出提前部署。
-
其他自治运维服务
支持全方位的数据库监控和异常检测功能,同时还能对系统中发生的慢SQL进行根因根因分析。
-
支持DB4AI功能
支持原生DB4AI引擎,利用数据库实现SQL语句驱动AI任务。
-
SQL执行时间预测
在查询性能调优、业务负载分析等场景,用户经常需要对SQL的执行时间进行预测,目前数据库优化器主要基于代价模型,无法准确预测执行时间。该特性通过AI模型,能够对历史执行过的查询或相似查询进行时间预测,满足SQL执行时间预测要求。
SQL执行时间预测:根据收集的历史性能数据进行编码和基于深度学习的训练及预测。
历史数据收集由数据库内核进程完成,内核进程通过curl向python端AI引擎发送https请求来(1)配置机器学习模型、(2)发送训练数据、(3)触发模型训练、(4)请求训练过程监测服务端口、(5)加载用于训练的模型、(6)使用加载好的模型进行预测。数据的编码阶段在数据库中完成,保证出库数据已脱敏。模型的预测阶段需要在查询计划生成后对整个计划进行编码并写文件发给python端,python端tensorflow计算图只需要加载一次,可以进行高度并行化的批量预测。
-
数据库监控
在日常运维过程中,用户需要持续对数据库运行状态进行监控,但是数据库内部的复杂性导致用户难以高效的提取关键数据。实现数据库自监控能够提升用户运维效率,用户只需要关心核心指标和异常数据。
- 事务概要信息包括提交(commit_counter)和回滚(rollback_counter)的事务数,事务响应时间。提交和回滚的事务数、事务的响应时间都是自上次重启后的累计值。
- Workload SQL 概要信息包括一个workload内DDL,DCL,DML分布,还包含DML类型中SELECT、UPDATE、INSERT、DELETE的个数。SQL类型分布是自上次重启后的累计值。
- Workload SUID时间概要信息包括一个workload内Select、Update、Insert、Delete的耗时(累计,平均,最大,最小)。
- SQL response time percentile概要信息包括过去一段时间系统中80%和95%的SQL响应时间。
- Waitevents概要信息只包括单独节点上的事件等待信息,不包含全局汇聚信息。主要包括等待状态STATUS,IO事件IO_EVENT,Lock事件LOCK_EVENT,Lwlock事件LWLOCK_EVENT的成功等待次数,失败等待次数,事件在节点上等待的总时间,事件最小等待时间,事件最大等待时间,事件平均等待时间。
- 对于进入到Parser的SQL,生成归一化的Unique SQL ID以及相应的SQL文本串。统计Unique SQL在各个执行阶段的时间消耗,从而依据时间分布进行SQL性能分析和调优;统计实例、会话在各个阶段的时间消耗,辅助系统整体性能调优。查询SQL执行次数 ,SQL内核响应时间, IO时间、CPU时间、网络传输时间等 ,物理、逻辑读 ,Select返回结果集数量、扫描元组数量、更新行、删除行、插入行等 ,新生成(硬)复用(软)计划次数。
#openGauss #入门 #数据库 #开源