一、基本信息

一、基本信息
Paper:论文链接
Year:In Proceedings of the 2021 International Conference on Management of Data (SIGMOD ’21), June 20–25, 2021.
Authors:Guoliang Li, Xuanhe Zhou and Lei Cao

二、AI4DB和DB4AI

AI can make database more intelligent (AI4DB)即AI可以使数据库更加的智能传统的经验数据库优化技术(成本估算、连接顺序选择,按钮调优、索引和视图顾问)需要人为参与去调优和维护数据库,传统的经验数据库优化技术肯定不能满足大规模数据库实例和各种应用程序和各种用户的高性能要求,尤其在云上。由于机器学习,强化学习这几年的发展,可以来解决这些问题。
Database technique can optimize AI mode (DB4AI)即数据库技术可以优化AI模型,在很多实际的应用中,AI是很难去部署,它要求开发者写复杂的代码和复杂的模型。而数据库技术可以减少AI模型的复杂性,加速AI算法,并在数据库中提供人工智能的能力。

三、相关技术简介

下图是AI4DB和DB4AI的相关技术概述,也是我们可以进行研究的一些方向
AI4DB和DB4AI的概述

AI4DB

1、Learning-based Database Configuration

  • knob tuning(参数调优)
    数据库有数很多可调的系统参数,传统的DBAs只能依靠他们的经验并花费大量的时间来调优参数,但是他们无法处理数据库上的数百万个的数据库实例。因此使用基于学习的方法来自动进行参数调优是非常有必要的。其中典型的数据库模型有CDBTune models 和QTune。

  • Index advisot(索引顾问)
    索引对于查询执行速度来说是至关重要的。然而,对于具有大量列组合的情况,建议和创建索引是一项代价昂贵的任务。为了找到针对特定工作负载或查询模式的最佳索引集合,需要探索各种列组合,并评估它们对查询性能的潜在影响。这种探索可能需要大量的计算资源和时间。为了解决这个挑战,索引顾问利用各种技术,如统计分析、查询工作负载分析和基于成本的优化,提供高效和有效的索引创建建议。这些顾问通常考虑查询频率、列的选择性、连接条件和数据的基数等因素,以确定最有利的索引配置。

  • View advisot(视图顾问)
    在DBMS中,利用视图来提高基于空间-时间权衡原则的查询性能是很重要的。但是DBAs面对云数据库的百万数据库实例和支持数百万的数据库用户,DBAs是无法更好的提高查询性能,因此,数据库需要一个视图顾问,它调用视图顾问,该顾问会自动为给定的查询工作负载标识适当的视图。

  • SQL rewiter(SQL重写器)
    SQL重写器可以去除逻辑查询中冗余或者低效的运算符,显著提高查询效率。传统的经验查询重写方法只按固定顺序重写(例如,自上而下),并且可能导出次优查询,深度强化学习可以用来明智地选择适当的规则,并以良好的顺序应用规则。

  • Database Partition(数据分区)
    传统方法启发式地选择列作为分区键(大多数是单列),并且不能在负载平衡和访问效率之间取得平衡。一些工作还利用强化学习模型来探索不同的分区键,并实现了一个完全连接的神经网络来估计分区效益

2、Learning-based Database Optimization

  • Cardinality/Cost estimation(基数估计/成本估算)
    基数估计(Cardinality estimation)是指在数据库管理系统中,对于某个关系表或者其中的某一列,估计其不重复值的数量,即基数(cardinality)。基数估计在查询优化、执行计划选择和索引选择等方面起着重要的作用。基数估计的目的是在不扫描整个数据集的情况下,通过使用统计信息、采样方法或者其他技术,对基数进行估计。这样可以在查询过程中提供有关数据分布和选择性的信息,从而帮助优化器选择最佳的查询执行计划
    DBAs可以用基数估计和成本估算来选择一个优化策略,但是传统的技术不能有效的捕捉不同列/表之间的相关性,因此不能提供一个高质量的估计。最近技术中,利用深度神经网络来用于基数估计和成本估计来捕捉数据的相关性
  • Join order selection(连接选择顺序)
    有一些基于深度强化学习的方法可以自动选择好的计划。例如,SkinnerDB使用基于蒙特卡洛树搜索的方法在每个时间片中尝试不同的连接顺序,并可以动态优化连接顺序。
  • End-to-end optimizer. (端到端优化器)
    它是指一个优化系统或框架,它考虑整个数据处理流程或工作流,从数据摄取到最终输出。它以整体的方式对整个过程进行优化,而不是仅关注个别组件或阶段。在数据处理和分析的背景下,端到端优化器考虑了诸多阶段,包括数据提取、转换、加载、查询执行和结果交付等。它旨在通过分析和改进每个步骤,协调地优化整个过程的性能和效率。一个完整的优化器不仅对成本估计和连接顺序做出响应,还需要考虑索引和视图,设计端到端优化器非常重要。

3、Learning-based Database Design

  • Learned indexes(基于学习的索引)
    学习索引(Learned indexes)是一种使用机器学习技术来改进传统数据库索引结构的方法。传统索引结构(如B树、哈希表等)是基于静态规则和数据统计信息构建的,而学习索引则通过训练模型从数据中学习索引结构的最佳表示方式。学习索引的核心思想是使用机器学习模型来预测数据项的位置或范围,而不是依赖传统索引结构中的固定规则。这些模型可以是神经网络、决策树、支持向量机等。通过将数据和查询模式作为输入,学习索引模型可以根据学习到的知识动态地选择索引结构、调整索引参数或预测查询结果。
  • Learned data structure design(基于学习的数据结构设计)
    不同的数据结构在不同的场景中表现情况也不一样,所以很难设计合适的数据结构适用每一个场景,因此提出基于学习的数据结构设计来自动推荐和设计数据结构。
  • Learning-based transaction managemen(基于学习的事务管理)
    又称为基于机器学习的事务管理,指的是利用机器学习技术来优化和改进数据库和分布式系统中的事务管理。事务管理涉及确保并发数据库事务的一致性、持久性和隔离性。,有效的工作负载调度可以避免数据冲突,从而大大提高性能。

4、Learning-based Database Monitoring

  • Database Health Monitor (数据库健康监控)
    用于监控和评估数据库的健康状况和性能。它提供对数据库整体状态的洞察,识别潜在问题或瓶颈,并帮助管理员或数据库专业人员主动管理和优化数据库环境Hagit等人将数据库监控视为一个多武装土匪问题(MAB),该问题通过利用当前政策和探索新政策来选择有风险的数据库活动。目标是训练具有最大风险得分的最优策略。
  • Performance Prediction(性能预测)
    查询性能预测对于满足服务级别协议(SLA)至关重要,尤其是对于并发查询。

5、Learning-based Database Security

提出了基于学习的算法来发现敏感数据、进行访问控制和避免SQL注入。

  • Learning-based Sensitive Data Discovery

  • Access Control(访问控制)
    传统方法无法有效防止非授权访问数据,提出了基于机器学习的算法来估计访问请求的合法性。

  • SQL Injection(SQL注入)
    SQL注入是数据库的一个常见且有害的漏洞,利用机器学习技术的SQL注入检测方法主要有两种,包括分类树和模糊神经网络。

6、Learning-based Database Systems.

基于学习的数据库系统是指在数据库管理系统(DBMS)中应用机器学习技术来增强数据管理和查询处理的各个方面。这些系统利用机器学习算法和模型的能力,提高性能、自动化任务,并在数据库操作中做出智能决策。

DB4AI

1、Declarative Language Model(声明性语言模型)

传统的机器学习算法大多是用编程语言(python、R等)实现,有一定的局限性,与其他高级机器学习语言相比,SQL缺乏一些复杂的处理模式(例如,迭代训练)。幸运的是,SQL可以扩展到支持AI模型,我们还可以设计用户友好的工具来支持SQL语句中的AI模型

2、Data Governance(数据治理)

人工智能模型依赖于高质量的数据,数据治理旨在发现、清理、整合和标记数据,以提高数据质量

  • Data discovery(数据发现)
    数据发现旨在考虑应用程序和用户需求,自动从数据仓库中找到相关数据集。基于学习的数据发现增强了查找相关数据的能力,可以有效地在大量数据源中查找相关数据。
  • Data cleaning(数据清理)
    肮脏或不一致的数据会严重影响训练成绩。数据清理和集成技术可以检测和修复脏数据,并集成来自多个来源的数据。
  • Data labeling(数据标签)
    我们可以适当利用领域专家、众包和现有知识为ML算法标记大量训练数据,例如,通过亚马逊机械土耳其等商业公共众包平台(https://www.mturk.com),众包是解决此类任务的有效方法,它利用数百或数千名员工来标记数据。

3、Model Training(模型训练)

  • Feature selection(特征选择)
    特征选择旨在从大量可能的特征中搜索合适的特征,这既费力又耗时。为了解决这个问题,提出了批处理、物化、主动学习等数据库技术。
  • Model selection(模型选择)
  • Model management(模型管理)
    由于模型训练是一个反复尝试的过程,需要维护许多已经尝试过的模型和参数,因此有必要设计一个模型管理系统来跟踪、存储和搜索ML模型。
  • Hardware acceleration(硬件加速)

4、Model Inference(模型推理)

它旨在使用经过训练的模型和数据库内优化技术来推断结果。

  • Operator support(操作符支持)
    操作符支持通常指的是模型处理不同类型操作符或操作的能力。ML模型可能包含不同类型的运算符(例如,标量、张量),这些运算符具有不同的优化要求。因此,提出了支持人工智能操作员的数据库内技术。
  • Operator selection.(操作符选择)
    相同的ML模型可以转换为不同的物理运算符,这可能会带来显著的性能差异。在数据库中,操作员选择可以估计资源消耗并明智地调度操作符。
  • Execution acceleration(执行加速)
    与模型训练不同,模型推理需要选择ML模型并执行前向传播来预测不同的问题。现有的执行加速技术包括内存方法和分布式方法。
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐