Oracle向量数据库实战

📢📢📢📣📣📣

作者:IT邦德

中国DBA联盟(ACDU)成员,15年DBA工作经验

Oracle、PostgreSQL ACE

CSDN博客专家及B站知名UP主,全网粉丝15万+

擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复,

安装迁移,性能优化、故障应急处理

1.Vector DB

Oracle AI Vector Search(Oracle向量数据库)作为Oracle Database 26ai的核心AI功能,代表了企业级AI原生数据库的技术演进方向。其应用场景不仅限于传统的向量相似性搜索,更通过与企业数据的深度集成、混合搜索能力和完整的RAG支持,构建了从数据到智能的完整闭环。

2.LLM

Large Language Model,大语言模型,是生成式AI的一个类型,是一种人工智能模型,旨在理解和生成人类语言。它们在大量的文本数据上进行训练,单一模型可以执行广泛的任务,包括词法分析、文本分类、命名实体识别、关键词提取、翻译、情感分析、摘要、对话、写作文、写代码等。

3.RAG

Retrieval-Augmented Generation ,检索式增强生成方法,从企业专业知识库中检索与请求最相关的信息,并与用户请求捆绑一起作为提示,发送给LLM以获得响应。

同时,包括AI聊天等功能,也可以创建专用的知识库,来增加聊天的能力,比如更强的上下文理解能力,或者更平稳柔和倾向于人类的语言沟通。

4.AI 向量搜索

AI Vector Search 是一项创新技术,它可以大大增强信息检索,通过基于语义进行高效搜索,而不是确切的关键字。AI向量搜索是现代 生成式AI 生态系统的重要组成部分。

AI应用关键革新:基于向量用于表示图像、文档、视频等的语义内容。

4.1 向量检索方法

近似搜索:内存中邻居图向量索引( In-Memory Neighbor Graph Vector Index )

基于图的索引,其中顶点表示向量,顶点之间的边表示相似性(例如,HNSW

索引)。

4.2 内存邻居图

邻居分区向量索引( Neighbor Partition Vector Index )基于分区的索引,其向量根据相似性聚类到表分区中(例如,IVF FLAT 索引)高效的横向扩展索引,提供快速无缝的事务支持。

5. 向量索引

在Oracle Vector DB中,可以在Vector数据类型 列上创建vector index来提升向量检索的性能,向量索引的选择取决于organization子句:

create vector index vector_idx on vector_table (data_vector)

organization [inmemory neighbor graph | neighbor partition]

常用2个种索引是:

bash 复制代码
In-Memory Neighbor Graph organization:HNSW
Neighbor Partition organization:IVF
也可以指定向量索引类型参数、距离函数、精度等:
create vector index vector_idx on vector_table (data_vector) organization neighbor partition parameters (num_centroids 1024);

6.向量基本操作

让我们从基本的向量操作开如:

1.字符串转换为向量

TO_VECTOR()用来将字符串类型的数字数组转换为向量类型

SELECT TO_VECTOR( '[3,3]');

2.向量转换为字符串

FROM_VECTOR()用来将向量类型转换为字符串类型。

SELECT FROM_VECTOR(TO_VECTOR( '[3,3]') );

3.向量间距离计算

VECTOR_DISTANCE(v1, v2, 距离策略) 是向量检索的关键操作,用来比较两个向量的距离(相似度)。

距离越大,说明相似度越小;反之,说明两个向量越相似。

Oracle支持的距离策略主要有:EUCLIDEAN, COSINE, DOT, HAMMING

相关推荐
钮钴禄·爱因斯晨21 小时前
聚焦操作系统中的PV操作
数据库·算法·系统架构·c#
2301_8135995521 小时前
CSS中relative与absolute的区别_详解相对与绝对定位应用场景
jvm·数据库·python
qq_3721542321 小时前
c++怎么在写入文件流时通过peek预读功能实现复杂的逻辑判断【实战】
jvm·数据库·python
m0_5145205721 小时前
CSS如何给按钮添加按下缩小的动画_利用-active配合transform
jvm·数据库·python
yejqvow1221 小时前
CSS如何制作加载时的点点点跳动效果_使用animation循环延迟
jvm·数据库·python
2401_8359568121 小时前
CSS如何解决CSS引入后的样式覆盖_理解优先级原则避免重写
jvm·数据库·python
爱学的小码21 小时前
MySQL(进阶)--存储过程和触发器
数据库·oracle
小旭952721 小时前
MySql调优详解
数据库·mysql·数据库架构
m0_5887584821 小时前
CSS如何创建三角箭头图标_通过border透明技巧实现
jvm·数据库·python
九皇叔叔21 小时前
MySQL实操指南:复制表及数据复制全解析
android·数据库·mysql