智能化正在不断颠覆传统生产力。随着数智时代的到来,AI技术在提升管理效率、降低运维成本等方面发挥着越来越重要的作用。当DB与AI相结合,数据库产品也变得更加智能化。目前智能数据库技术是业内的研究热点,openGauss 作为国内数据库根技术的重要一支,在这一领域取得了哪些成就?未来有哪些发展规划?
2023年4月7-8日,由中国DBA联盟(ACDU)和墨天轮社区联合主办的第十二届“数据技术嘉年华”(DTC 2023)在北京新云南皇冠假日酒店成功召开。华为openGauss数据库AI领域负责人李士福在【数智趋势:智能运维与自治】专题论坛发表了题为 《openGauss:自驾驶数据库内核》 的演讲。本文根据演讲实录整理而成。
(嘉宾简介:李士福,15年数据库内核开发经验,2014年加入华为高斯部,曾在Teradata研发中心从事分布式MPPDB数据库研发。目前其主要负责GaussDB(含openGauss)自治数据库内核的研发工作,包括DBMind自治运维系统、DB4AI库内AI引擎和自学型内核;同时作为openGauss社区TC成员支撑openGauss社区拓展。)
一、openGauss自驾驶内核整体介绍
李士福表示,openGauss自驾驶内核整体上主要包含两个子系统:AI4DB自治系统和DB4AI库内AI引擎。
AI4DB自治系统主要又包含两大部分:一个是DBMind自治运维系统,是给用户、主要是DBA做自监控、自诊断、自由化和自安全,其主要目标是方便用户做系统的运维诊断,让系统更高效、可靠运行;另一个是把AI技术嵌到数据库内核之中,实现智能查询重写、代价估计、行数估计、计划自适应选择、负载自适应调度、自学习索引、缓存自适应淘汰等。
DB4AI库内AI引擎则是指在数据库内置很多AI算法,把AI能力直接内嵌到数据库中,通过训练和推理SQL语法、训练语句执行计划及代价为数据库提供AI能力,这样能方便用户使用训练和推理的语句。同时DB4AI还可以提供算法API接口,供学习型内核组件调用,从而为库内组件加速。
二、DBMind运维管理系统架构和应用
李士福指出,DBMind整体运维架构主要涵盖四个方面:数据采集层作为底座,主要负责在数据库运行节点上部署Agent采集节点,从而采集数据库指标和OS指标,同时还负责执行AI Service下发的运维管理命令。在数据计算层,数据库外的节点可以在备机部署AI Service服务节点,同时有一些存储的引擎,来实现数据计算存储。自治服务层主要提供三大方面的自治服务:其一是SQL诊断调优,包括慢SQL诊断、发现以及索引优化等;其二是安全,提供异常行为检测、敏感数据发现;其三是运维,即整个系统的运维诊断,包括参数调优、系统分析诊断等。最顶层是监控,通过端到端的监控诊断、运维还有优化,实现了从问题发现、问题诊断到问题优化的全流程管控,对用户来说是无感知的。
在DBMind自治运维系统层层严密的架构下,其有广泛的应用。李士福透露,DBMind自治运维系统的应用主要聚焦于三个方面:索引推荐能力、慢SQL诊断和建议、多指标关联分析。
索引推荐能力是指在数据库内核中内置单条索引的推荐能力,来实现单条索引推荐,从而让用户很容易对一条语句实现索引加速。由于单条索引很难对整个系统有效,因此openGauss DBMind额外增加了对整个系统负载的索引推荐,通过对批量workload的采集、处理、压缩后再进行单条索引推荐,从而降低索引推荐比例、提升整体效率。
慢SQL诊断和建议是在openGauss中集成的能力之一。在数据库中,openGauss会识别哪些语句是慢SQL,然后采集慢SQL和它的相关指标特征。同时结合当前系统的运行状况,比如CPU使用率和IO使用率等指标,把这些信息作为统一的集合进行训练。训练后形成的特征库,可用于与之后遇到的慢SQL语句境进行智能匹配,最后把根因结果在界面上展示,同时给出优化建议。
多指标关联分析可以帮助我们快速发现问题。我们都知道,采集的指标是多种多样的,一个指标的变动可能联动其他指标也发生变化。目前openGauss施行了多种异常检测算法,例如:持续增长、毛刺、周期性等。基于这些检测算法观察环境指标,可以发现指标间的关联关系,从而确定影响关键指标的变化因素有哪些。
三、库内AI引擎架构和应用
对DBMind整体运维架构进行了详细的介绍后,李士福还分享了库内AI引擎架构和应用方面的知识点。
DB4AI库内AI引擎架构中,基于优化路径,openGauss可以展示当前AI算子的执行路径,让用户可以查看执行计划。其次是全流程业务管理,除了常见的模型管理,openGauss数据库还支持通过系统表存储管理模型。此外,还支持数据集管理,在数据更新变化的情况下,不影响当前训练的模型。李士福透露,研发团队还在做模型的漂移,去保证模型的新鲜度;进一步还将结合异构计算能力,将执行算子下推到GPU去做稳定训练加速,从而构建起完整的DB4AI引擎架构。
DB4AI与不同的应用相结合,能帮助开发者提升工作效率。“在应用上,DB4AI给用户提供交互式的界面,例如结合Jupyter做交互式的分析。因此,我们提供DB4AI Python库,结合这个命令可以很容易地在交互界面上给用户展示相关信息。这种可以使用Python的方式让用户很容易上手。”李士福说道。
目前DB4AI也积累了丰富的案例,例如库内AI高效训练和推理、模型自适应漂移。通过机器学习算法,完成可解释模型;每个月采2000个样板信息完成模型漂移,解决了模型与当前业务不拟合等问题。openGauss 在DB4AI方面的应用能极大地节省人力,降低成本。
此外,李士福还就智能优化器架构做了简要介绍。openGauss数据库的智能优化器主要完成四项任务:智能基数估计、自适应计划选择、智能代价模型、智能计划探索。其中,他重点介绍了智能基数估计、自适应计划选择这两项任务。智能基数估计是指结合AI算子对数据做分析和处理,改善了基于神经网络算法的传统方法很难落地的情况;自适应计划选择主要解决的是缓存计划的使用问题。
在演讲尾声,李士福总结指出,AI与DB的结合其实是一个新兴领域,目前openGauss在这一领域投入很多。AI与DB相结合能解决当前运维场景效率的问题,还可以提升用户使用价值。后续,华为将持续深耕这一领域,并将研究成果持续应用至社区。