聊聊Oracle数据库的向量能力 - 详解

news/2025/12/3 20:09:44/文章来源:https://www.cnblogs.com/yangykaifa/p/19303833

当下 IT 领域最火的技术,如果 AI 说自己排第二,那就没有什么技术敢说第一了。各种软硬件产品都在尽力向 AI 靠齐,如果不支持 AI 出门都不好意思和人打招呼,数据库当然也不例外。不论国际数据库巨头还是国产数据库厂商,都通过支持向量的方式,让自己的产品离 AI 更近一些。深入去看就会发现每个产品在实现方式和能力支持上还是有所差别的。作为数据库领域的霸主,Oracle 将自己的新一代数据库产品冠以 ai 的代称,宣示产品的 ai 能力以及进入 ai 的决心,今天我们就来聊聊 Oracle 数据库在向量处理方面的能力。

向量类型的定义和存储管理

Oracle 23.4 版本中引入了 Vector 数据类型,因为 Vector 数据类型的数值特性,可以将其用于诸如分类、回归、异常、聚类、特征提取等机器学习算法的输入,以支持更多的功能和使用。

通过以下语句即可创建一张存储向量数据的表,相信大家也看出来了,语法上和传统表没有什么区别。其中,768 定义向量的维度数量,INT8 则定义了维度的格式。当前 Oracle Vector 类型支持 INT8、FLOAT32、FLOAT64 和 BINARY 等四种维度格式。

CREATE TABLE docs (doc_id INT, doc_text CLOB, doc_vector VECTOR(768, INT8));

如果创建表时没有指定 VECTOR 类型参数,则意味着这个列可以用于存储多种维度的数据,以默认的 INT8 格式存储。这种方式虽然能在前期简化向量的使用和管理,但是索引查询不支持多种维度数据混合存储,因此建议在系统前期建设阶段就要定义好这些参数。

物理存储上,Oracle Vector 支持 DENSE 和 SPARSE 两种存储格式,默认的物理存储方式为 DENSE,即所有维度的数据都会被物理存储,而 SPARSE 方式下仅保存非 0 的向量数据。

SQL 语法上,DENSE 和 SPARSE 格式有所区别,不支持使用 DENSE 语法插入 SPARSE 向量表,反之亦然,但是可以通过 TO_VECTOR 函数对向量值进行转换。以下是一个创建和插入 SPARSE 表的语句。

create table my_sparse_tab(v01 vector(5, INT8, SPARSE));
insert inot my_sparse_tab values('[5,[2,4],[10,20]]');

其中,第一个字段表示向量的个数,第二个字段表示非零值的坐标列表,第三个字段是相应坐标列表所对应的值。比如例中,第一个字段值为 5 表示这组向量共有 5 个,第二个参数表示坐标 2 和 4 是非零值,第三个参数则表示 2 和 4 坐标对应的值分别是 10 和 20。

相信大家也看出来了,SPARSE 向量其实是一种压缩算法,对于高维度但非零值比较少的向量,使用 SPARSE 格式会比较节省存储空间。

向量类型的全流程支持能力

从非结构化或半结构化的数据,到向量化之后存储的到数据库中,期间需要经过分块、分词及向量嵌入等一系列的处理流程,而 Oracle 23ai 强大的地方正是在于对向量数据的全流程支持能力。

为了帮助大家更好的理解这个过程,这里我们展开来说一说。

  • 首先,对于 PDF 或 Word 等分结构化的文本数据,需要将文档转换成纯文本发送给 Chunker,Chunker 将文本拆分为多个大小适中的段,这个过程称之为 Chunking。单个文档可拆分为多个 Chunk,Chunk 可以是一组单词、句子或段落,每个 Chunk 都可以转换成一个向量。
  • 接下来将拆分好的 Chunk 传递给预定义好的向量嵌入模型,向量模型中关联的标记器(Tokenizer)进一步将 Chunk 拆分为被称为 Token 的独立单词或单词片段,最后根据数据语义或上下文将每个 Token 嵌入到向量表示中。嵌入模型使用的标记器通常会对可处理的输入文本长度进行限制,如果 Token 的数量大于模型允许的最大输入限制,则某些 Token 会被截断为定义的输入长度,这意味着某些数据会丢失。
  • 最后,我们可以将提取的向量存储在向量索引中,以便于在这些向量上实现组合的相似性和关系搜索。Oracle 支持常见的 HNSW(Hierarchical Navigable Small World)和 IVF(Inverted File Flat)向量索引,以及混合索引检索。向量索引和传统索引的区别比较大,我们放在后面的文章中专门介绍。

上述向量化过程在数据库中即可完成,不需要借助于第三方的开发语言或框架,而这些离不开数据库对预定义模型的支持。

开放神经网络交换模型支持

所谓预定义模型指的是已经基于文本、图像等数据上进行训练并保存为存储格式以供将来使用的模型。Oracle 支持在数据库中直接调用嵌入模型来生成向量数据,该功能是通过 ONNX 模型来实现的。

ONNX(Open Neural Network Exchange)是一种用于存储和交换机器学习模型的开放标准,旨在实现不同深度谢谢框架之间的互操作性,由微软和 Facebook 于 2017 年推出,已经发展成为代表深度学习模型的实际标准。Oracle 提供了 ONNX 模型转换及导入工具,将 ONNX 模型导入到数据库中,通过 DBMS 包和函数在库内就完成了分词和向量嵌入的操作,这也是 Oracle 向量数据库强于其他数据库的能力之一。

写在最后

这篇文章给大家简单介绍了 Oracle 数据库在向量数据上的支持能力,通过导入开放预定义模型,以及一系列的 DBMS 包和函数,开发人员能够在数据库内实现向量化流程的闭环,而不需要借助于第三方的工具,这也是和同类产品最大的区别。

这篇文章没有介绍向量检索和索引的内容,向量检索模式和索引实现与传统的基于关键字的检索差别很大,限于篇幅的原因,我们另开一篇单独介绍,欢迎大家持续关注!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ReAct+LangGraph:构建智能AI Agent的完整指南(建议收藏) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

第七天项目

苍穹外卖项目 - 第7天冲刺日志(项目总结与复盘) 日期:2025-12-02 冲刺周期:第7天/共7天 参会人员:李靖华 温尚熙 谢斯越 郑哲磊一、站立会议照片团队成员进行项目总结和复盘讨论二、最终验收会议记录 郑哲磊(后端…

Spring Boot框架中在Controller方法里获取Request和Response对象的2种方式

写在前面 javax.servlet.ServletRequest和javax.servlet.ServletResponse都是Servlet容器中定义的接口,分别用于获取客户端请求信息和将响应消息发送给客户端。 有两种方法在Contoller方法中获取它们:直接在Controll…

2025煤炭氟氯测定仪TOP5权威推荐:精准检测选对品牌,奥

煤质环保检测领域中,氟氯测定仪作为判定煤炭环保合规性的核心设备,其精准度、耐用性直接影响检测结果与企业生产效率。2024年行业数据显示,因氟氯测定仪检测偏差导致的环保合规风险事件占煤质检测问题的30%,而耐用…

2025年上海办公室装修公司口碑排名:迎湖办公室装修实力可靠

办公室是企业的第二战场,从空间规划到材料环保,每一处细节都关乎员工效率与品牌形象。面对市场上良莠不齐的装修公司,企业主常常陷入承诺与现实不符的困境:报价藏增项、工期拖延、材料不环保等问题频发。2025年办公…

Scrum 冲刺博客_4

Scrum 冲刺博客_4 站立式会议照片:昨天已完成工作:团队共同敲定数据接口规范 v1.0,明确了所有核心接口的参数、返回格式及异常码。 前端组基于接口规范,完成了前端请求封装的 TypeScript 类型声明,搭建了 Axios 请…

第五天项目

苍穹外卖项目 - 第5天冲刺日志 日期:2025-11-30 冲刺周期:第5天/共7天 会议时间:09:00 - 09:15 会议地点:开发室 参会人员:李靖华 温尚熙 谢斯越 郑哲磊一、站立会议照片团队成员正在讨论数据统计功能的实现细节二…

[豪の算法奇妙冒险] 代码随想录算法训练营第十四天 | 翻转二叉树、对称二叉树、二叉树的最大深度、二叉树的最小深度

翻转二叉树、对称二叉树、二叉树的最大深度、二叉树的最小深度代码随想录算法训练营第十四天 | 翻转二叉树、对称二叉树、二叉树的最大深度、二叉树的最小深度翻转二叉树题目链接:https://leetcode.cn/problems/inver…

团队作业4——7天敏捷冲刺

项目冲刺这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/homework/13483这个作业…

JAX 训练加速指南:8 个让 TPU 满跑的工程实战习惯

TPU 训练的真实效率往往取决于两个核心要素:Shape 的稳定性与算子的融合度。 很多时候,JAX 任务之所以出现严重的性能瓶颈,并非算法本身设计有问题,而是忽视了 XLA 编译器与底层硬件对“确定性”的极度偏好。基于大…

251202 模拟测 总结

挂分惨烈(? 我 T1 的 \(5\) 分呢。 Pro.A对,所以为什么你 \(Ans\) 的初值不设为 \(n+1\),为什么。我问你呢你明明知道有负数啊!!!1111(崩溃通过十分严谨的证明大力瞎猜结论,我们发现,将 \(a\) 升序排序后,最…

【小题狂练A】“一切沉溺者挣扎者向所谓极致献出 最稚嫩的人格”

题单:https://www.luogu.com.cn/training/911686#information P14635 [NOIP2025] 糖果店 / candy(民间数据) 我们考虑进行贪心,对于每个选取 \(b_i\) 的情况必然连带着 \(a_i\) 一起选取,也就是我们把 \(a_i+b_i\…

第三天项目

苍穹外卖项目 - 第3天冲刺日志 日期:2025-11-28 冲刺周期:第3天/共7天 参与人员:李靖华 温尚熙 谢斯越 郑哲磊一、站立会议照片二、会议内容记录 郑哲磊(后端负责人) 昨天已完成的工作:✅ [WI-017] 完成员工管理…

第7篇Scrum冲刺博客

第7篇Scrum冲刺博客这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience/这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience/homework/13…

2025年中国温度传感器主流品牌五大推荐:看哪家品牌适合实验

本榜单依托工业传感器市场全维度调研与真实客户口碑,聚焦实验室高精度需求、日本品牌技术特性、物流温控场景痛点三大核心方向,深度筛选出五家适配性标杆企业,为不同行业企业选型提供客观依据,助力精准匹配专业传感…

递归算法设计与实现 - Invinc

递归(Recursion)是一种通过函数调用自身来解决问题的方法。要正确设计和实现递归算法,必须满足 **递归三要素**,否则可能导致无限递归、栈溢出或逻辑错误。递归(Recursion)是一种通过函数调用自身来解决问题的方…

第二天项目

苍穹外卖项目 - 第2天冲刺日志 日期:2025-11-27 冲刺周期:第2天/共7天 参与人员:李靖华 温尚熙 谢斯越 郑哲磊 二、会议内容记录 郑哲磊(后端负责人) 昨天已完成的工作:✅ [WI-001] 搭建Spring Boot项目基础架构…

惊呆了!这个小脚本竟然同时搞定计算、进制转换和BMI计算

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

一些md5绕过总结(长期补充)

一些md5相关的track总结(长期) ffifdyop——绕过中一个奇妙的字符串 ffifdyop经过md5加密后为:276f722736c95d99e921722cf9ed621c 再转换为字符串:or’6<乱码> 即 or’66�]��!r,��b 用途: select * fro…

2025年西南五大诚信的加拿大移民企业推荐,看哪家售后服务优

在全球化浪潮下,移民加拿大成为许多家庭寻求更好发展的重要选择。然而,面对移民市场的复杂性与政策变动,选择一家诚信可靠、售后完善的加拿大移民专业公司至关重要。以下依据不同服务特色,为你推荐2025年西南地区十…