清华AI4DB

综述类

综述类的文章,主要目的是对数据库目前的一些问题有了一个总结,了解一些名词,综述类的文章总结直接让ai来做了

Database meets deep learning: Challenges and opportunities

这篇文章说实话有点太老了,然后其中db4ai的部分我也没仔细看,目前不是特别感兴趣

AI4DB的主要应用与机遇:

  1. 自然语言查询接口:
    • 深度学习在NLP领域已取得显著进步,特别是RNN模型已被证明能够学习结构化输出。
    • 可将RNN模型应用于解析自然语言查询生成SQL查询,并使用现有数据库方法进行细化。
    • 一个主要挑战是需要大量标记训练样本,可能的解决方案是从小数据集训练基线模型,然后通过用户反馈逐步改进。
  2. 查询计划优化:
    • 传统数据库系统使用复杂的启发式和成本模型生成查询计划,但参数化SQL查询模板的最优计划具有"最优区域"特性。
    • 可以训练能从SQL查询和最优计划对中学习的RNN模型,为新的相似查询生成计划。
    • 可以结合强化学习(类似AlphaGo)通过执行时间和内存使用作为奖励在线训练模型。
    • 纯深度学习方法可能无法覆盖所有查询模式,建议将数据库解决方案与深度学习相结合。
  3. 众包和知识库:
    • 众包和知识库应用涉及实体提取、消歧和融合等概率问题,其中实体可以是数据库行或图中节点。
    • 深度学习在NLP方面的进展可用于这些问题,特别是学习实体表示,然后进行实体关系推理和相似度计算。
  4. 空间和时间数据:
    • 空间数据通常通过将移动对象映射到矩形块处理,可将每个块视为图像像素,利用CNN提取附近块之间的空间局部性。
    • 例如,对实时位置数据使用CNN捕获密度关系,预测未来交通拥堵。
    • 当时间数据建模为时间矩阵上的特征时,RNN可以模拟时间依赖性并预测未来时间点的事件。
    • 一个具体应用是基于历史医疗记录的疾病进展建模,预测已知疾病的严重程度。

 可以看出来很多内容其实都是比较落后的技术了

这有个中文的总结:https://zhuanlan.zhihu.com/p/39156719

Database Meets Artificial Intelligence: A Survey

AI4DB主要应用与挑战:

  1. 基于学习的数据库配置:
    • 旋钮调优:数据库有数百个可调参数,传统上依赖DBA手动调整。机器学习技术可以根据工作负载自动推荐最优配置。
    • 研究方法包括:(a)基于搜索的调优,如BestConfig;(b)传统ML方法,如OtterTune使用高斯过程;(c)深度强化学习方法,如CDBTune和QTune,可以在不需要大量高质量训练数据的情况下通过试错学习。
    • 缓冲区大小调优专门研究,如iBTune使用深度学习预测调整时机,RelM使用多级调优方法。
    • 挑战:如何保证训练数据的多样性,以及模型如何适应不同的硬件环境和工作负载变化。
  2. 索引/视图优化器:
    • 索引选择:从离线选择(AutoAdmin和DB2 Advisor)发展到半自动在线选择(WFIT)和基于ML的模型(ITLCS和基于强化学习的方法)。
    • 视图优化:从启发式方法(Hybrid-GHCA)到整数线性规划(BIGSUBS),再到深度学习方法(Wide-Deep)。
    • 挑战:如何处理大规模可能的索引/视图组合,以及如何平衡存储空间与查询性能。
  3. 查询优化:
    • 基数估计:从直方图和采样方法发展到深度学习模型,包括混合模型、神经网络、CNN和自回归模型。
    • 连接顺序选择:离线学习方法(LEO, DQ, ReJoin)和在线学习方法(Eddy-RL, SkinnerDB)。
    • 挑战:获取足够训练数据、适应模式变更、模型收敛保证,以及集成到现有优化器架构中。
  4. 学习型数据结构:
    • 学习型B+树:使用神经网络模拟CDF函数,如RMI, Fitting-tree和Alex-index。
    • 学习型哈希表和Bloom过滤器:降低冲突和内存占用。
    • 高维和空间数据索引:如ZM索引将多维空间点映射到一维向量。
    • 挑战:支持数据更新、处理偏斜数据、减少模型大小。
  5. 事务管理:
    • 事务预测:QB5000使用聚类和预测方法分析工作负载。
    • 事务调度:基于机器学习估计冲突概率,平衡并发性和冲突率。
    • 挑战:实时适应工作负载变化和数据分布变化。

这篇文章总结的问题就相对来说很多很杂了,也是反复了看了几遍对这些概念都有个印象

这个也有个很棒的总结:Database Meets AI: A Survey_knob tuning-CSDN博客

A Survey on Advancing the DBMS Query Optimizer: Cardinality Estimation, Cost Model, and Plan Enumeration

主要问题:

  1. 基数估计错误:研究表明基数估计错误可能达到数量级,远超成本模型最多30%的错误。这些错误主要来自三个方面:(a)单表谓词中的错误,源于直方图无法完全表示真实数据分布以及属性间相关性;(b)多表连接查询中的错误,因为很难获取不同表之间列的相关性,且估计错误会从叶节点传播并放大到计划根部;(c)用户定义函数中的错误,目前缺乏有效估计方法。
  2. 成本模型限制:操作的成本取决于多种因素,如硬件、实现方式、处理的元组数量及数据库当前状态。组合这些因素需要确定大量参数,且基数估计错误也会影响成本模型质量。此外,在分布式、并行环境或云环境中,成本模型复杂性急剧增加。
  3. 计划枚举挑战:寻找最优连接顺序是NP难问题。对于大型数据库的多表连接查询,穷举查询计划是不可行的。系统必须设计高效算法探索可能包含最优连接顺序的搜索空间。

解决方案:

  1. 基数估计改进:(a)概要数据结构方法,包括改进的直方图和草图技术;(b)采样方法,包括关联采样和自适应采样;(c)机器学习方法,特别是深度学习模型能够捕获属性和表之间的复杂相关性。监督学习方法专注于特定工作负载,而无监督方法如Kernel密度估计和自回归模型可以更好地适应工作负载变化。
  2. 成本模型优化:(a)改进现有成本模型,特别是针对UDF和内存数据库的哈希连接;(b)替代成本模型,如使用树CNN等深度学习模型捕获查询计划结构;(c)单查询性能预测,通过离线分析和采样获取真实基数来预测执行时间。
  3. 计划枚举技术:(a)动态规划方法,如基于图的算法生成无交叉连接的最优树;(b)自上而下策略,使用最小割分割连接图并引入剪枝策略;(c)针对大型查询的增量动态规划和查询简化;(d)强化学习方法,学习从历史执行中选择最佳连接顺序的策略。

总结来说就是CE CM PE对应可能出现的问题和现有的一些方案

这也有个总结:论文解析 -- A Survey on Advancing the DBMS Query Optimizer: Cardinality Estimation, Cost Model, and Plan Enumeration (Data Science and Engineering 2021)_51CTO博客_论文解析失败

A Survey on Deep Reinforcement Learning for Data Processing and Analytics

RL在数据库系统中的主要应用:

  1. 数据组织

    • 数据分区:如qd-tree这样的DRL方法基于工作负载模式对数据进行分区,以优化查询性能

    • 数据库分区:RL被用于在云数据库中高效导航分区搜索空间

    • 数据压缩:使用RL为时间序列数据寻找最佳压缩方案

  2. 调度

    • 作业调度:像Decima这样的系统学习在分布式计算环境中调度具有依赖关系的作业

    • 查询调度:RL模型学习优化查询执行顺序,提高资源利用率

  3. 系统调优

    • 数据库配置:CDBTune和QTune使用DRL在高维配置空间中找到最佳参数设置

    • 查询感知调优:考虑查询信息以优化数据库性能的RL模型

  4. 索引

    • 索引选择:使用DRL基于给定工作负载推荐最佳索引

    • 索引结构构建:使用RL学习构建R树和其他索引结构

  5. 查询优化

    • 连接顺序选择:如ReJoin和DQ这样的系统使用RL学习选择更好的连接顺序

    • 自适应查询处理:SkinnerDB从当前查询执行状态学习,优化剩余执行过程

  6. 缓存管理

    • 视图物化:DRL决定哪些视图应该被物化以获得最佳性能

    • 存储缓存管理:适应工作负载特性的基于RL的缓存管理框架

强化学习可以应用的一些场景

Automatic Database Knob Tuning: A Survey

数据库参数调优的主要挑战
  1.巨大的搜索空间:数据库有数百个参数,难以确定哪些对性能有显著影响。
  2.复杂的关系:参数与性能之间的关系复杂且难以建模。
  3.多样化需求:不同场景(工作负载、硬件等)需要不同的最优配置。
  4.昂贵的评估成本:测试每种配置需要运行工作负载,非常耗时。
参数调优流程的主要组成部分:
  1. 参数选择
    参数类别:访问控制、查询优化器、查询执行器、后台进程、资源管理(CPU、内存、磁盘)
    选择方法:
    基于经验:依赖DBA经验
    基于排名:根据参数对性能的影响进行排名
  2. 特征选择
    工作负载特征:查询特征、并发特征、访问数据特征
    数据库指标:调优目标指标、运行时指标、表统计信息
    选择方法:工作负载编码、数据库指标选择
  3. 调优方法
    启发式方法:基于规则和基于搜索的方法
    贝叶斯优化方法:使用代理模型近似参数-性能关系
    深度学习方法:使用神经网络建模复杂关系
    强化学习方法:通过与数据库交互学习调优策略
  4. 迁移技术
    将先前调优任务的知识重用于新场景的技术
    包括工作负载映射、工作负载嵌入和模型集成方法

大概对ai4db主流问题有了一个了解,可以看一些比较细的分支的论文

查询优化

Selectivity Estimation for Range Predicates using Lightweight Models

Selectivity Estimation for Range Predicates using Lightweight Models - Slr - 博客园

Learned Cardinalities: Estimating Correlated Joins with Deep Learning

Learned Cardinalities: Estimating Correlated Joins with Deep Learning - Slr - 博客园

Plan-Structured Deep Neural Network Models for Query Performance Prediction

Plan-Structured Deep Neural Network Models for Query Performance Prediction - Slr - 博客园

posted @ 2025-03-28 02:30  Slr  阅读(76)  评论(0)    收藏  举报