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

相关推荐
噢,我明白了13 小时前
MySql数据库数据基础操作(增删改查)
数据库·mysql·增删改查
神明93113 小时前
数据库模型设计实战:如何导出数据库完整数据字典_规范化流程
jvm·数据库·python
老纪13 小时前
SQL中如何查找包含关键字的行:FULLTEXT全文索引检索
jvm·数据库·python
dfdfadffa13 小时前
c++怎么利用std--filesystem--path处理包含多个扩展名的文件名【详解】
jvm·数据库·python
echola_mendes13 小时前
InfluxDB(五)——分片、压缩与降采样三大核心技术
数据库·时序数据库
阿正呀13 小时前
c++如何动态追加JSON数组到已有文件_nlohmann局部修改【详解】
jvm·数据库·python
m0_6908258213 小时前
CSS如何使用-disabled控制禁用按钮的鼠标样式_通过状态伪类优化交互
jvm·数据库·python
2301_7950997413 小时前
JavaScript事件委托机制在高性能列表开发中的应用
jvm·数据库·python
ㄟ留恋さ寂寞13 小时前
CSS如何引入CSS暗黑模式配置_通过媒体特性实现主题自动化
jvm·数据库·python
2401_8246976613 小时前
如何用 cookie 的 HttpOnly 与 Secure 属性防范 XSS 攻击
jvm·数据库·python