暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
A
AI4DB
编辑
简介:AI4DB也就是AI for DB, 是指用AI使能数据库,从而获得数据库更好的执行表现、实现数据库系统的自治、免运维等。主要包括自调优、自诊断、自安全、自运维、自愈等子领域。
简介:AI4DB也就是AI for DB, 是指用AI使能数据库,从而获得数据库更好的执行表现、实现数据库系统的自治、免运维等。主要包括自调优、自诊断、自安全、自运维、自愈等子领域。
产品概览 用户评价

作用或背景:

传统的数据库设计仍然基于经验方法和人工规则, 需要大量的人员参与(如DBA)来调整和维护数据库.人工智能技术可以从3个方面提升数据库可用性.

首先, 数据库中有数百个参数, 需要DBA手动调整以适应不同的场景.最近, 数据库社区试图利用机器学习技术自动调整参数, 可以获得比DBA更好的结果;

第二, 数据库优化器依赖于代价和基数估计, 但是传统的技术不能提供准确的估计.最近, 人们提出了基于深度学习来估计查询代价和基数, 也获得了更好的结果, 此外, 基于学习模型的优化器、索引推荐、自动视图生成也为数据库设计提供了可选的优化机会;

第三, 传统数据库是由数据库架构师根据经验设计.最近, 一些基于学习的自设计技术, 如学习型索引、学习型NoSQL数据库设计等, 可以利用人工智能技术来优化数据库, 使数据库更智能。

 


技术源头:

技术源头有两个,一是AI,一是DB。

AI(人工智能)

计算机AI起源于1950年代,1954年,Alan Mathison Turing 在文章中正式提出了图灵测试。图灵测试指出,如果第三者无法辨别人类与人工智能机器反应的差异,则可以论断该机器具备人工智能。这让机器产生智能这一想法开始进入人们的视野。

DB(数据库)

1961年,GE(通用电气公司)开发了IDS,这是世界上第一个网状数据库管理系统。

1970年,Edgar  F. Codd(埃德加·科德),发表了论文《大型共享数据库数据的关系模型》(A Relational Model of Data for Large Shared Data Banks)。该论文提出了关系数据模型,奠定了关系模型的理论基础,科德也被誉为“关系数据库之父”。

1974年,IBM公司的San Jose 实验室,启动了System R项目,其目标是论证一个全功能RDBMS(关系数据库)的可行性。该项目结束于1979年,它是SQL 语言的第一次实现。

1977年6月,Larry Ellison(拉里埃里森)与人在硅谷共同创办了SDL(软件开发实验室)。1978年,SDL发布了Oracle 1 版本。

AI4DB的起源:

2017甲骨文全球大会上,甲骨文发布了全球首款100%“无人驾驶”的数据库——Oracle自治式数据库云(Oracle Autonomous Database Cloud),以及可实时检测与修复攻击的自动化网络防御应用程序。基于机器学习,Oracle自治式数据库云可以实现完全的自动化,可让数据库在运行时自动升级、打补丁与自行调整,无需人力管理。

2019年,openGauss布,其中包括Predictor、X-Tuner、Sqldiag等3项AI特性。Predictor通过不断学习数据库内收集的历史执行信息,实现计划的执行时间预测功能。X-Tuner 通过结合深度强化学习和启发式算法,实现在无需人工干预的情况下,获取最佳数据库参数。

2020年VLDB年会,收录了多篇AI for DB论文,包括基于学习的代价估计、索引选择、负载调度等等。机器学习在解决复杂数据库问题中逐渐崭露头角。


国外技术现状:

国外AI4DB的主要包括以下技术研究方向:

1.     Learning-based Database Configuration (基于学习的数据库配置)

  • Knob Tuning(旋钮或称参数调优)
  • Index/View advisor (索引或视图推荐)
  • SQL Rewriter (SQL重写)

2.     Learning-Based Database Optimization (基于学习的数据库性能优化)

  • Cardinality/Cost Estimation (基数/代价预估) → 捕捉属性列之间的关系,选取最优查询计划
  • Join order selection (连接顺序选取)
  • End-to-end Optimizer (端到端的优化器)

3.     Learning-Based Database Design (基于学习的数据库设计)

  •     Learned indexes (基于学习的索引,而不单单是传统的B+树索引)
  •     Learned data structure design(基于学习的数据结构设计)
  •     Learning-based Transaction Management (基于学习的事务管理,使用AI技巧来调度事务,意图取代OCC,PCC,2PC)

4.     Learning-Based Database Monitoring (基于学习的数据库监测)

  •     基于AI技术监测数据库异常,优化数据库运维

5.     Learning-Based Database Security (基于学习的数据库安全)

  •     传统的数据库隐私保护技术多是data masking(数据掩码)和auditing(审计),基于AI算法的技术可以去更好地解决发掘敏感数据、检测异常、控制访问权限、避免SQL注入等问题

另外,2019年初,谷歌联合麻省理工学院、布朗大学的研究人员共同推出了新型数据库系统SageDB,并撰写了一篇论文详述SageDB的设计原理和性能表现。论文中提出学习模型可以渗透到数据库系统的各个方面,提供了一种构建数据库系统的全新方法。


国内技术现状:

国内对AI4DB研究比较多的是清华大学,清华大学研究了利用AI技术来支持数据库的自调优、基于AI的代价估计器、基于AI的优化器、基于AI的物化视图技术以及库内AI推理技术。

下面是近年国内对于AI4DB技术的一些重要的研究和综述:

2016年,数据库遇上深度学习:挑战与机遇《Database meets deep learning: Challenges and opportunities》。SIGMOD。王伟, 张梅辉, 陈刚等。 

2019年,加快分析速度:数据库和大数据系统的自动参数调优《Speedup Your Analytics: Automatic Parameter Tuning for Databases and Big Data Systems》VLDB,卢家恒,陈玉星,希罗多德 希罗多多,希夫纳特·巴布。

2020年,数据库遇见人工智能《Database Meets Artificial Intelligence: A Survey》 TKDE。周轩和,柴成良,李国良,孙纪。

2021年,关于数据处理和分析的深度强化学习的调查《A Survey on Deep Reinforcement Learning for Data Processing and Analytics》。arXive,蔡庆鹏, 崔灿, 熊毅元等。

2021年,《AI Meets Database: AI4DB and DB4AI》,SIGMOD,李国良,周禾和,曹磊.。

2021年,数据库机器学习《Machine Learning for Databases》VLDB,李国良, 周禾和, 曹磊。

2021年,自治DBMS的工作负载感知性能调优《Workload-Aware Performance Tuning for Autonomous DBMSs》, ICDE,严正通, 卢佳恒, Naresh Chainani, Chunbin Lin.


更多AI4DB的技术研究论文列表,请参考:

GitHub - TsinghuaDatabaseGroup/AIDB: ai4db and db4ai work

 


国外代表产品:

1.Oracle Autonomous Database(Oracle自治数据库)

Oracle自治数据库是一种采用了机器学习技术,可自动执行数据库调优、保护、备份和更新以及其他传统上由 DBA 执行的常规管理任务的云数据库,与传统数据库不同,它无需人工干预就能执行所有这些以及更多其他任务。通过机器学习驱动的自动调优、缩放和修补,自治数据库可为 OLTP、分析、批处理和物联网 (IoT) 工作负载提供更高的性能、可用性和安全性。

  •   Oracle 自治事务处理 (ATP) 数据库

Oracle 自治事务处理是一款云数据库服务,简化了高性能数据库操作和安全保障。该服务能够自动供应、配置、调优、扩展、修补、加密和修复数据库,并且包含所有 Oracle 高级数据库选件,例如 Real Application Clusters (RAC)、多租户、分区、内存中、高级安全性以及高级压缩。

  •   面向分析和数据仓库的自治数据库 (ADW)

针对分析工作负载(包括数据集市、数据仓库和数据湖)进行了优化的全自动化云数据库服务。它预先配置了列格式、分区和大型联接,用于简化和加速数据库设置、提取、加载和转换数据、运行复杂报告、生成预测以及创建机器学习模型。借助自治数据库,数据科学家、业务分析师和普通用户可以使用任意规模和类型的数据来快速、轻松、经济地获得业务洞察。

  •   自治数据库的工作原理

自治数据库充分利用 AI 和机器学习技术,支持全面、端到端的自动化供应、安全性、更新、可用性、性能、变更管理和防错。自治数据库具有以下特征。

自治驱动

自治数据库可自动化管理、监视和调优所有数据库和基础设施。这意味着,DBA 可以专注于更加重要的任务,包括数据聚合、建模、处理、治理策略,以及帮助开发人员使用数据库内特性和功能,而尽可能减少对应用代码的更改。

自治安全

自治数据库内置专业的安全性功能,可有效防范外部攻击和内部恶意用户访问,避免因未打补丁或执行数据库加密而遭到网络攻击。

自治修复

自治数据库可防止计划外维护等原因导致的停机情况。据统计,自治数据库每个月包括打补丁在内的停机时间不超过 2.5 分钟。

 

2.微软Azure SQL Database and Azure SQL Managed Instance

Azure SQL 数据库和 Azure SQL 托管实例自动优化通过基于 AI 和机器学习的持续性能优化提供峰值性能和稳定的工作负荷。

自动优化是一种完全托管的智能性能服务,它使用内置智能来持续监视在数据库上执行的查询,并自动提高其性能。这是通过动态调整数据库以适应不断变化的工作负载并应用优化建议来实现的。自动优化通过 AI 从 Azure 上的所有数据库水平学习,并动态改进其优化操作。数据库在自动优化的情况下运行的时间越长,其性能就越好。

主要包括如下AI4DB特性:

  •  数据库的自动性能调优
  •  自动验证性能提升
  •  自动回滚和自我校正
  •  调优历史
  •  用于手动部署的优化操作 Transact-SQL (T-SQL) 脚本
  •  主动式工作负载性能监控
  •  在数十万个数据库上横向扩展功能


国内代表产品:

1.     华为:openGauss AI4DB,在进行将数据库的参数调节变成AI驱动的,例如将优化器做成ABO(AI-Based Optimizer,基于人工智能的查询优化器)。

2.     阿里云:数据库自治服务DAS(Database Autonomy Service)是一种基于机器学习和专家经验实现数据库自感知、自修复、自优化、自运维及自安全的云服务,帮助您消除人工操作引发的服务故障,有效保障数据库服务的稳定、安全及高效。利用AI、机器学习的技术使能数据库运维管控智能化,进行系统的监控、调度、参数调优和索引推荐等操作。

3.     腾讯云:DBbrain(数据库智能管家)是腾讯云推出的一款为用户提供数据库性能优化、安全、管理等功能的数据库自治云服务。DBbrain 利用机器学习、大数据手段、专家经验引擎快速复制资深数据库管理员的成熟经验,将大量传统手动的数据库运维工作自运维,服务于云上和云下企业,保障数据库服务的安全、稳定及高效运行。


AI4DB详细描述:

AI4DB一般包括如下5个方面的内容。

1.       基于机器学习的数据库配置

(1)     参数开关调节

数据库参数开关的数量庞大且关系复杂。DBA通常擅长于特定的数据库,并且需要相对较长的时间。显然,DBA无法扩展到云数据库上的数百万个数据库实例。但是通过基于学习技术的自动参数开关调节,可以探索更多旋钮组合空间并推荐高质量参数开关值,从而获得比DBA更好的结果。

(2) 索引/视图顾问

数据库索引和视图对于实现高性能非常重要。然而,传统数据库高度依赖DBA来构建和维 护索引和视图。由于存在大量列/表组合,因此推荐和构建适当的索引/视图的成本很高。 最近,有一些基于学习的工作可以自动推荐和维护索引和视图。

(3) SQL重写器

许多SQL程序员无法编写高质量的SQL,因此需要重写SQL查询以提高性能。例如,嵌套查询会被重写为连接查询来使一些SQL优化可用。现有方法采用基于规则的策略,使用一些预定义的规则重写SQL查询。然而,这些基于规则的方法依赖于高质量的规则,这些规则过多。因此,深度强化学习可用于明智地选择适当的规则,并以良好的顺序应用规则。

2.       基于机器学习的数据库优化

(1)基数/成本估算 数据库选择优化策略需要依靠成本和技术估计,但传统技术无法有效捕获不同列/表之间 的相关性,因此无法提供高质量的估计。这时候通过使用深度神经网络捕捉相关性来估计 成本和基数,从而获得更好的结果。

(2)连接顺序选择 一个SQL查询可能有数百万甚至数十亿个可能的计划,高效地找到一个好的计划非常重 要。传统的优化器并不能在数以万计的表里找到合适的连接顺序,因为探索巨大的计划空 间成本相当高,这时我们可以利用深度强化学习去自动选择好的计划。 (3)端到端优化器。一个成熟的优化器不仅要有好的代价估计和连接顺序,而且还需要考虑索引和视图,并且 设计端到端优化器是很重要的。因此可以通过使用深度神经网络优化SQL查询。

3.       基于机器学习的数据库设计

(1)学习索引。不仅可以减少索引大小,还可以提高索引性能。

(2)学习数据结构设计。不同的数据结构可能适用于不同的环境,很难为每个场景设计合 适的结构。哈佛大学的论文阐述了一种旨在为不同的数据结构创建一个数据推理的引擎, 用于推荐和设计数据结构。

(3)基于学习的事务管理 传统的事务管理技术侧重于事务协议,而人工智能技术能够从 现有的数据模式中学习,有效地预测未来的工作负载趋势,并通过平衡冲突率和并发性有 效地调度它们,从而实现预测并安排事务。

4.       基于机器学习的数据库监控

数据库监控可以捕获数据库运行时指标,如读/写延迟、CPU/内存使用情况,从而在出现异常时提醒数据库管理员。然而,传统的监视方法依赖于数据库管理员来监视大多数数据 库活动并报告问题,效率较为低下。而通过基于机器学习的技术来优化数据库监控,可以较为高效地确定何时以及如何监控哪些数据库指标。

5.       基于机器学习的数据库安全

传统的数据库安全技术依赖于用户定义的规则,但无法自动检测未知的安全漏洞。通过基于AI的算法来自动识别发现敏感数据,监视数据库活动并检测漏洞,通过自动估计不同的数据访问操作来避免数据泄漏,通过深入学习挖掘用户行为和识别并避免SQL注入攻击。

 

==========================

参考文献:

《轩辕:AI原生数据库系统》作者:李国良 周煊赫 

《基于机器学习的数据库技术综述》 作者:李国良 周煊赫 孙佶 余翔 袁海涛 刘佳斌 韩越


涉及AI4DB产品的厂家官网:

Autonomous Database | Oracle

Automatic tuning overview - Azure SQL Database | Microsoft Docs

GaussDB + AI-Native Distributed Database — Huawei Enterprise

数据库自治服务 DAS (aliyun.com)

 

用户评价

0
0
词条统计
创建者:李建国
编辑次数:2
浏览次数:6934
API调用次数:0
贡献者