Machine Learning for Databases


文章地址

ABSTRACT

        已经提出了机器学习技术来优化数据库。例如,传统的经验数据库优化技术(例如,成本估算、连接顺序选择、旋钮调整、索引和视图顾问)无法满足大规模数据库实例、各种应用程序和多样化用户的高性能要求,尤其是在云上。幸运的是,基于机器学习的技术可以通过明智地选择优化策略来缓解这个问题。在本教程中,我们将基于数据的任务分类为三个可以通过不同机器学习模型进行优化的典型问题,包括NP难问题(例如,旋钮空间探索、索引/视图选择、离线优化的分区键推荐;在线优化的查询重写、连接或排序选择),回归问题(例如,成本/基数估计、索引/视图效益估计、查询延迟预测)和预测问题(例如,查询工作负载预测)。我们回顾了现有的基于机器学习的技术来解决这些问题,并提出了研究挑战。

1 INTRODUCTION

        近年来,人们广泛研究了机器学习技术来优化数据库。例如,传统的数据库优化技术(例如,成本估算、连接或顺序选择、旋钮调整、索引和视图顾问)基于经验方法和规范,需要人工参与(例如DBA)来调整和维护数据库。因此,现有的经验技术无法满足大规模数据库实例、各种应用程序和多样化用户的高性能需求,尤其是在云上。幸运的是,基于学习的技术可以缓解这个问题。例如,深度学习可以提高成本估计的质量,强化学习可以用于优化连接顺序选择,深度强化学习可以用于调整数据库旋钮。

Tutorial Overview
        我们计划提供一个1.5小时的教程,全面回顾现有的数据库ML技术。
(1) 背景和动机(10min)
        我们首先介绍了基于学习的技术的背景和动机。
(2) 优化NP问题的机器学习(30分钟)
        许多数据库优化问题可以建模为探索NP难问题的最优解。然而,传统的基于经验或启发式的方法将陷入局部最优。幸运的是,基于机器学习的技术可以有效地学习探索模型,并利用学习的模型优化NP难问题。这里有两个主要挑战。首先,根据场景需求选择合适的模型是一项挑战。第二,有效特征的选择和表征具有挑战性。为了提出解决这些挑战的现有解决方案,我们在探索在线或离线解决方案的基础上,将NP难问题分为两种情况。(1.1)离线探索:首先训练机器学习模型来学习探索策略,然后在在线探索过程中对模型进行微调,例如旋钮调整、索引顾问、视图顾问、连接顺序选择和分区键推荐的深度强化学习;(1.2)在线探索:它预先学习一个模型,并利用该模型实现在线探索,例如,蒙特卡洛树搜索用于查询重写和连接顺序选择。
(3) Machine learning for Regression Problems (30min)
        许多数据库问题可以建模为回归问题。基数估计旨在估计查询的基数,可以使用回归模型(例如深度学习模型)。索引/视图效益估计旨在估计创建索引(或视图)的效益,回归模型可用于估计效益。延迟预测旨在估计执行查询的执行时间,回归模型可用于根据查询和并发特征估计性能。
(4) Machine learning for Prediction Problems (10min)
        通过预测传入查询来主动优化数据库也至关重要。这些预测问题识别当前工作负载模式,并重新安排查询执行,以最大限度地提高查询性能或资源使用率。对于此类预测问题,有一些机器学习方法,例如用于趋势预测的基于聚类的算法,用于工作量调度的强化学习。
(5) Challenges and Opportunities (10min)
        最后,我们提供了研究挑战和机遇。
Target Audience
观众包括来自研究界和工业界的VLDB与会者,他们对数据库优化和机器学习感兴趣。本教程将是自包含的,我们不需要任何机器学习的先验背景知识。
Difference with other Tutorials
有关于机器学习和数据库的教程。与之不同的是,我们重点研究了ML4DB的基本问题以及如何选择合适的机器学习模型来解决这些问题。
Related Works from Authors
作者在基于学习的数据库配置、优化器、监控和自治系统方面做了一些工作。

Table 1: Machine Learning Techniques for Databases

在这里插入图片描述

2 TUTORIAL OUTLINE

2.1 Optimizing NP-hard Problems

        许多数据库优化问题可以建模为优化NP难问题。我们可以将这些NP难问题进一步分类为离线优化和在线优化。前者不关心推理时间(推理时间可以是秒甚至分钟);而后者具有即时推理要求(例如,推理时间应为毫秒)。因此,前者训练机器学习模型以学习探索策略,然后在在线探索期间微调模型,例如,旋钮调整的深度强化学习、索引顾问、视图顾问和分区键建议;后者预先学习模型,利用该模型实现在线探索,例如,蒙特卡洛树搜索用于查询重写和连接顺序选择。

Offline Optimizing NP-hard Problems
        我们首先训练一个模型,然后使用该模型优化NP难问题。该模型可以在优化NP难问题的过程中进行微调,因此可能会很重。
(1) Knob space exploration
        数据库有大量旋钮,传统数据库高度依赖DBA来调整旋钮,以支持不同场景下的旋钮调整。最近,提出了基于学习的技术来提高调优性能或资源利用率。有三种类型的模型。(i) 基于梯度的模型像高斯过程被广泛用于探索基于梯度下降的局部最优旋钮设置。此外,张等人跨实例共享学习的工作负载编码器,以提高泛化能力;(ii)类似地,深度学习模型估计所选旋钮设置的性能。它们将选定的旋钮和内部指标作为输入,并输出预测的响应时间;(iii)基于强化学习的方法将旋钮调谐作为一个试错过程,其中代理输入调谐因子(例如,内部指标、查询),输出适当的旋钮,并依赖执行结果来学习调谐策略。我们还总结了这三种模型的优缺点,如表1所示。
(2) Index/View selection
        数据库索引和视图对于实现高性能至关重要。但是,推荐和构建包含大量列/表和查询/子查询的适当索引/视图的成本很高。因此,有一些强化学习模型推荐索引和物化视图。例如,他们将视图选择形式化为整数规划问题,并使用DDQN等RL模型来解决该问题,其中状态表示查询和视图特征,操作是添加/删除视图。
(3) Database Partition
        传统方法启发式地选择列作为分区键(大多数为单列),无法平衡负载平衡和访问效率。一些工作还利用强化学习模型探索不同的分区键,并实现全连接神经网络来估计分区效益。RL模型对表、查询和现有分区特征进行编码,并迭代选择新的分区键或复制表以优化整体性能。

Online Optimizing NP-hard problems
        与离线NP问题相比,一些数据库问题(如查询重写、在线计划优化)具有即时反馈要求(如毫秒内优化)。因此,它不能容忍长时间更新模型。以查询重写为例,传统方法依赖启发式规则或贪婪算法快速选择查询计划,但无法保证优化质量,尤其是在查询复杂时。因此,我们希望选择能够(i)在优化过程中自适应学习策略和(ii)平衡性能和效率的机器学习模型。
(1) SQL rewriter
        基于规则的查询重写方法可能无法找到高质量的规则和适当的规则顺序。相反,可以使用学习的树搜索算法(例如MCT)明智地选择适当的规则,并在良好的环境中应用规则。
(2) Join order selection
        一个SQL查询可能有数百万甚至数十亿个可能的计划,有效地找到一个好的计划非常重要。传统的启发式方法无法找到数十个表的最优计划,动态规划探索巨大的计划空间成本高昂。因此,有一些基于深度强化学习的方法可以自动选择好的计划。然而,强化学习模型需要很长的时间(例如,小时)来学习特定场景(例如,工作负载、模式)的连接策略。因此,有一些工作利用树搜索算法(如MCT)在执行查询时自适应学习最优连接策略。

2.2 Optimizing Regression Problems

Regression Problems
        一些数据库问题,如基数估计和索引/视图收益估计,可以建模为回归问题,将输入变量(例如数据元组、查询特征)拟合到估计特征中。传统方法基于经验函数来估计执行成本或索引收益,无法处理复杂场景(例如多个指数),且准确性较低。因此,我们希望开发深度概率模型以实现高估计精度。
(1) Cardinality/Cost estimation
        数据库优化器依赖基数和成本估计来选择优化的计划,但传统技术无法有效地捕获不同列/表之间的相关性,因此无法提供高质量的估计。最近,提出了基于深度学习的技术(例如,CNN、RNN、混合模型),通过使用深度神经网络捕获数据和查询相关性来估计成本和基数。根据不同的输入特征,我们可以将现有的基于学习的工作分类为查询驱动模型,这些模型学习从查询到其基数的映射,数据驱动模型学习数据分布并使用分布估计查询的基数,以及将查询模型和数据模型相结合的混合模型。
(2) Index/view benefit estimation
        为了验证所选索引/视图的有效性,实际构建索引(或物化视图)和运行工作负载将非常耗时。因此,有一些基于学习的方法用神经网络代替经验方程来估计指数/视图效益,即神经网络输入有/没有索引/视图的计划,并输出降低的成本。
(3) Query latency prediction
        传统的方法依赖于数据库管理员来监控大多数数据库活动并报告问题,这是不完整和低效的。因此,提出了基于机器学习的技术来自动预测查询性能。例如,基于图嵌入的工作首先将执行状态描述为一个图模型,其中顶点是正在执行的算子,边是算子相关性(例如,表共享/冲突)。然后应用图卷积网络输入图,并学习图中每个顶点的执行时间。

2.3 Optimizing Prediction Problems

Machine learning for Prediction Problems
        查询工作负载预测(或事务预测)对于数据库优化(例如,资源控制、事务调度)也很重要。传统的工作量预测方法是基于规则的。例如,基于规则的方法使用数据库引擎的领域知识(例如,内部延迟、资源利用率)来识别与工作负载特征(例如,内存利用率)相关的信号。然而,当工作负载发生变化时,基于规则的方法会浪费大量时间来重建统计模型。因此,基于学习的方法可以预测不同工作负载的未来趋势。首先,他们根据查询结构和到达率对工作负载特征进行建模。其次,它们基于类似DBSCAN的聚类算法对到达率相似的查询进行聚类。第三,它们预测每个集群中查询的到达率模式。此外,对于事务管理,传统技术基于静态事务协议,例如OCC、PCC、MVCC,这可能导致次优。因此,有一些研究利用学习的模型来预测和安排交易。例如,在Q-learning中,它们将内存块的状态作为输入特征,并输出一起执行的查询。

2.4 Open Problems

        利用ML技术优化数据库有几个研究挑战。
(1) Model Selection
        其目的是选择合适的模型。有两个挑战。首先,ML模型有不同的类型(例如,正向进给、顺序、图嵌入),尝试这些模型并手动调整参数效率很低。其次,很难评估学习模型在大多数场景中是否有效,对于这些场景,需要验证模型。
(2) Training data
        大多数基于学习的模型需要大规模、高质量、多样化的训练数据来实现高性能。然而,很难获得训练数据,因为数据要么是安全关键的,要么依赖于DBA。
(3) Adaptability
        基于学习的模型通常针对特定场景进行训练,适应性是一个很大的挑战,例如,适应动态数据更新、新工作负载、数据集、硬件环境和其他系统。
(4) Model convergence
        重要的是要知道学习模型是否可以收敛。如果模型无法收敛,我们需要提供替代方法,以避免做出不准确的决策。
(5) Learning for OLAP
        传统的OLAP侧重于关系数据分析。然而,在大数据时代,出现了许多新的数据类型,例如图形数据、时间序列数据、空间数据,这就需要新的数据分析技术来分析这些多模型数据。
(6) Learning for OLTP
        事务建模和调度对于OLTP系统至关重要,因为不同的事务可能存在冲突。然而,它不能自由地建模和调度事务,它需要更高效的模型,可以在多个核心和多台机器中即时建模和调度事务。

3 BIOGRAPHY

        李国良,清华大学计算机系教授。他的研究兴趣主要包括数据清理和集成以及数据库的机器学习。他获得了VLDB 2017年早期研究贡献奖、TCDE 2014年早期职业奖、CIKM 2017年最佳论文奖。
        周宣和,清华大学计算机系博士生。他的研究兴趣在基于人工智能/机器学习的数据管理。
        曹磊,麻省理工学院CSAIL的博士后助理。师从Samuel Madden和Michael Stonebraker教授。在此之前,他曾在IBM T.J.Watson研究中心担任研究人员。他在伍斯特理工学院获得了计算机科学博士学位,由Elke Rundensteiner教授指导。他专注于为数据科学家开发端到端工具。

ACKNOWLEDGMENTS

        本研究得到了中国国家科学基金会(61925205,61632016)、北京国家信息科学技术研究中心、华为、好未来教育的支持。李国良和周宣和是通讯作者。

REFERENCES

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值