数据库( Database )或数据库管理系统( Database management systems )是按照数据结构来组织、存储和管理数据的仓库。目前数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。

VIP内容

数据库和人工智能(AI)可以相互受益。一方面,人工智能可以使数据库更加智能(AI4DB)。例如,传统的经验数据库优化技术(例如,成本估算、联结选择、旋钮调优、索引和视图顾问)不能满足大规模数据库实例、各种应用程序和多样化用户的高性能需求,特别是在云上。幸运的是,基于学习的技术可以缓解这个问题。另一方面,数据库技术可以优化AI模型(DB4AI)。例如,AI很难部署,因为它需要开发人员编写复杂的代码和训练复杂的模型。数据库技术可用于降低使用人工智能模型的复杂性,加速人工智能算法,并在数据库内提供人工智能能力。DB4AI和AI4DB近年来得到了广泛的研究。在本教程中,我们回顾了关于AI4DB和DB4AI的现有研究。对于{AI4DB},我们回顾了基于学习的数据库配置、优化、设计、监控和安全方面的技术。对于{DB4AI},我们回顾了面向AI的声明语言、数据治理、训练加速和推理加速。最后,提出了AI4DB和DB4AI的研究挑战和未来发展方向。

#背景#

在过去的五十年中,数据库(DB)和人工智能(AI)技术都得到了广泛的研究。首先,数据库系统已在金融、医疗等多个领域中得到使用,其通过提供声明式语言、查询优化、ACID等机制,满足不同场景的数据管理需求。其次,人工智能技术借助算法、数据集、硬件等方面的进步,近三十年取得了飞速发展。二者的交叉技术通过结合数据库中系统设计、查询优化、数据管理等方面的技术和人工智能从历史数据中学习的优势,帮助解决各自的问题。一方面,人工智能可以使数据库变得更加智能(AI4DB)。例如,传统的经验数据库优化技术(例如,经验公式,启发式算法)不能满足大型数据库实例,各类应用程序和用户(尤其是云数据库)的高性能要求。幸运的是,基于学习的技术可以缓解此问题。例如,深度学习可以提高代价估算的质量(关系复杂),深度强化学习可以自动调整数据库参数(样本小)。另一方面,数据库技术可以优化AI模型(DB4AI)。目前AI落地要求开发人员根据不同的硬件环境编写代码并进行大量训练。数据库技术可用于降低使用AI模型的复杂性,加速AI算法,并在数据库内部提供AI功能。

#AI for DB#

传统数据库设计基于经验方法和规范,并且需要人工投入(如DBA)来调整和运维数据库[1][2]。人工智能技术通过自动探索远高于人工的设计空间,并在历史数据中积累经验,可以取得优于启发式算法的表现和优于人工选择的开销。我们将使用AI优化数据库的现有技术分类如下:

◆ 数据库智能配置:数据库配置主要针对数据库实例启动和工作过程中的“元信息”进行优化,如系统参数、索引表、物化视图等。传统数据库配置高度依赖人力运维或经验规则,如需要DBA来构建和维护索引和视图。学习型数据库配置借助探索-优化等机制,可以针对特定场景探索高质量的配置方案,包括SQL重写、参数调优[3][4]、视图推荐[5]等。

◆ 数据库智能优化:数据库优化器主要包括查询重写、基数估计、代价估计、连接顺序选择。然而,传统技术基于固定规则,处理多表连接等复杂查询会有较大误差。比如,线性回归等方法无法有效地捕获不同列/表之间的相关性,因此无法提供高质量的估计。有一些基于长短期记忆网络的方法,可以学习算子间的数据传递关系,帮助更好的估计执行代价[6],选择合适的查询计划[7]。

◆ 数据库智能设计:传统的数据库由数据库架构师根据他们的经验进行设计,但是数据库架构师只能探索数量有限的可能设计空间最近,提出了一些基于学习的自我设计技术,包括学习型索引[8]、数据结构[9]、事务管理[10]等。

◆ 数据库智能诊断:数据库可以捕获数据库运行时指标,例如读/写延迟,CPU 内存使用情况,从而可以在异常发生时(例如性能下降和数据库攻击)提醒管理员。但是,传统的监视方法依靠数据库管理员来监视大多数数据库活动并报告问题,这是不完整且效率低下的。因此,提出了一种基于机器学习的技术来优化数据库运维,包括表现预测[11]、进程控制[12]、活动监控[13]等。

#DB for AI#

尽管AI可以解决许多现实世界中的问题,但是由于现有AI系统的移植性性较差,且难以为普通用户所使用,因此没有像DBMS这样广泛使用的AI系统可以在不同领域中得到应用。为了解决这个问题,我们下面介绍数据库技术如何降低AI使用的门槛。

◆ 声明性的语言模型:面向AI的声明性语言模型通过扩展SQL语法,可以扩展到AI模型上,使AI模型更易于使用。目前主流SQL扩展方法包括两种:混合语言模型会根据SQL关键字判断是DB还是AI操作,然后分别下发给相应的解析器解析,可以灵活支持不同AI平台,但是效率较低;另一种统一模型则在数据库内核中原生支持AI算子[14],如数据收集、迭代训练等,可以提高AI执行效率,但是移植性较差。

◆ 大规模数据治理:数据质量对于机器学习非常重要。数据治理可以提高数据质量,包括数据发现,数据清理,数据集成和数据血缘。(1) 数据发现。借助领域专家和知识库[15],我们可以适当地利用人力或现有知识来标记大量ML算法的训练数据,增强发现相关数据的能力。(2) 数据清洗。脏数据会严重影响训练效果。数据清洗和集成技术可以检测和修复脏数据,并集成来自多个源的数据以生成高质量数据。(3) 数据血缘。数据血缘描述了模型输入和输出之间的关系,对于确保ML模型正常工作很重要。使用诸如多表连接和图映射等数据库技术,我们可以向后和向前跟踪数据关系。

◆ 大规模模型训练:模型训练旨在训练一个好的模型用于在线推理。然而,模型训练是一个耗时且复杂的过程,包括特征选择,模型选择,模型管理和硬件加速。(1) 特征选择。选择和评估可能的功能非常耗时。我们可以借助批处理、物化视图等技术来解决此问题[16]。(2) 模型选择。它旨在从大量可能的模型中选择合适的模型(和参数值)。一些数据库并行技术可以加快此步骤,包括批量同步并行、模型多跳并行、参数服务器等。(3) 模型管理。模型训练是一个反复试验的过程,需要维护历史模型和参数,因此有必要设计一个模型管理系统来跟踪,存储和搜索ML模型。我们回顾了基于GUI的[17]和基于命令的[18]模型管理系统。(4) 硬件加速。诸如GPU、FPGA之类的新硬件常被用来加速模型训练。我们分别在行存储[19]和列存储[20]数据库中介绍硬件加速技术。

AI4DB和DB4AI的技术为AI和DB领域带来新的机遇的同时,也带来了新的挑战。AI4DB方面,对于数据库这类高可靠系统,需要解决AI算法由于黑盒、过拟合等问题导致的表现退化问题;此外,现有AI4DB技术主要集中在数据分析型查询,如何应对事务处理这类即时性查询,也是一个重要的挑战。DB4AI方面,尽管将AI模型靠近数据侧,可以提高AI执行和使用效率,但也存在算子差异性大、难以构建AI&DB统一优化器等问题。

References

[1] G. Li, X. Zhou, and S Li. Xuanyuan: An ai-native database. IEEE Data Eng. Bull., 42(2):70–81, 2019.

[2] J. Chen, Y. Chen, and G. L. et al. Data management at huawei: Recent accomplishments and future challenges. In ICDE, 2019.

[3] J. Zhang, Y. Liu, K. Zhou, G. Li and et al. An end-to-end automatic cloud database tuning system using deep reinforcement learning. In SIGMOD, 2019.

[4] G. Li, X. Zhou, and S. L. et al. Qtune: A query-aware database tuning system with deep reinforcement learning. VLDB, 2019.

[5] H. Yuan, G. Li, L. Feng, J. Sun, and Y. Han. Automatic view generation with deep learning and reinforcement learning. In ICDE, 2020.

[6] J. Sun and G. Li. An end-to-end learning-based cost estimator.

PVLDB, 13(3):307–319, 2019.

[7] X. Yu, G. Li, and C. C. et al. Reinforcement learning with tree-lstm

for join order selection. In ICDE 2020, pages 196–207, 2019.

[8] T. Kraska, A. Beutel, and E. H. C. et al. The case for learned index structures. In SIGMOD, pages 489–504, 2018.

[9] S. Idreos and et al. Design continuums and the path toward self-designing key-value stores that know and learn. In CIDR, 2019.

[10] M. L¨ uhring, K. Sattler, K. Schmidt and et al. Autonomous management of soft indexes. In ICDE, 2007.

[11] X. Zhou, J. Sun, G. Li, and J. Feng. Query performance prediction

for concurrent queries using graph embedding. In VLDB, 2020.

[12] H. Kaneko and K. Funatsu. Automatic database monitoring for process control systems. In IEA/AIE 2014, pages 410–419, 2014.

[13] M. Ma, Z. Yin, and S. Z. et al. Diagnosing root causes of intermittent slow queries in cloud databases. In PVLDB, 2020.

[14] J. M. Hellerstein, C. R´e, and F. S. et al. The madlib analytics library or MAD skills, the SQL. PVLDB, 5(12):1700–1711, 2012.

[15] G. Li, J. Wang, Y. Zheng, and M. J. Franklin. Crowdsourced data management: A survey. IEEE Trans. Knowl. Data Eng., 28(9):2296–

2319, 2016.

[16] M. Kunjir and S. Babu. Thoth in action: Memory management in modern data analytics. PVLDB, 10(12):1917–1920, 2017.

[17] M. Chavan, R. Guravannavar, K. Ramachandra and et al. Dbridge: A program rewrite tool for set-oriented query execution. In ICDE, 2011.

[18] M. Vartak, H. Subramanyam, W. Lee and et al. Modeldb: a system for machine learning model management. In SIGMOD, 2016.

[19] D. Mahajan, J. K. Kim, J. Sacks and et al. In-rdbms hardware acceleration of advanced analytics. PVLDB, 11(11):1317–1331, 2018.

[20] K. Kara, K. Eguro, C. Zhang, and G. Alonso. Columnml: Column-store

machine learning with on-the-fly data transformation. PVLDB, 2018.

成为VIP会员查看完整内容
0
23

最新论文

Traffic bottlenecks are a set of road segments that have an unacceptable level of traffic caused by a poor balance between road capacity and traffic volume. A huge volume of trajectory data which captures real-time traffic conditions in road networks provides promising new opportunities to identify the traffic bottlenecks. In this paper, we define this problem as trajectory-driven traffic bottleneck identification: Given a road network R, a trajectory database T , find a representative set of seed edges of size K of traffic bottlenecks that influence the highest number of road segments not in the seed set. We show that this problem is NP-hard and propose a framework to find the traffic bottlenecks as follows. First, a traffic spread model is defined which represents changes in traffic volume for each road segment over time. Then, the traffic diffusion probability between two connected segments and the residual ratio of traffic volume for each segment can be computed using historical trajectory data. We then propose two different algorithmic approaches to solve the problem. The first one is a best-first algorithm BF, with an approximation ratio of 1-1/e. To further accelerate the identification process in larger datasets, we also propose a sampling-based greedy algorithm SG. Finally, comprehensive experiments using three different datasets compare and contrast various solutions, and provide insights into important efficiency and effectiveness trade-offs among the respective methods.

0
0
下载
预览
Top