AI4DB
2024-01-01 12:24:32
介绍
在传统数据库中,由于使用大量启发式算法,无法针对众多用户实际场景定制化开发,一般通过数据库系统预定义参数组合或可调节参数开关等方式,由DBA 根据经验进行调整。AI算法与传统启发式算法的最大不同在于其可以根据历史数据学习,并根据现状在运行时进行动态调整。因此如何利用AI算法替换启发式算法,解决传统数据库的痛点问题成为研究的热点话题。
AI4DB的典型方向
- 参数调优:数据库有数十甚至上百个可调节参数,其中很多参数是连续值调节空间,依靠人工经验无法找到最优参数组合。不仅如此,我们很难用“更快”去定义数据库调优的目标,每位用户遇到的瓶颈,以及不同的业务需求,我们的调优目标也不会趋同。传统的手动调优方法是利用DBA根据他们的经验手动调整这些旋钮,但时间开销较大。如果引入AI,利用其能够自学习,以用户的反馈,数据库日志分析,服务器资源监控数据以及数据库内部状况监控等为输入数据,自动调节数据库配置,这不仅能够实现更高的性能调整,而且缩短了调整时间。不仅如此,AI还能够依赖深度学习,进一步优化表结构,实现更高精度的Knob tuning。
- 自动化索引推荐和视图推荐:数据库有很多张表,表中有很多列,数据库索引可以提高对数据的访问速度,合理创建索引,对提高数据检索速率起着至关重要的影响。因此,如果将AI应用于该方面,进行自动化索引推荐,根据我们提供的表结构,进行最优索引推荐,将使数据库访问数据更便捷,表结构更加合理。例如,Sadri等人提出了一种基于强化学习的索引选择方法。首先,在没有专家规则的情况下,它们将工作负载特征表示为查询的到达率,列特征表示为每个列的访问频率和选择性。其次,他们使用马尔可夫决策过程模型(MDP)从查询、列的特征中学习,并输出一组表示创建/删除索引的操作。除此之外,数据库视图的创建也至关重要,尤其是拥有数百万数据库实例并支持数百万用户的云数据库。传统的视图创建和维护都需要数据库工作者对需求和表结构联合起来,给出合理的SQL语句。但如果引入AI视图推荐,担当视图顾问,利用深度学习,不断优化视图和表结构。并根据需求输入来为工作者自动化推荐和维护视图,这能让工作事半功倍,大大提高维护效率。
- 事务智能调度:事务的并发冲突是OLTP数据库的难点,可以通过AI技术进行智能调度从而提升数据库的并发性。同时,可以通过AI技术,合理分配数据库资源与权限,从而避免并发事务问题,避免造成读写冲突。
- AI数据库监控:传统的数据库维护方法大都依赖于数据库管理员实时监控数据库活动,记录数据库日志并报告异常,这种方法使低效率而且对于数据库资源存在一定不完整的监控。我们可以利用AI高效率,不间断工作,全方面监控的特点,对数据库资源进行监控。不仅如此,AI也可以用户敏感数据检测,保护用户的个人信息,并对数据库进行权限控制,防止未经授权的用户访问数据。数据库安全对于确保用户的隐私至关重要, 传统的数据隐藏、加密技术多有被暴力破解的风险,还不能保证足够高的安全性,可以借助AI通过结合深度学习,利用复杂的神经元连接方式进行数据隐藏、加密和访问控制,可以极大提升数据库的安全性。例如,Colombo等人提出了一种基于目的的访问控制模型,该模型定制了控制策略来调节数据请求。由于不同的行为和数据内容可能导致不同的私人问题,该方法旨在了解合法访问目的。旨在防止未经授权的其他用户的访问,或者是不法访问的请求。
- SQL生成与优化:如今,大量的数据都被存储在数据库中,当需要获取使用时,需要通过结构化查询语言(SQL)查询进行访问。当数据量达到千万甚至上亿级别时,如果不能对SQL进行优化,可能会导致慢SQL的出现。大大增加了查询数据的消耗时间和查询难度。不仅如此,如果当表的结构过于复杂,有时候查询数据需要联合查询多张表,这就对于SQL的掌握有比较高的要求。现如今,随着chatgpt等人工智能的出现,不少人工智能早已可以与数据库相结合,将自然语言转换成SQL语句,根据需求来为我们生成SQL语句。同样,也可以对SQL语句进行解释,转换成自然语言。除此之外,对于SQL优化,也能根据表结构和我们想要获取到的目标数据,对所写的SQL进行优化。现如今已经有许多这样的AI驱动工具出世,例如AI2sql,AI Query等等,它们的出现,无疑对数据库使用者与数据库进行交互,以及帮助数据库小白更好操控数据。除此之外,SQL优化重写可以删除逻辑查询中的冗余或无效运算符,显著提高查询性能。深度学习可以用于明智地选择适当的规则,并以良好的顺序应用规则。
-
发展问题
- 当前AI4DB仍处于早期阶段,搭建一套AI4DB的数据库应用不但成本高昂,而且极为复杂,也难以在部署后继续开发业务。如何构筑一套开箱即用、业务领域专家也能轻松使用的AI应用系统是当前企业对AI系统厂商提出的重大挑战。
- 当前AI与数据库结合仍处于AI优化辅助阶段,尚且还属于一个辅助工具,只能在部分场景起到一个辅助的作用,并没有足够智能到能够全场景智能,例如AI自定义数据库自定义内核还不足以实现,与数据库结合的道路任重道远。
- 从历史上看,当前的AI应用与20世纪60年代数据库系统诞生之前的情况极为相似。在数据库系统内构筑一套端到端、全流程的AI处理系统,并提供类似SQL一样的声明式开发语言,将是解决企业用户应用AI门槛高难题的正确方向。
- 不仅如此,现在的AI4DB对于简单的SQL生成可以较好满足所需,但是对于较为复杂的SQL,其生成结果也并非完美的,其主要原因还是大部分应用只是单纯接入GPT模型,进行一部分参数调校,其本质还是LLM大语言模型。除此之外,现在数据库市场产品众多,AI的兼容性也还需要得到进一步的发展。
虽然DB4AI目前发展并不完善,但不可否认的是,AI与数据库技术相融合,是数据库技术发展的大势所趋,利用AI能够大大推动加快数据库技术的发展,带动数据库发展进入新的时代。
文章来源:https://blog.csdn.net/weixin_63583875/article/details/135313128
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!