大咖专栏 | AI 时代下,我们可以拥有怎样的数据库?

Hi,各位朋友们,我是 KaiwuDB 高级架构师赵衎衎。

KaiwuDB 始于万物互联时代下千万条数据洪流中,我们持续打磨构造了更加灵活兼容的分布式多模架构,实现了海量异构数据高性能、低成本的集中管理… …这些底层特性都在为后续提供更多功能和业务拓展奠定关键基础,也是赋能客户的有效支撑。但仅仅只是这些,真的够么?我想答案肯定是:No🚫

许是因我长期深耕 DB 与 AI 的核心研究工作,AI 时代下,我们究竟需要怎样的数据库令我不禁深思。KaiwuDB 前进的步伐没有止于思考,我们引入原生 AI,通过 KaiwuDB 与 AI 的双向“奔赴”,期望可以真正帮助用户减负增效。那本期,我想就 KaiwuDB 的 AI 应用思路和具体实践与大家探讨交流。

01

首先和大家聊聊 KaiwuDB 在 AI for DB 及 DB for AI 的应用思路。

图片

👉AI for DB,其重点主要是利用 AI 实现数据库系统的自动化管理和运维。这里主要和大家分享一些比较常用的技术手段:

  • 数据监控调优:我们通过对数据库行为数据的采集,生成数据库本身的负载画像,基于此画像来辅助完成数据库参数自调优以及数据库设计;
  • 数据库参数自优化:数据库以及其涉及到的组件一般较为庞大复杂,单纯依靠 DBA 显然不堪重负,为了最大化发挥数据库在多样化工作负载和硬件环境下的自身性能,此时数据库系统需借助 AI 来实现自调优;
  • 数据库设计优化:通常在执行一条 SQL 语句时,可能还会涉及到其他信息的输入,包括统计信息、索引设计、数据分区等,这些都会影响数据库的性能。我们借助 AI 手段处理索引、统计信息、数据分区模式等,实现全局数据库优化,保证我们尽可能准确得到最优查询计划,提高查询效率。

👉区别于 AI for DB,DB for AI 重点是利用原生或集成的 AI 能力来提升以数据库为数据基座的 AI 应用生产力。其重点研究内容主要包括:基于数据库架构如何完成数据处理、模型训练、模型持久化、模型推理、模型监控等 AI 工作流的增强。

02

基于数据库与 AI 融合的不同维度,接下来想重点谈谈 KaiwuDB 是如何完成与 AI 的融合探索实践。从两部分视角出发:Inside & Outside,介绍 KaiwuDB 构建的通用自治架构,及其实现的“四项自适应”。

在说明 KaiwuDB 是如何通过 AI for DB 的方式进行数据库优化前,我们首先将视角放大到数据库整体发展脉络,不难发现传统数据库系统面临由不完整/不准确统计信息、编译时优化限制、单一计划局限性、缺乏全局视角、缺乏计划生命周期管理等诸多问题导致的性能瓶颈。

为了有效解决上述问题,我们思考并尝试了诸多策略。根据优化的不同模块,我们将其划分为 Inside & Outside 两类方向。

图片

✔️从 Inside 角度来看,数据库通过持续优化内核来对系统性能进行优化。以目前主流的两类优化器为例:1)对于 RBO(规则优化器),我们可对其进行更多的规则应用。如计算下推,当遇到特定过滤条件时,我们可将条件推送到存储层,减少返回给计算层的数据,从而降低开销并提升查询性能。2)对于 CBO(基于成本的优化器),我们可通过扩大搜索空间和使用更精确的成本估算方法来进一步改进。

✔️从 Outside 角度出发,我们可以不断优化数据库与应用。比如我们可以通过查询改写来提高优化器对 SQL 的识别和优化能力;通过优化数据库设计,例如索引和数据分区模式,以适应工作负载,实现查询最优化;通过及时收集统计信息,避免因信息缺失或陈旧导致无法选择最优查询计划的情况;通过调整数据库中的重要参数,最大化释放数据库性能。

在了解数据库整体优化发展脉络后,我们再将视角聚焦至 KaiwuDB 的 AI for DB 优化。通过融合 Inside & Outside 两个维度,KaiwuDB 实际构建了一个完善的通用自治架构,如下图所示:
图片

左侧 → 我们可以将其视为数据库优化过程,通过围绕 RBO 和 CBO 的规则和成本,洞察这两种优化策略来选择最佳执行计划。当到达 SQL 执行器阶段时,我们可通过相关参数对计划代价进行真实评估,这些数值又实时反馈进优化器中,对当前产生的最优执行计划进行调整,从而进一步优化查询计划,使其能够自适应并提升数据库性能。

右侧 → 在优化和 SQL 执行阶段,我们对用户进行详细数据采集,包括负载、编译、执行过程等行为数据,并将其存储在自治信息仓库中。基于这些信息,我们可构建工作负载画像,并在上层进行分析和高级自治功能应用,如索引推荐、智能统计信息、智能预计算等。这些功能可基于规则或 AI 策略来优化数据库并提升其性能。

✔️总而言之,在上述过程中,我们实现了“四项自适应”

  • 自适应优化:根据工作负载特性调整规则和成本模型;
  • 自适应管理:根据工作负载特性调整数据库参数和调度后台任务;
  • 自适应执行:根据负载实时反馈动态调整执行计划,提升复杂 AP 分析场景下的查询性能;
  • 自适应监控:根据负载历史趋势调整监控信息和统计信息的收集频率和方式。

由于优化本身是一个动态过程,并非所有统计信息的收集都能使数据库性能达到最佳。例如,无论是索引构建还是统计信息收集,都会对系统产生较大开销。因此,在这个过程中需要动态平衡数据库性能及其资源消耗。

03

整体架构介绍完毕,接下来和大家分享 KaiwuDB 已实现的几项关键 AI 自治技术,主要包括智能生命周期管理、智能预计算及智能索引。

  • 智能生命周期管理

以 IoT 场景数据为例,时序场景下的数据通常具有明显的冷热特性。新数据价值高,查询频繁,我们通过实时查询分析,在数据中台上展示相关大屏,让用户能够即时看到设备数据状态及相关场景数据。为提升查询性能,热数据存储在高效缓存中,但这也带来较高存储成本。

随着数据由热变冷,其价值和查询频率随之降低。此时,我们可以调整存储策略,以降低成本。通过在存储成本和查询性能之间寻找平衡,实现成本与性能的最优组合。在这一过程中,涉及数据压缩、降采样及存储策略置换。智能生命周期管理的重点在于如何选择适合不同数据类型的压缩算法,考虑压缩比和用户负载,构建自适应降采样周期以匹配当前工作负载。

  • 智能预计算

以时序场景下海量数据的处理需求为切入点,我们需要一种机制来最大化提升查询性能,而预计算正是一个极佳选择。预计算机制通过对用户工作负载中频繁出现的聚合算子进行细粒度预先聚合计算,极大地降低了查询过程中的海量数据的聚合计算开销,从而提高了查询性能。然而,预计算并非万能良药,不当的预计算构建可能对查询性能产生负面影响,甚至导致性能下降。因此,用户在对工作负载认知不全的情况下,如何借助我们的预计算机制提升查询性能成为关键。

基于 KaiwuDB 自治架构,我们利用 AI 对预计算功能进行优化,实现自适应和智能化。其优化考量主要包括如何选择合适的预计算粒度、确定预计算过程中支持的聚合查询类型,以及如何管理预计算推荐的生命周期。通过预计算推荐功能,我们能够实现删除不适宜的预计算以节省存储成本,避免影响用户性能;对于合适的预计算,我们需要考虑以怎样的粒度和聚合查询推荐给用户,并提供适当的使用建议。

为实现上述预计算推荐,我们结合 AI 进一步分别预测在使用与不使用预计算情况下的代价,预计算的自适应和智能化可以为进一步为用户创建预计算时提供科学高效指导。此外,为方便用户使用预计算推荐功能,我们会将推荐结果以报告建议形式提供给用户,并为用户生成好 DDL 方便直接应用。用户可依据报告中创建的预计算,简化操作流程。基于上述完善的预计算推荐机制,我们帮助用户在不完全了解工作负载的情况下,有效利用预计算提升查询性能。

  • 智能索引

智能索引同样很重要。我们基于资质信息仓库,标识出不健康的 SQL 语句,通常是就是指“慢 SQL”。对于这些语句,我们需要在索引推荐场景下,把他们标示为候选语句并做进一步分析,确定其是否是因为索引构建不合适而导致。

在该过程中,我们会用到强化学习思路,对已经分析得到确是因为索引不当产生的“慢 SQL”语句,进行候选索引的验证,包括候选索引巩固,最终会生成一个索引推荐结果。

图片

但是我们提供的不仅仅是一个简单的推荐结果,而是一份详细的影响力报告。这份报告会告诉用户,采用我们推荐的索引后,在当前工作负载下整体性能可以提升多少。用户可通过报告直观地看到索引的应用价值,如果认为值得应用,可直接使用我们提供的 DDL 语句实施。

此外,我们会监控已应用的索引和推荐索引的使用情况,这有点类似于智能生命周期管理。通过监控我们可以观察用户在应用索引后,其查询性能是否有实质性提升,以及提升的具体程度。

据此,我们可以生成性能总结报告,用户可以查看并分析索引的实际效果,判断是否合适。如果索引未达到预期效果,我们会在报告中发出警告,并将这些问题反馈到候选索引分析的 AI 算法中进一步优化。通过这种方式我们实现了一个推荐闭环,自适应地调整和优化数据库性能。

04

聊完 KaiwuDB 在 AI for DB 方面的探索实践,最后我们再来详细说说 KaiwuDB 在 DB for AI 方面做了哪些工作,用以提升基于 KaiwuDB 数据基座的 AI 应用生产力。

目前 AI 在企业使用中掀起层层浪潮,但实际使用中仍然存在诸多阻碍。究其根本原因,利用机器学习能力对企业而言门槛较高,需要专业的数据科学家来构建和持续监控模型,实现完整的模型生命周期管理,才能达成预定的数据治理目标。传统企业 IT 运维人员显然不具备上述能力。简而言之,当前机器学习的可消费性较差,入门门槛较高。

KaiwuDB 基于多模框架内置了 AI 预测分析引擎,实现人工智能模型实施全生命周期管理,包括数据预处理、模型训练、模型推理,以及监控模型服务能力等各个环节,以提升机器学习的可消费性,这也是我们构建库内 AI 预测分析引擎的初衷。

在构建过程中,我们反复思考如何高效构建 AI 预测分析引擎,同时考虑到机器学习开源生态的繁荣,若闭门造车,用户将面临较高的学习成本。因此,我们选择拥抱开源社区,集成主流机器学习算法框架如 Pytorch、Pandas、Tensorflow 等,使数据科学家能在熟悉的环境中进行 AI 应用开发,降低学习成本,提高开发效率。为让非专业人士也可利用机器学习能力,我们还基于 SQL 创建了一系列函数,使用户通过简单的 SQL 代码就能调用机器学习功能,包括数据预处理、模型训练、评估和推理等。

通过上述手段,我们为常见的人工智能算法提供了全方位的支持,确保其在各个阶段都能得到专业的优化和精细的管理。使用内置的 AI 预测分析引擎,用户可利用库中海量异构的数据进行知识挖掘,从而为决策提供有效辅助。

DB 与 AI 的实践依旧任重道远,但从长期来看探索新技术融合一定具备高价值性。除去技术本身,我想作为一名技术人员,我们的思维、心态也需要与时俱进,据此来更加灵活地对待技术变革,进而为用户、企业、社区提供更高势能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/722747.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

年轻人膳食营养补充剂小程序,营养看得见

随着经济与科技的不断发展,人们对于大众健康、全民养生的意识也在不断增强。越来越多的年轻人加入进来,逐渐成为保健品行业的主力军,传统的保健品行业抓住这一波时代潮流,也采取了新的变革。 一. 膳食营养补充剂的定义…

nodejs爬取小红书图片

昨天的文章已经描述了可以抓取评论区内容, 抓取图片内容和抓取评论区的内容基本一致 我们可以看到接口信息中含有图片链接,我们要做的就是爬取图片链接然后下载 这边要用到的模块为const downloadrequire(download) 将爬到的图片链接存放到images数组…

OpenAI新模型发布,免费开放GPT-4o!但只开放一点点...

GPT-4o 中的“o”代表“omni”——指的是 GPT-4o 的多模态。 该模型将向免费客户开放,这意味着任何人都可以通过 ChatGPT 访问 OpenAI 最先进的技术。 GPT-4o 是 OpenAI 昨天晚上发布的新旗舰模型,可以实时推理音频、视觉和文本。 据官方介绍&#xff0…

LCL滤波器并网逆变器双闭环控制系统仿真

并网逆变器通常采用L滤波器,虽然结构和控制简单,但是随着功率级别的增加,体积重量增大等问题也日益突出。为了解决这个问题,人们开始使用LCL滤波器,这种滤波器在功率较大的场合表现出色。 无源滤波器,又称…

人工智能在音乐创作中的崛起与未来展望

目录 前言1. 国内外音乐大模型现状1.1 国内音乐大模型概览1.2 国外音乐大模型概览1.3 市场份额与竞争格局 2. 音乐大模型的商业模式2.1 订阅制服务2.2 定制化服务2.3 授权与版权合作 3. 人工智能与音乐人的合作模式3.1 AI辅助创作3.2 共同创作平台3.3 AI乐器与音乐人表演 4. AI…

香港电讯高可用网络助力企业变革金融计算

客户背景 客户是一家金融行业知名的量化私募对冲基金公司,专注于股票、期权、期货、债券等主要投资市场,在量化私募管理深耕多年,目前资管规模已达数百亿级,在国内多个城市均设有办公地点。 客户需求 由于客户业务倚重量化技术…

LabVIEW Windows与RT系统的比较与选择

LabVIEW是一种系统设计和开发环境,广泛应用于各类工程和科学应用中。LabVIEW Windows和LabVIEW RT(Real-Time)是LabVIEW的两个主要版本,分别适用于不同的应用场景。以下从多个角度详细分析两者的区别,并提供选择建议。…

Mendix 创客访谈录|医疗设备领域的数字化转型利器

本期创客 尚衍亮 爱德亚(北京)医疗科技有限公司 应用开发和数字化事业部开发经理 大家好,我叫尚衍亮。毕业于软件工程专业,有6年的软件开发经验。从2021年开始,我在爱德亚(北京)医疗科技有限公司…

Python+Selenium之断言

一、Assert 用于判断一个表达式,在表达式条件为 false 的时候触发异常。 #获取对应元素的文本值text02driver.find_element_by_xpath("//h1[text()用户登录]").text#判断text02是否包含“用户登录”字符串,包含即成功,不包含即失败…

从零开始认识思科,并学会认识思科1.认识思科

hello大家好,我是风屿,今天我将从零开始带领大家认识思科设备中的各种技术以及配置,方便以后配置思科的设备,以及考取相应的证书。 在当今的数字化时代,网络扮演着至关重要的角色。而在网络技术领域,思科无…

互联网时代的语义网知识表示框架---RDF和RDFS

文章目录 RDF和RDFSRDF简介RDF和RDFS 随着语义网的提出,知识表示迎来了新的契机和挑战,契机在于语义网为知识表示提供了一个很好的应用场景,挑战在于面向语义网的知识表示需要提供一套标准语言可以用来描述Web的各种信息。早期Web的标准语言HTML和XML无法适应语义网对知识表…

MySQL数据库管理 二

1、数据表高级操作 (1)克隆表 方法一: create table 新表名 like 旧表名; #克隆表结构 insert into 新表名 select * from 旧表名; #克隆表数据 #此方法能保证 新表的表结构、表数据 跟旧表都是一致的 方法二&#x…

Python 数据可视化 多色散点图

Python 数据可视化 多色散点图 fig, ax plt.subplots() max_line max([max(merged_df[unif_ref_value]), max(merged_df[unif_rust_value])]) min_line min([max(merged_df[unif_ref_value]), max(merged_df[unif_rust_value])]) ax.plot([min_line, max_line], [min_line, …

【C语言】二维数组(详解)

目录 1. 二维数组的创建 1.1 二维数组的概念 1.2 二维数组的创建 2. 二维数组的初始化 2.1 不完全初始化 2.2 完全初始化 2.3 按照行初始化 2.4 初始化时能省略行,但不能省略列 3. 二维数组的使用 3.1 二维数组下标 3.2 二维数组…

【2024】kafka streams结合案例分析进行实际项目开发使用(3)

💻目录 一、前沿介绍二、代码实现1、依赖2、实体类2.1、Transaction2.2、 TransactionKey2.3、TransactionPattern2.4、CustomerReward 3、序列化工具类3.1、序列化3.2、反序列化3.3、Serde仓库 4、具体streams实现5、其他测试使用5.1、生产者5.2、日志文件 6、创建…

背景渐变动画登录页

b站视频演示效果: 效果图: 完整代码: <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>背景…

MySQL全解(基础)-(MySQL的安装与配置,数据库基础操作(CRUD,聚合,约束,联合查询),索引,事务)

MySQL安装与配置 1.数据库介绍 存储数据用文件就可以了&#xff0c;为什么还要弄个数据库? 文件保存数据有以下几个缺点&#xff1a; 文件的安全性问题 文件不利于数据查询和管理 文件不利于存储海量数据 文件在程序中控制不方便数据库存储介质&#xff1a; 磁盘 内存 为了…

天翼云8080、80端口用不了的问题

天翼云8080、80端口用不了的问题 前言&#xff1a;前段时间天翼云搞了活动&#xff0c;原来公司用的华为云老板说太贵了也快到期了&#xff0c;就换了天翼云的服务器。 排查&#xff1a; 安全组开放 80 8080 防火墙查看 没有问题 nginx nacos dcoker等停了 查看监听端口 发现…

web标准与浏览器前缀

目录 W3Cweb标准&#xff1a;是敌还是友人员结构标准制订的流程 css3&#xff0c;css4的传说css3 浏览器前缀&#xff1a;失败的产物关于渐进增强和优雅降级 W3C 万维网最初是由欧洲核子研究组织的一个项目发展起来的&#xff0c;在那里蒂姆伯纳斯-李开发出第一个万维网的雏形…

超声波清洗机有用吗?四大主流超声波清洗机终极PK大测评!

超声波清洗机是通过产生的超声波对于液体不断动作的一个过程&#xff0c;水分子在超声波的震动下互相碰撞挤压&#xff0c;从而发生空化作用对物体表面的污迹进行乳化剥离&#xff01;相比手洗的方式&#xff0c;超声波能够深入夹缝清洁&#xff0c;清洁程度非常高&#xff01;…