2023年oracle cloud world(下简称ocw)大会(以前叫oow)美国当地时间9月18日-9月21日在美国召开。作为世界领先的数据库,数据库行业从业者都应该关注和学习。在本次ocw中,除了与微软azure更加深入的合作(即可以在azure上直接购买使用oracle数据库)之外,最重要的发布就是23c和vector向量数据库的发布。也许在很多人看来,在chatgpt流行已经一段时间,国内特别是基于pg vector插件的向量数据库也已经风风火火了一段时间了,oracle现在提向量数据库是不是已经落后了,甚至有蹭热点的嫌疑,在大模型、向量上,国内已经“遥遥领先”了。本期就来看看oracle数据库中的ai和向量应用(这里说明一点,向量我不熟,通过vector关键字去匹配的相关内容)。
1 ai
从很早开始oracle就开始提数据库的自治与自动驾驶,其中就包括自动索引、机器学习、故障自愈等功能。将ai能力赋能给数据库通用能力,提升数据库性能,降低故障概率,减少故障时间。
当然因为硬件水平、基础架构等要素影响其中很多功能只能运用在基于exadata或者oci的环境中(其实oci提供的数据库实例大多数都是从exadata上分出来的)。以exadata storage software提供的smart scan功能为例,它将数据搜索和检索处理offload到存储单元。exadata cell(存储节点)在存储级别评估查询谓词,以优化某些批量数据处理类的性能。该功能会在存储侧对存储数据进行索引处理(这里并不是表索引),通过存储侧预先对数据进行筛选,减少存储到计算节点之间的网络传输压力及内存占用,同时计算所涉及更小的数据量也能加速计算速度并减少cpu使用。在这中间exadata会利用机器学习根据数据库使用情况去不断地优化存储侧数据索引及存放方式,以达到更快的加速查询。其他功能诸如自动索引已经在19c中在普通数据库可用、故障自愈主要还是在oci上。
2 vector
2.1 inmemory
在oracle官方文档中,在有一部分是专门介绍cpu向量的:。
对于im列存储中填充的数据,数据库使用simd(单指令、多数据)处理。
simd单元是一种处理器,它使单个指令能够作为一个单元(称为向量)处理数据,而不是在单独的指令中处理数据。例如,simd可以将四组数字加载到向量中并执行一次加法运算,而不是使用循环来执行四次加法运算。simd处理有时被称为向量化。
im列存储最大化了cpu可以加载到向量寄存器中并进行评估的列条目的数量。数据库不是一次评估列中的每个条目,而是评估单个cpu指令中的一组列值。simd向量处理使数据库能够每秒扫描数十亿行。
2.2 simd and exadata smart flash cache
在同章节中也有exadata使用simd的相关介绍。
除了以混合列压缩格式存储数据外,exadata smart flash cache还可以以纯列格式存储数据。
exadata smart scan支持simd谓词。其优点是内存性能从dram存储器扩展到辅助存储器。
当然这里的向量技术使用只是针对oracle数据库的某些通用类场景加速,并不是现在所说的用于大模型。
3 23c
其实23c free在4月份就已经发布供大家试玩,加上ai与向量oracle已经使用了十数年之久,所以我认为oracle在本次ocw提向量数据库并非是“兴之所至”或是“蹭热度”。本次ocw应该会发布正式版23c,届时随着全功能数据库软件包的可下载以及官方文档的更新,我们能更进一步了解23c的各项新特性。
总结
后面将继续关注oracle database 23c的相关信息。
老规矩,知道写了些啥。