数据库管理-第157期 Oracle Vector DB AI-08(20240301)

数据库管理157期 2024-03-01

  • 数据库管理-第157期 Oracle Vector DB & AI-08(20240301)
    • 1 创建示例向量
    • 2 查找最近向量
    • 3 基于向量簇组的最近向量查询
    • 总结

数据库管理-第157期 Oracle Vector DB & AI-08(20240301)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Associate: Database(Oracle与MySQL)
国内某科技公司 DBA总监
10年数据库行业经验,现主要从事数据库服务工作
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP、认证技术专家、年度墨力之星,ITPUB认证专家,OCM讲师
圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭。

进入新的一个月,昨天可能是很多国产数据库开始较大规模使用遇到的第一个闰二月,听说有些国产数据库直接跳过了2月29日来到了3月1日,挺好玩的。
本期内容,模拟在一个二维平面上进行近似查询。

1 创建示例向量

按照下图内容,以X和Y轴创建对应的向量信息:
image.png

CREATE TABLE IF NOT EXISTS vt1(id   NUMBER NOT NULL,v    VECTOR(2, FLOAT32),PRIMARY KEY (id));DESC vt1;

image.png

INSERT INTO vt1 VALUES (1, '[3, 3]'),  (2, '[5, 3]'),  (3, '[7, 3]'),(4, '[3, 5]'),  (5, '[5, 5]'),  (6, '[7, 5]'),(7, '[3, 7]'),  (8, '[5, 7]'),  (9, '[7, 7]');COMMIT;SELECT * FROM vt1 ORDER BY id;

image.png

2 查找最近向量

1.以下图方式,查找q点(0,5)最近的3个向量点:
image.png
从图中实际情况来看最近的为2,1,3或者2,3,1。

SELECT id
FROM   vt1
ORDER  BY  vector_distance(vector('[5, 0]'), v)
FETCH FIRST 3 ROWS ONLY;

image.png
2.以下图方式,查找q点(3,0)最近的3个向量点:
image.png
从图中实际情况来看最近的为1,2,3。

SELECT id
FROM   vt1
ORDER  BY  vector_distance(vector('[3, 0]'), v)
FETCH FIRST 3 ROWS ONLY;

image.png
3.以下图方式,查找q点(3,9)最近的3个向量点:
image.png
从图中实际情况来看最近的为7,8,4。

SELECT id
FROM   vt1
ORDER  BY  vector_distance(vector('[3, 9]'), v)
FETCH FIRST 3 ROWS ONLY;

image.png
4.以下图方式,查找q点(3.1,6.9)最近的4个向量点:
image.png
从图中实际情况来看最近的为7,4,8,5或者7,8,4,5。

SELECT id
FROM   vt1
ORDER  BY vector_distance(vector('[3.1, 6.9]'), v)
FETCH FIRST 4 ROWS ONLY;

image.png

3 基于向量簇组的最近向量查询

目前,vector_distance的结果依赖于两个内容:

  • 对于向量簇来说,查询向量所在的位置,以特定向量或坐标为中心,比如(5,5)
  • 结果集有多少行

然而,向量数据通常由一组向量簇组成,并且数据往往不是均匀分布的。也可能存在零个或多个数据簇。因此,向量簇往往表示相似数据的组。例如:地址、汽车类型、人名、报告或书籍等。
1.下面的示例有5个向量簇。因此我们会在vt1表中添加其他4组向量簇。这里你会发现一个向量簇中有负值(或坐标)。
image.png

INSERT INTO vt1 VALUES (21, '[9, -1]'),(22, '[10, -1]'),(23, '[11, -1]'),(24, '[9, -3]'),(25, '[10, -4]'),(26, '[12, -3]') ;
INSERT INTO vt1 VALUES (31, '[13, 6]'),(32, '[14, 7]'),(33, '[14, 4]'),(34, '[16, 6]') ;
INSERT INTO vt1 VALUES (41, '[0, 7]'),(42, '[1, 7]'),(43, '[1, 6]'),(44, '[0, 5]'),(45, '[1, 5]') ;
INSERT INTO vt1 VALUES (51, '[5, 9]'),(52, '[7, 9]'),(53, '[6, 10]'),(54, '[5, 11]'),(55, '[7, 11]') ;COMMIT ;SELECT * FROM vt1;

image.png
image.png
2.以下图方式,查找q点(16,4)最近的3个向量点:
image.png
从图中实际情况来看,我们希望结果是3x。

SELECT id
FROM   vt1
ORDER  BY vector_distance(vector('[16, 4]'), v)
FETCH FIRST 3 ROWS ONLY;

image.png
3.以下图方式,查找q点(7,-5)最近的5个向量点:
image.png
从图中实际情况来看,我们希望结果是2x。

SELECT id
FROM   vt1
ORDER  BY vector_distance(vector('[7, -5]'), v)
FETCH FIRST 5 ROWS ONLY;

image.png
4.以下图方式,查找q点(6,10)最近的5个向量点:
image.png
从图中实际情况来看,我们希望结果是5x。

SELECT id
FROM   vt1
ORDER  BY vector_distance(vector('[6, 10]'), v)
FETCH FIRST 5 ROWS ONLY;

image.png
5.以下图方式,查找q点(6,8)最近的4个向量点:
image.png
从图中实际情况来看,我们希望结果是8,9,51,52。

SELECT id
FROM   vt1
ORDER  BY vector_distance(vector('[6, 8]'), v)
FETCH FIRST 4 ROWS ONLY;

image.png
6.以下图方式,查找q点(2.5,8.5)最近的4个向量点:
image.png
从图中实际情况来看,我们希望结果是x,4x,5x。

SELECT id
FROM   vt1
ORDER  BY vector_distance(vector('[2.5, 8.5]'), v)
FETCH FIRST 4 ROWS ONLY;

image.png

总结

本期通过多个实际案例演示了Oracle Vector DB中如何实现近似查询。
老规矩,知道写了些啥。

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

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

相关文章

【axiox】前后端接口通讯数据交互

重要全局配置: axios.create(); 设置axios请求的公共配置信息。 service.interceptors.request.use((config)>{}) 请求拦截器 service.interceptors.response.use((res)>{},(err)>{}) 响应拦截器 const source axios.CancelToken.source(); 用…

oracle RAC节点重构

一、清除集群上二节点的节点信息 1、删除实例 dbca或静默: [oraclerac1 ~]$ dbca -silent -deleteinstance -nodelist rac2 -gdbname orcl -instancename orcl2 -sysdbausername sys -sysdbapassword oracledbca-实例管理-删除节实例-选择服务输入密码-选择inactiv…

基于小波神经网络的数据分类算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 1.程序功能描述 基于小波神经网络的数据分类算法。输入为5个特征值,输出为判断(是,否)。拿50组数据对本算法作为训练组,后30组数据作…

B树、B+树、红黑树的定义、之间的区别、优缺点、数据结构、应用等

目录 B树 定义 数据结构 优点 缺点 应用 B树 定义 数据结构 优点 缺点 应用 红黑树 定义 数据结构 优点 缺点 应用 B树与B树与红黑树的区别 B树 定义 B树是一种自平衡的多路搜索树,它可以有多个子节点,不同于二叉树的是,一…

深入学习NumPy库在数据分析中的应用场景

在数据科学与机器学习领域,NumPy(Numerical Python)是一个经常被提及的重要工具。它是Python语言中一个非常强大的库,提供了高性能的多维数组对象以及用于处理这些数组的工具。NumPy不仅仅是一个用于数值计算的库,它还…

【PCB】用透明胶带制作印制板

用透明胶带作保护层来制作印制电路的方法,简单实用,作出的电路板质量较好,具体作法如下: (1)裁下一块敷铜板,用水磨砂纸将其四周毛刺磨平,用去污粉处理敷铜板表面上的污垢&#xff…

基于粒子群优化算法的图象聚类识别matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于粒子群优化算法的图象聚类识别。通过PSO优化方法,将数字图片的特征进行聚类,从而识别出数字0~9. 2.测试软件版本以及运行结果展示 M…

Hadoop之HDFS——【模块一】元数据架构

一、元数据是什么 在HDFS中,元数据主要指的是文件相关的元数据,通过两种形式来进行管理维护,第一种是内存,维护集群数据的最新信息,第二种是磁盘,对内存中的信息进行维护与持久化,由namenode管理维护。从广义的角度来说,因为namenode还需要管理众多的DataNode结点,因…

【测试开发面试复习(一)】计算机网络:应用层详解(P2)补充ing

复习自用,若有错漏,欢迎一起交流一下~~ 一、高频面试题记录 uri 和 url 的区别 ? dns 是啥工作原理,主要解析过程是啥? 用户输入网址到显示对应页面的全过程是啥? http 头部包含哪些信息? http…

IEEE Trans. On Robotics ​“受护理人员启发的双臂机器人穿衣”研究工作

开发能够协助穿衣的辅助机器人,可以极大地改善老年人和残疾人的生活。然而,大多数机器人穿衣策略只考虑使用单个机器人,这大大限制了穿衣辅助的性能。事实上,专业护理人员是通过双臂来完成这项任务的。受其启发,我们提…

【YOLO v5 v7 v8 小目标改进】Non-local 注意力实现非局部神经网络,解决长空间和时间数据依赖问题

Non-local 注意力实现非局部神经网络,解决长空间和时间数据依赖问题 提出背景长距离技术对比Non-local Block是怎么设计Non-local 神经网络效果 小目标涨点YOLO v5 魔改YOLO v7 魔改YOLO v8 魔改 提出背景 论文:https://arxiv.org/pdf/1711.07971.pdf …

用 tensor-parallel 多卡并发推理大模型

利用 tensor-parallel 把模型训练与推理的 workload 平均分布到多块 GPU,一方面可以提高推理速度,另一方面 vram 的负载平衡也让复杂的 prompt 能被轻松处理。 import 相关的 libs: # torch version 2.0.0 import torch # tensor-parallel …

抽象类与抽象方法

文章目录 抽象类抽象类的特点 抽象方法抽象方法的特点 模板设计模式模板设计模式能解决的问题示例 #抽象类与抽象方法 抽象类 用abstract关键字来修饰一个类时,这个类就叫抽象类。 public abstract 类名{... }抽象类的特点 1)抽象类不能被实例化。 2&…

AOP(黑马学习笔记)

AOP基础 学习完spring的事务管理之后,接下来我们进入到AOP的学习。 AOP也是spring框架的第二大核心,我们先来学习AOP的基础。 在AOP基础这个阶段,我们首先介绍一下什么是AOP,再通过一个快速入门程序,让大家快速体验A…

JAVASE初认识

1.初认识其结构 1.源文件(扩展名为*.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个类。类的内容必须包含在花括号里面。 2.类:类中带有一个或多个方法。方法必须在类的内部声明。 3.方法&#xff1…

vue3创建h5 项目使用rem做响应式的配置

第一步 安装依赖: npm install amfe-flexible -S npm install postcss-px2rem -S第二步 main.ts文件中导入 import "amfe-flexible/index.js";第三步 进行配置: vue3 项目中创建 postcss.cinfig.js文件,这里是基于设计稿是750px…

gRPC知识归档

文章目录 gRPC知识归档gRPC原理什么是gRPCgRPC的特性gRPC支持语言gRPC使用场景gRPC设计的动机和原则 数据封装和数据传输问题网络传输中的内容封装和数据体积问题JSONProtobuf(微服务之间的服务器调用,一般采用二进制序列化,比如protobuf&…

精读《React Hooks 最佳实践》

简介 React 16.8 于 2019.2 正式发布,这是一个能提升代码质量和开发效率的特性,笔者就抛砖引玉先列出一些实践点,希望得到大家进一步讨论。 然而需要理解的是,没有一个完美的最佳实践规范,对一个高效团队来说&#x…

【airtest】自动化入门教程(二)airtest操作

目录 一、touch 二、wait 三、swipe 四、exists 五、text 六、keyevent 七、snapshot 八、sleep 九、断言 9.1 assert_exists 9.2 assert_not_exists 9.3 assert_equal 9.4 assert_not_equal 前言:本文主要针对aritest部分的基础操作,aritest是一个跨平…

网络编程第二天

1.基于TCP的通信(面向连接的通信) 服务器代码实现&#xff1a; #include <myhead.h> #define IP "192.168.126.91" #define PORT 9999 int main(int argc, const char *argv[]) {//1、创建套接字int sfd-1;if((sfdsocket(AF_INET,SOCK_STREAM,0))-1){perror(…