返回顶部

论文阅读-AI meets Database- AI4DB and DB4AI

论文标题:AI Meets Database: AI4DB and DB4AI
作者:李国良(清华),Xuanhe Zhou,Lei Cao
关键词:综述,AI4DB,DB4AI
论文发布时间:SIGMOD 2021

1. 摘要 Abstract

数据库和人工智能是可以相互促进的。

  • 一方面,AI可以可以让数据库更智能(AI4DB)。传统的数据库优化技术(例如代价估计、连接顺序选择、旋钮调优、索引和视图建议)无法满足大规模数据库的高性能需求、多样化的应用场景以及不同的客户,尤其是在云端。基于学习(learning-based)的方法能够缓解这些问题。
  • 另一方面,数据库可以优化AI模型。数据库技术可以用于降低使用AI模型的复杂度、加速AI算法、在数据库中提供AI可用性。

本文回顾了在AI4DB和DB4AI领域的现有工作,具体来说有:

  • AI4DB:基于学习的数据库配置、优化、设计、监控和安全
  • DB4AI:面向人工智能的说明性语言、数据治理、训练加速和推理加速

2. 引言 Introduction

2.1 AI4DB

  • 基于学习的数据库配置:利用机器学习技术自动化数据库配置,例如:使用强化学习进行旋钮调优、针对索引推荐的分类器、针对视图推荐的分类器、强化学习进行数据库分区
  • 基于学习的数据库设计:使用机器学习技术设计数据库组件,例如:学习索引、学习KV store设计、事务管理
  • 基于学习的数据库监控:传统的方法依赖于DBA对数据库活动进行监控和报告异常,在自动化监控环节不够充分和高效。使用机器学习技术可以预测查询到达率、估计查询表现、诊断查询慢的根本原因、决定监控数据库的时间、方法以及指标
  • 基于学习的数据库安全:传统的数据库安全技术(例如数据屏蔽、审核,敏感数据发现)依赖于用户定义的额规则,不能自动地发现安全缺陷、基于学习的算法被提出用于自动发现敏感数据、检测异常、执行权限控制、防止SQL注入。

2.2 DB4AI

  • 声明性语言模型:SQL是一种在数据库领域被广泛应用的语言。可以扩展SQL来支持AI模型,并且设计用户友好的模型来支持AI模型
  • 数据治理:数据质量对于机器学习十分重要,可以使用数据治理技术来提升数据质量,例如:数据发现、数据清洗、数据标注等
  • 模型训练:模型训练是一个耗时且复杂的过程,因此需要进行优化,例如特征选择、模型选择、模型管理、硬件加速。
  • 模型推理:模型推理旨在使用具有数据库优化技术的训练模型来有效地推断结果。

2.3 研究挑战和开发问题

  • 在AI4DB方面讨论了 AI for transactions 和 数据库可靠性(当AI模型无法收敛时)
  • 在DB4AI方面讨论了如何加强数据库中的AI训练,如何使用错误容忍技术来降低错误
  • 对于hybrid AI and DB,提出了混合数据模型、混合计算模型和混合AI&DB系统

3. AI for DB

3.1 基于学习的数据库配置

  • 旋钮调优:CDBTune将数据库调优建模一个决策序列,通过强化学习提升调优性能;CDBTune只将之前的数据库状态作为输入,QTune进一步针对查询特征使用深度学习,实现了更加细粒度的调优(查询级别的、会话级别的、系统级别的)
  • 索引推荐:对于具有大量列的组合 推荐和构建索引是一件昂贵的事情。Sadri et al 提出了一种基于强化学习的索引选择方法。因为没有专家规则,他们将工作负载特征标记为查询的到达率,将列特征标记为访问频率和每列的可选性。然后他们使用马尔可夫决策过程学习各种特征,然后输出动作集合(代表着索引的创建和删除)
  • 视图推荐:在DBMS中使用视图来提升查询效率是 空间换时间 的一种做法。在拥有百万数据库实例的云数据库中 维护和物化视图 是一件困难的事情。许多方法能够根据给定的查询负载自动选取合适的视图。
  • SQL重写:SQL重写器能够减少逻辑查询中冗余/无效的操作,从而提高查询性能。传统的基于经验的查询重写方法只在固定顺序进行重写,从而产生欠优的查询。使用深度强化学习能够选择合适的规则,并且将规则编排为合适的顺序。
  • 数据库分区:传统的方法启发式地选取列作为分区键(通常是单列),无法平衡负载均衡和访问效率。一些工作使用强化学习模型尝试不同分区键,使用全连接神经网络来预测分区收益。

3.2 基于学习的数据库优化

  • 基数估计/代价估计:数据库优化器根据基数估计和代价估计来选取优化方案,传统的技术不能有效地捕获不同列/表之间的相关,从而不能提供高质量的估计。使用深度学习神经网络可以捕获数据相关性,例如一个基于LSTM的工作学习每个子计划的表示与物理运算符和谓词,并通过使用估计层同时输出估计的基数和成本。
  • 连接顺序选择:传统的启发式方法对于大量的表无法找到优化解,使用动态规划探索巨大的空间又是代价高昂的。一些基于深度强化学习的方法自动选取好的计划。例如:SkinnerDB使用基于蒙特-卡罗树搜索的方法在每个时间片中尝试不同的连接顺序,并可以动态优化连接顺序。
  • 端到端优化器:一个完整的优化器需要综合考虑到代价估计、连接顺序、索引、视图。例如一个端到端优化器NEO可以生成最终的物理计划(physical plan),它使用延迟作为反馈,用于训练深度神经网络。

3.3 基于学习的数据库设计

传统的数据库是由数据库架构师根据经验设计的,但是架构师只能探索有限的设计空间。最近,一些基于学习的自设计技术被提出:

  • 学习索引:一些方法被提出用于减小索引大小同时提升查询效率。
  • 学习数据结构设计:不同环境需要不同的数据结构,为每个场景设计数据结构是困难的。一些技术例如data structure alchemy能够自动推荐和设计数据结构。他们将设计空间(design space)定义为基本组件(例如 fence pointers, links, temporal partitioning)。为了设计数据结构,他们首先定位总体代价中的瓶颈,然后对不同的旋钮进行一维的调整知道达到代价边界 或总体代价最小,这类似于梯度下降的过程。
  • 基于学习的事务管理:有两个方面的工作:事务预测 和 事务调度(transaction scheduling)。
    • 事务预测:传统的事务预测是基于规则的。例如一个基于规则的方法使用数据库引擎的领域知识来识别和工作负载特征相关的信号,而当工作负载发生改变时,重建一个统计模型需要花费很多时间。所以有人提出了基于机器学习的系统来预测未来的不同的工作负载。
    • 事务调度:原先的方法要么顺序的调度工作负载,忽略了可能的冲突;要么根据数据优化器预测的执行代价进行调度。Sheng et al 使用监督算法能够平衡并发和冲突率。

3.4 基于学习的数据库监控

  • 数据库健康监控 DHM
  • 数据库活动监控 DAM:我们广泛地将DAM分为两类:活动选择和活动跟踪。
    • 活动选择:传统地DAM方法需要根据触发规则记录外部系统的所有活动,但这是一个很重的负担。因此需要自动选择和记录危险的活动。Hagit et al将数据库监控问题定义为一个多臂赌博机问题,能够根据现有政策选择危险的数据库活动同时发现新的规则。
    • 活动跟踪
  • 性能预测:Marcus et al使用深度学习预测并发场景下的查询延迟。Zhou et al 提出了基于图嵌入的性能预测方法,使用图卷积网络来将工作负载图嵌入到性能度量中。

3.5 基于学习的数据库安全

  • 基于学习的隐私数据发现:隐私数据泄露会导致严重的经济和个人信息损失,保护数据库中的敏感信息十分重要。例如一种方法Aurum是一个数据发现系统能够根据用户需求灵活地查询数据集
  • 权限控制:本任务旨在防止未授权用户的访问,包括表级的和记录级别的。传统的方法不能有效的预防这些攻击。近期一些机器学习方法能够估计访问请求的合法性。
  • SQL注入:主要有两种类型的SQL注入检测方法:分类树、模糊神经网络。
posted @ 2024-10-14 15:51  Frank23  阅读(4)  评论(0编辑  收藏  举报