阳振坤:AI 大模型的基础是数据,AI越发达,数据库价值越大
2024年1月12日,第四届OceanBase数据库大赛决赛在北京圆满落幕。在大赛的颁奖典礼上,OceanBase 首席科学家阳振坤老师为同学们献上了一场主题为“爱上数据库”的公开课,他不仅分享了个人的成长历程,还阐述了对数据库行业现状与未来的见解和思考。

阳老师回忆了自己年轻时,与如今的同学们相仿的年纪,追随导师王选院士投身激光照排机研发的岁月。他感慨道:“那时,我们的信息系统与发达国家相比,存在着巨大的差距。虽然时至今日,这样的差距仍然存在,但已经大幅缩小,甚至在不少领域,我们已经实现了超越。”
近年来,人工智能技术迅猛发展,谈及 AI 大模型与数据库的关系,他表示,AI 大模型本身的基础其实还是数据,AI 模型越发达,数据库的价值会越大,数据库的空间也会越大。
未来数据库会如何发展?他认为,数据库的形式和功能将发生显著变化。现代数据库应具备两大核心特征:一是强大的海量数据处理能力,二是云数据库服务模式。因此,数据库的发展方向必然是多模一体化,以及具备敏捷伸缩和水平扩展的能力。
精彩节选
1、未来数据库不会消失,但形式和功能会发生显著变化
AI 大模型主要依靠训练的数据、训练的结果,以及和用户的交互,这背后海量数据的处理离不开各种各样的数据库。所以 AI 的模型越发达,我觉得数据库的价值会越大,数据库的空间也会越大。
在可预见的未来里,数据库作为存储、管理和检索数据的核心工具,作用只会更加重要,传统关系型数据库也不再是唯一选择。
NoSQL、NewSQL、分布式数据库等新型数据库将广泛应用,云数据库和 Serverless 架构让用户更多依赖云服务商提供的解决方案,AI 和机器学习的引入将使数据库管理更加自动化。
2、数据库激增、类型多样与实时处理是数据库的三大挑战
今天在数据库领域,关系数据库仍然占很大比例,差不多是 70%。有很多人预测,关系数据库的比例会缩小,我是相反的看法,我觉得关系数据库的比例会变大。
这些年,为满足多样化数据类型和复杂查询需求,NoSQL、NewSQL、KV 等部分替代了传统关系型数据库。一个重要原因是传统的关系型数据库多为单机数据库,扩展能力受限,所以人们才会用 KV、NoSQL 等作为解决方案。但这些系统缺少数据库最根本的东西:ACID,导致它本身带有局限性。
数据库这些年发展还出现了一个现象,就是交易和分析割裂。当数据量不大的时候,可以按照交易的方式进行分析,只是效率低一点。但当数据量大了之后,第一是存储,原来的交易数据库面临存储挑战,更谈不上分析;第二是效率,当数据量增长了 1000 倍,分析的时间不可能随之增加到 1000 倍,这时的分析也就失去了意义。
正是因为如此,现在的业务生产系统中,交易和分析是割裂的,形成两个系统。一旦交易系统的数据发生变化,分析系统也要同步改变。这不仅带来成本增加,复杂性也随之上升。
3、云是未来数据库发展的主要趋势
今天,云在数据库市场里占据主流。左边的图里,蓝色部分云数据库市场份额,黄色部分是线下部署的市场份额。现在,云已经占了超过 60%。从右边的图可以看出,数据库每年的市场增量有 90% 在云上,这意味着随着时间的推移,云数据库的占比会越来越大。

(数据来源:Market Share Analysis:DataBase Management Systems,Worldwide,2023)
为什么云服务发展很快?我觉得有两点:效率和成本。
云上的资源可以很快申请,马上就能得到,时间是以秒计算,而线下部署一台机器再快都是以天计算的。在成本方面,中等规模以下的企业,购买云服务很便宜;对大型、特大型的企业由于规模效应,也能带来成本的节省。这其中最重要的原因就是资源的池化与复用。
以 CPU 为例,绝大部分企业的计算机 CPU 利用率是个位数,不到 10%,造成算力浪费。而云上可以做到 20%,因为各家企业的业务有时高有时低,大家互补起来,提高资源的利用率。同时,云上的存储和人力,也可以通过复用提高利用率。
但是数据库不完全是这样,数据库是个有状态的东西。大家知道一个事务建立连接,它的很多状态你是要保持住的。数据库有敏捷的伸缩能力是一个挑战,但如果你没有伸缩能力,你就做不到资源的复用。
4、OceanBase在走一条传统数据库走不了的路
传统集中式数据库第一没有容量,第二很难能解决行存列存冲突的问题。因为行存便于数据修改,而列存的修改代价非常大。如果一个表有 100 个列,插入或删除一条记录,意味着要在硬盘上做 100 次的读、100 次的写,操作代价非常大,效率也就会非常差。
这个里面涉及到两个问题,一个是分布式一个是敏捷伸缩。如果数据库没有敏捷伸缩的能力,就无法像云那样做到资源复用,例如高德地图的导航,除了早晚高峰,凌晨用的人很少,如果没有弹性能力,就会造成资源浪费。
过去的数据库其实是不具备扩展能力的,新的数据库在朝这个方向努力,OceanBase 现在在很多地方还不如 Oracle,但是我们今天走的是一条传统数据库走不了的路。
传统集中式数据库它没有一个很好的扩展能力,而 OceanBase 这种分布式数据库成长起来,它将成为新一代的数据平台。过去需要搭一个交易数据库和一个大数据系统,而现在可以在一个数据库里实现这些功能,去掉两个系统带来的交互和成本。
相关文章:
阳振坤:AI 大模型的基础是数据,AI越发达,数据库价值越大
2024年1月12日,第四届OceanBase数据库大赛决赛在北京圆满落幕。在大赛的颁奖典礼上,OceanBase 首席科学家阳振坤老师为同学们献上了一场主题为“爱上数据库”的公开课,他不仅分享了个人的成长历程,还阐述了对数据库行业现状与未来…...
Linux磁盘空间不足,12个详细的排查方法
在Linux系统运维过程中,磁盘空间不足是一个常见且棘手的问题。当磁盘空间被占满时,系统的正常运行会受到影响,甚至可能导致服务中断。因此,迅速有效地排查和解决磁盘空间问题显得尤为重要。本文将详细介绍16个排查Linux磁盘空间问…...
Spring Web MVC综合案例
承接上篇文章——Spring Web MVC探秘,在了解Spring Web MVC背后的工作机制之后,我们接下来通过三个实战项目,来进一步巩固一下前面的知识。 一、计算器 效果展示:访问路径:http://127.0.0.1:8080/calc.html 前端代码&a…...
微软预测 AI 2025,AI Agents 重塑工作形式
1月初,微软在官网发布了2025年6大AI预测,分别是:AI模型将变得更加强大和有用、AI Agents将彻底改变工作方式、AI伴侣将支持日常生活、AI资源的利用将更高效、测试与定制是开发AI的关键以及AI将加速科学研究突破。 值得一提的是,微…...
lvgl性能调优
LV_USE_PERFORMANCE lvgl_performance 是 LVGL 提供的性能分析工具,可以帮助开发者评估和优化图形库的性能。在一些特定的版本中,lvgl_performance 是一个宏或者工具,用来分析性能瓶颈,特别是图形渲染的效率。 下面是如何使用 l…...
CSS实现实现票据效果 mask与切图方式
一、“切图”的局限性 传统的“切图”简单暴力,但往往缺少适应性。 适应性一般有两种,一是尺寸自适应,二是颜色可以自定义。 举个例子,有这样一个优惠券样式 关于这类样式实现技巧,之前在这篇文章中有详细介绍: CSS 实现优惠券的技巧 不过这里略微不一样的地方是,两个…...
STL--list(双向链表)
目录 一、list 对象创建 1、默认构造函数 2、初始化列表 3、迭代器 4、全0初始化 5、全值初始化 6、拷贝构造函数 二、list 赋值操作 1、赋值 2、assign(迭代器1,迭代器2) 3、assign(初始化列表) 4、assig…...
ZooKeeper 中的 ZAB 一致性协议与 Zookeeper 设计目的、使用场景、相关概念(数据模型、myid、事务 ID、版本、监听器、ACL、角色)
参考Zookeeper 介绍——设计目的、使用场景、相关概念(数据模型、myid、事务 ID、版本、监听器、ACL、角色) ZooKeeper 设计目的、特性、使用场景 ZooKeeper 的四个设计目标ZooKeeper 可以保证如下分布式一致性特性ZooKeeper 是一个典型的分布式数据一致…...
“深入浅出”系列之C++:(11)推荐一些C++的开源项目
1. SQLiteCpp - 简单易用的Sqlite C封装库 仓库地址:https://github.com/SRombauts/SQLiteCpp 简介:SQLiteCpp是一个对Sqlite数据库进行C封装的开源库,代码行数约2,500行。它提供了简洁易用的接口,使得在C项目中操作Sqlite数据库…...
《重生到现代之从零开始的C++生活》—— 类和对象2
类的默认成员函数 默认成员函数就是用户没有显示实现,编译器会自动生成的成员函数,一个类会默认生成6个成员函数 构造函数 构造函数时特殊的成员函数,构造函数的初始化对象 函数名与类名相同 没有返回值 对象实例化的时候胡自动调用构造…...
“UniApp的音频播放——点击视频进入空白+解决视频播放器切换视频时一直加载的问题”——video.js、video-js.css
今天,又解决了一个单子“UniApp的音频播放——点击视频进入空白解决视频播放器切换视频时一直加载的问题” 一、问题描述 在开发一个基于 video.js 的视频播放器时,用户通过上下滑动切换视频时,视频一直处于加载状态,无法正常播放…...
【Pandas】pandas Series transform
Pandas2.2 Series Function application, GroupBy & window 方法描述Series.apply()用于将一个函数应用到 Series 的每个元素或整个 SeriesSeries.agg()用于对 Series 数据进行聚合操作Series.aggregate()用于对 Series 数据进行聚合操作Series.transform()用于对 Series…...
【博客之星2024年度总评选】年度回望:我的博客之路与星光熠熠
【个人主页】Francek Chen 【人生格言】征途漫漫,惟有奋斗! 【热门专栏】大数据技术基础 | 数据仓库与数据挖掘 | Python机器学习 文章目录 前言一、个人成长与盘点(一)机缘与开端(二)收获与分享 二、年度创…...
飞牛 使用docker部署Watchtower 自动更新 Docker 容器
Watchtower是一款开源的Docker容器管理工具,其主要功能在于自动更新运行中的Docker容器 Watchtower 支持以下功能: 自动拉取镜像并更新容器。 配置邮件通知。 定时执行容器更新任务。 compose搭建Watchtower 1、新建文件夹 先在任意位置创建一个 w…...
【Block总结】TAdaConv时序自适应卷积,轻量高效的时间建模卷积|即插即用
论文解读:Temporally-Adaptive Models for Efficient Video Understanding 论文信息 标题:Temporally-Adaptive Models for Efficient Video Understanding 发表时间:2023年 作者:黄子渊等 论文链接:arXiv 论文 代…...
Spring Boot 项目启动报错 “找不到或无法加载主类” 解决笔记
一、问题描述 在使用 IntelliJ IDEA 开发基于 Spring Boot 框架的 Java 程序时,原本项目能够正常启动。但在后续编写代码并重建项目后,再次尝试运行却出现了 “错误:找不到或无法加载主类 com.example.springboot.SpringbootApplication” 的…...
CSS 网络安全字体
适用于 HTML 和 CSS 的最佳 Web 安全字体 下面列出了适用于 HTM L和 CSS 的最佳 Web 安全字体: Arial (sans-serif)Verdana (sans-serif)Helvetica (sans-serif)Tahoma (sans-serif)Trebuchet MS (sans-serif)Times New Roman (serif)Georgia (serif)Garamond (se…...
Linux高并发服务器开发 第十五天(fork函数)
目录 1.fork 函数 1.1创建子进程 1.2getpid 函数 1.3getppid 函数 1.4getgid函数 1.5循环创建 n 个子进程 1.6fork后父子进程异同 1.6.1读时共享,写时复制 1.6.2fork后父子进程共享 1.6.3gdb调试父子进程 1.fork 函数 pid_t fork(void); 成功:…...
【人工智能】Python中的自动化机器学习(AutoML):如何使用TPOT优化模型选择
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着机器学习在各行业的广泛应用,模型选择和优化成为了数据科学家面临的主要挑战之一。自动化机器学习&am…...
探秘自然地理:从太阳到地球的奇妙之旅与灾害预警
在浩瀚无垠的宇宙中,我们的地球与太阳紧密相连,它们的奥秘和变化,时刻影响着我们的生活。今天,就让我们一同深入探索自然地理的基础知识,揭开太阳与地球的神秘面纱,同时了解那些可能给我们带来巨大影响的自…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
