LOADING

缓存加载中...

AI4DB

2025/4/9 课外

 

大综述。TODO:概括到每个论文 DONE

AI用于数据分类,交互/DB用于数据管理。很容易结合。

AI4DB

传统DB设计基于经验,要求手动调优(tune konb)与维护(maintain)。

基于学习的DB配置

旋钮调优(调参)

主要有四类:

  1. 基于搜索的调优
  • BestConfig:给定一个工作负载,从历史数据中找到相似的工作负载,返回与特定优化目标(场景)匹配的数据库配置参数值。
    给定n个旋钮,将每个旋钮的取值范围划分为k个区间。形成$k^n$个子空间。每次迭代,BestConfig从当前空间中随机选择k个样本,并选出性能最优样本记为$C_1$。
    下一轮迭代,从$C_1$临近的有节空间中采样。这样来逐步缩小搜索空间,得到一个优化旋钮组合。
    局限性:以随机采样+局部搜索,有限时间内无法找到全局最优。并且需要遍历整个搜索空间。
  1. 传统ML调优
  • OtterTune:利用高斯过程(GP)进行参数推荐,通过历史工作负载模板匹配和特征筛选(因子分析+K-means)实现自动化调优。
    给定训练数据(W, W0, C0, R),其中W为工作负载,W0为相似模板,C0是W0的推荐配置,C00是GP模型生成的新配置,R表示C0与C00的性能差异。模型通过最小化C0与C00的差异进行训练。
  1. 深度学习调优
    CDBtune核心挑战在于设计DRL的五个模块:
  • 环境:云数据库实例、
  • 状态:实例的内部指标、
  • 代理:调优模型,包含两个神经网络:
    Actor:输入状态指标,输出参数配置(动作);
    Critic:输入动作和状态指标,预测奖励,用于优化Actor;
  • 动作:参数调整。
  • 奖励:性能变化

Qtune升级:

  • 双状态深度强化学习(DS-DRL):同时嵌入工作负载特征(外部指标)和数据库状态(内部指标),支持细粒度调优;
  • 查询聚类与集群级调优:根据查询的“最佳”参数配置聚类,同一集群内查询共享配置,适应动态负载变化。
  1. 强化学习调优
    专注于优化特定参数。
  • IBTune:为单个数据库实例的缓冲池(Buffer Pool)大小调优设计。训练一个成对神经网络,输入当前实例与目标实例,输出预测响应时间。
  • RelM:多层次内存分配调优。引导式贝叶斯优化计算性能指标。深度确定性策略梯度调优。
索引顾问系统
  • 定义:索引收益$benefit(q,c)$,q:工作负载中的查询,c:每列的索引大小。空间预算B。

  • 调优:总收益最大,总索引大小小于B.

  • 挑战:假设索引:字典中虚拟索引信息,用查询优化器估算使用索引前后执行成本差。

  1. 离线索引选择

DBA生成代表性工作负载,静态分析后生成固定索引。

AutoAdmin:为查询生成候选索引集合,选择每条查询的最优方案。汇总Top-k方案,用贪心逐渐加直到B。
DB2 Advisor:建模为背包问题,动态规划求解。

  1. 在线索引选择

  2. 传统派:软索引自治COLT。和离线差不多。

  3. 半自动:WFIT:实时动态分析负载,依赖DBA判断是否对特定列建立索引,并反馈。

  4. ml:ITLCS学习分类器系统LCS,生成列级索引规则,遗传算法淘汰无效规则。

  5. dl:输入负载特征,列特征。基于马尔科夫决策过程,输出索引创建/删除动作。

视图顾问系统

核心任务:候选试图生成,选择。

  • 候选视图生成方法:

    • 基于频繁子查询的识别:启发式算法分解查询,生成多查询执行计划。通过成本模型评估复用潜力,寻找全局最优。
    • 子查询泛化与改写:合并相似视图、扩展视图功能、调整查询条件范围。
  • 视图选择:NP难问题

    • 离线优化(ILP,BIGSUBS) :整数线性规划。视图效用/存储占用,用类似遗传算法的变异操作筛选候选视图。
    • 在线框架CLOUDVIEWS:候选生成:查询计划图分解为高频子图,建模成背包问题选择top-k。
    • Rl
    • 视图驱逐:信用模型:信用=未来效用+重建成本。存储不足时,驱逐信用最低,类似lru.
SQL重写器

低效查询->等价、执行效率更高(push down……)

  1. 传统派:预定义规则集。

  2. 机器学习增强(强化学习):

  • 将SQL建模重写为多步决策,每步用agent评估成本,选择成本最低的并反馈更新策略。
  • 规则生成LSTM:输入查询模式、编编译器特性等特征。输出适配新场景改写规则。

基于学习的DB优化

基数/成本 评估

传统方法的局限性:无法捕获多列相关性,稀疏查询失效,复杂连接误差。

  1. 监督学习方法:
  • 混合模型mixture model:park等通过混合模型拟合谓词选择率。不支持复杂操作符。
  • 全连接神经网络FNN:Ortiz,Dutt。难捕捉连接相关性。
  • CNN:Kipf:多集合端到端学习连接技术,分解为表/连接/谓词。Neo:结合CNN与词嵌入编码查询计划。父节点难以复用子节点编码。
  • RNN:Ortiz:RNN处理左深计划树。Sun:树状LSTM编码子计划。依赖词嵌入编码,在线延迟高。
  1. 无监督:
  • 核密度估计KDE:Heimel等通过KDE轻量你和数据分布。不支持多表。
  • 自回归密度模型:自回归模型刻画联合分布,渐进采样处理倾斜数据。高维数据扩展性差。

改进:

  • 复杂查询:
  • 两步法(dl预测结果唯一率,唯一率与重复结果相乘,扩展传统技术估计)。
  • 动态env:在线增量/联邦学习。
  • 多目标:轻量化模型/知识蒸馏/硬件感知优化。
连接顺序选择
  1. 离线:
  • 数据库统计信息+历史执行,反馈优化。执行后对比实际成本与估值。
  • 状态独热编码(表存在性+操作选择)。使用MLP评估,DQN实现rl。
  • 连接树深度向量与查询特征向量,近端策略优化PPO生成顺序
  • 树lstm,两阶段训练(基于成本-结合延迟反馈)。
  1. 在线:
  • Eddy:查询拆成算子,动态路由元组执行(策略:低成本+低选择率)。泛化有限。
  • EddyRL:路由问题转化为RL(状态:元组进度,动作:算子选择,奖励:执行时间),最小化成本。
  • SkinnerDB:UCT(博弈树搜索)算法,累计遗憾最小化,时间分片合并结果后反馈。
  1. 端到端优化器

未来方向:轻量化,自适应混合,跨库迁移泛化。

基于学习的DB设计

学习型索引/数据结构设计
  1. B+树替代
  • 学习型B+树:将索引视为模型,用累计分布函数CDF预测键的位置。
  • FItting:tree:通过预留空间支持插入,提供严格误差边界。
  • ALex-index:分散预留空间,直接插入预测位置。
  1. 工作负载感知
  • Doraemon:通过复制高频查询优化模型训练,重用预训练模型适应相似数据分布。
  1. 二级索引
  • HermitTRS树捕捉列相关性,用线性回归映射目标。
  1. 哈希:CDF近似哈希,均匀分布键。
  2. 布隆过滤器:
  • 三层三明治:传统bloom(首层过滤)+神经网络(减少误报)+传统bloom(保证没有假阴性)
  • 多维数据:字符集RNN降维,KL散度优化分类阈值
  • 动态更新支持:少样本学习。
  1. 空间与高维数据索引
  • 空间索引:ZM:z-order曲线映射高维至一维,神经网络拟合分布预测位置。
  • 高维最邻近搜索NNS:深度学习哈希,端到端监督CNN,结合相似性与比特率损失最小化hash冲突。平衡图分区:KaHIP分区KNN图,神经网络预测分区概率。
  1. 键值存储设计
  • 自动优化架构:基础组件(ptr、area)构建设计空间,学习型成本模型(梯度下降……)自动选择最优结构。
学习型事务管理
  1. 预测:QB5000
  • 预处理:记录查询特征(语法树,到达率),聚合相同模板的查询
  • 聚类模块:改进的DBSCAN按到达率相似性对查询模板聚类。
  • 预测器:六种模型(ARIMA,LSTM)预测集群内查询的到达率模式,适应动态负载。
  1. 调度:
  • 冲突概率建模:监督学习分类,二分类(输入事务特征向量对,输出中止标签。)dataset:事物提交/中止日志。特征表示:事务向量化。
  • 动态队列分配:最大吞吐优化,可接受中止率下,高冲突概率事务对安排至并发执行位置。

基于学习的DB监测

健康监控DHM
  1. 根因诊断:
  • 离线:提取历史慢查询,基于CPU使用率、TPS等聚类,人工根因标注。
  • 在线:匹配新慢查询至现有集群,未命中则创建新集群请求人工标注。
  1. 主动监控:P-STore:结合负载预测与弹性监控,动态调整监控频率。
活动检测DAM
  1. 传统:trigger全量记录活动,高存储与通信开销。
  2. ml:多臂老虎机:高风险活动选择建模为决策问题,平衡利用(已知高风险策略)/探索(新策略发现),训练最优策略。

活动追踪:聚焦高风险/安全审计。

性能预测
  1. 传统:仅关注io,忽略资源竞争/操作符交互。
  2. ml:
  • 端到端优化:建模并发查询父子操作符交互与并行计划,预测延迟。
  • 图嵌入:建图:v操作符,e数据传递/资源竞争。使用GCN

基于学习的DB安全

敏感数据发现
  1. 基于访问频率评分:高频访问记录视为敏感。
  2. 拉普拉斯噪声:保护隐私,向评分添加独立拉普拉斯噪声,递归采样k个未被选中模式,调整噪声率拟合真实分布。选择噪声扰动后频率最高模式。
访问控制
  1. 基于目的的动态控制:
  • 学习合法访问目的,根据操作类型和数据内容动态生成访问策略。
  • 监督学习识别合法请求。
SQL注入
  1. 分类树:
  • query中提取token,构建分类树预测风险等级。
  • 依赖历史攻击日志,泛化有限。
  1. 模糊神经网络FNN:
  • 模糊规则+神经网络:提取攻击模式
  • 解决小样本问题。

DB4AI

声明式语言模型

混合语言模型

BIGQueryML

  1. 任务拆分:请求拆为AI操作+DB操作,分别执行。
  2. 数据迁移:ETL管道频繁传输数据。
统一语言模型

MADLib

  1. 原生矩阵计算:稀疏矩阵库,线性代数运算。
  2. AI操作符抽象:封装数据采样、模型定义、训练与推理为SQL函数。
  3. 迭代训练:虚拟表+试图动态更新param.
拖拽式界面
  1. 虚拟表:数据映射为交互式界面,支持公式、透视表等
  2. 自动sql转换:操作转换为sql,触发db内ml

数据治理

数据发现
  1. 传统:基于规则扩展表属性/数据集级别管理(存储模式/来源信息)
  2. 知识图谱Aurum企业知识图谱(EKG):超图建模。灵活查询支持:语义/模式/数据血缘的复杂查询。
数据清洗
  1. 任务导向ActiveClean:迭代式
  • 采样器:梯度变化估计选择高价值剧本。
  • 清洗器:人工或规则修复脏数据
  • 更新期:增量更新模型参数,减少全量计算开销。
数据标注
  1. 专家标注:高精度成本昂贵。
  2. 众包平台:低成本质量差,需要设计冗余和校验机制。
  3. 远程监督:知识库生成若标签,平衡成本效果。
数据沿袭
  1. 后向追溯:定位输出结果的源头输入(debug)
  2. 前向影响:追踪输入的所有衍生输出(脏数据隔离)。
  • 惰性方法:按需执行沿袭查询,无存储开销,计算延迟高。
  • 急切线性捕捉:构建沿袭图谱加速查询,存储路径信息,空间换时间。
  • 细粒度系统:轻量索引嵌入db内核,低开销实时捕获数据血缘。

模型训练

特征选择
  1. 传统:暴力枚举特征子集
  2. ml:
  • 批量处理+物化:缓存中间结果,减少重复计算。
  • 主动学习:基于模型反馈动态选择高价值特征子集,评估最优。
模型选择
  1. 传统:网格搜索,经典模型超参数

  2. 神经架构搜索NAS:自动设计网格结构(层数/连接方式)+超参数(学习率/正则化)

  • 吞吐量优化:并行策略:任务并行/参数服务器(分布式参数更新)/模型跳跃。
  • 数据库集成:数据分布+存储优化 实现加速。
模型管理

分类:GUI,命令行

  • 版本控制:超参数/数据集/代码版本
  • 性能分析:不同模型的精度/速度。
  • 协作分享:团队内。
硬件加速
  • 数据库集成框架:
    • DAnA:strider机制绕过CPU,直接从buffer pool读取数据,加速特征工程与训练。
    • ColumnML:列式存储优化,FPGA实时加密,分区随机坐标下降SCD提升广义线性模型训练速度。

模型推理加速

算子支持
  • 原生扩展:sysML
    • 矩阵操作优化:矩阵运算编译成底层聚合算子组成的DAG,代数重写+算子顺序调整优化执行。
    • 并行处理:按列分块,多核并行。
算子选择
  • 资源感知优化
    • 内存估算选择:估算单块/分块矩阵内存消耗,选择执行时间最短的组合。Spark集成,算子转换为mapreduce。
    • 检查点注入:持久化读取后插入检查点,动态移除低效算子
执行加速
  1. 内存加速:列式存储优化
  • 压缩/加密实时处理:使用FPGA在内存中直接解压加密的列数据,减少CPU转换开销。
  • 分区随机坐标下降(SCD)​​:提升广义线性模型(GLM)训练效率,增强缓存局部性。
  1. 分布式加速:任务并行/负载均衡
  • 分块路由:大矩阵分发至不同节点并行计算(矩阵乘法链)
  • 流水线并行:分布式框架中,重叠数据传输/计算。

未来……

AI4DB

训练数据不足:数据敏感性/覆盖场景少
  • 小样本学习,合成数据生成
动态适应性:新数据集/硬件环境/数据库系统/动态数据
  • 迁移学习,在线学习
模型收敛性:未收敛导致决策错误
  • 融合规则引擎,动态切换模型与规则。
多模态OLAP:传统relational无法满足图/时序/空间数据复杂需求
  • GNN,ST模型,数据库算子融合
OLTP优化:高并发事务冲突调度
  • RL建模,分布式调度

DB4AI

库内训练:模型存储安全(多租户),动态数据更新(增量训练)
  • 加密模型存储,联邦学习
数据库加速ai:索引与物化视图筛选高价值样本
  • 基于内容的实例搜索/特征索引
ai优化器:AI算子集成到数据库内核,分布式优化
  • AI算子下推,代价估计模型
容错学习:分布式训练中节点故障导致任务失败
  • 事务日志回滚,检查点容灾。

混合系统Hybrid

关系模型+张量模型:CPU擅长关系操作,AI擅长张量计算
  • 统一数据模型(标量/向量/张量)、异构调度
混合推理优化:联合优化SQL与AI预测
  • AI push down,AI物化试图
端到端混合:AISQL声明式语言/统一优化器/分布式执行引擎
  • 语言:扩展SQL支持AI算子
  • 存储:列式存储优化张量数据,支持压缩与加密。
  • 执行:CPU+GPU协同。