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

news2024/9/20 1:14:52

数据库管理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.coloradmin.cn/o/1482442.html

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

相关文章

多层感知器(神经网络)与激活函数

单个神经元(二分类) 多个神经元(多分类) 多层感知器 多层感知器,他是一种深度学习模型,通过多层神经元的连接和激活来解决非线性问题。 激活函数 激活函数的种类包括relu,sigmoid和tanh等 …

C 嵌入式系统设计模式 15:基本并发概念

本书的原著为:《Design Patterns for Embedded Systems in C ——An Embedded Software Engineering Toolkit 》,讲解的是嵌入式系统设计模式,是一本不可多得的好书。 本系列描述我对书中内容的理解。本文章描述嵌入式并发和资源管理模式之一…

GEE数据集——GLC_FCS30D - 全球 30 米土地覆被变化数据集(1985-2022 年)

GLC_FCS30D - 全球 30 米土地覆被变化数据集(1985-2022 年) 注 本数据集是正在提交的论文的一部分,因此没有引用和 DOI 信息。请在使用本数据集时注意这一点。 GLC_FCS30D 数据集是全球土地覆被监测领域的一项开创性进展,它以 30…

青少年CTF2024 #Round1 wp web

web EasyMD5 MD5碰撞,使用工具fastcoll生成内容不同但md5值相同的两个pdf文件上传即可获得flag; ./fastcoll_v1.0.0.5.exe -p 1.pdf -o 2.pdf 3.pdf # -p指定任意源文件,-o指定生成两个内容不同但md5值相同的目标文件 工具下载&#x…

【MySQL】复合查询(重点)-- 详解

一、基本查询练习回顾 1、查询工资高于 500 或岗位为 MANAGER 的雇员,同时还要满足他们的姓名首字母为大写的 J 2、按照部门号升序而雇员的工资降序排序 3、使用年薪进行降序排序 4、显示工资最高的员工的名字和工作岗位 5、显示工资高于平均工资的员工信息 6、显…

【AIGC】微笑的秘密花园:红玫瑰与少女的美好相遇

在这个迷人的画面中,我们目睹了一个迷人的时刻,女子则拥有一头柔顺亮丽的秀发,明亮的眼睛如同星河般璀璨,优雅而灵动,她的微笑如春日暖阳,温暖而又迷人。站在红玫瑰花瓣的惊人洪水中。 在一片湛蓝无云的晴…

100M服务器能同时容纳多少人访问

100M服务器的并发容纳人数会受到多种因素的影响,这些因素包括单个用户的平均访问流量大小、每个用户的平均访问页面数、并发用户比例、服务器和网络的流量利用率以及服务器自身的处理能力。 点击以下任一云产品链接,跳转后登录,自动享有所有…

精品SSM的选修课管理系统选课签到打卡

《[含文档PPT源码等]精品基于SSM的选修课管理系统设计与实现[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功! 软件开发环境及开发工具: Java——涉及技术: 前端使用技术:HTM…

leetcode--接雨水(双指针法,动态规划,单调栈)

目录 方法一:双指针法 方法二:动态规划 方法三:单调栈 42. 接雨水 - 力扣(LeetCode) 黑色的是柱子,蓝色的是雨水,我们先来观察一下雨水的分布情况: 雨水落在凹槽之间,在一个凹槽的…

Laravel Octane 和 Swoole 协程的使用分析二

又仔细研究了下 Octane 源码和 Swoole 的文档,关于前几天 Laravel Octane 和 Swoole 协程的使用分析中的猜想,得到进一步验证: Swoole 的 HTTP Server 启动后会创建一个 master 进程和一个 manager 进程;master 进程又会创建多个…

持安科技孙维伯:零信任在攻防演练下的最佳实践|DISCConf 2023

近日,在2023数字身份安全技术大会上,持安科技联合创始人孙维伯应主办方的特别邀请,发表了主题为“零信任在攻防演练下的最佳实践”的演讲。 孙维伯在2023数字身份安全技术大会上发表演讲 以下为本次演讲实录: 我是持安科技的联合…

Leetcode 第 386 场周赛题解

Leetcode 第 386 场周赛题解 Leetcode 第 386 场周赛题解题目1:3046. 分割数组思路代码复杂度分析 题目2:3047. 求交集区域内的最大正方形面积思路代码复杂度分析 题目3:3048. 标记所有下标的最早秒数 I思路代码复杂度分析 题目4:…

网站添加pwa操作和配置manifest.json后,没有效果排查问题

pwa技术官网:https://web.dev/learn/pwa 应用清单manifest.json文件字段说明:https://web.dev/articles/add-manifest?hlzh-cn Web App Manifest:Web App Manifest | MDN 当网站添加了manifest.json文件后,也引入到html中了&a…

决定西弗吉尼亚州地区版图的关键历史事件

决定西弗吉尼亚州地区版图的关键历史事件: 1. 内部分裂与美国内战: - 在1861年美国内战爆发时,弗吉尼亚州作为南方邦联的一员宣布退出美利坚合众国。然而,弗吉尼亚州西部的一些县由于经济结构(主要是农业非依赖奴隶制…

小程序事件处理

事件处理 一个应用仅仅只有界面展示是不够的,还需要和用户做交互,例如:响应用户的点击、获取用户输入的值等等,在小程序里边,我们就通过编写 JS 脚本文件来处理用户的操作 1. 事件绑定和事件对象 小程序中绑定事件与…

学习:GPT-4技术报告2023.3

原文链接:GPT-4的 (openai.com) 摘要: 我们创建了 GPT-4,这是 OpenAI 在扩展深度学习方面的最新里程碑。GPT-4 是一个大型多模态模型(接受图像和文本输入,发出文本输出),虽然在许多现实世界场…

SpringBoot之Actuator的两种监控模式

SpringBoot之Actuator的两种监控模式 springboot提供了很多的检测端点(Endpoint),但是默认值开启了shutdown的Endpoint&#xff0c;其他默认都是关闭的,可根据需要自行开启 文章目录 SpringBoot之Actuator的两种监控模式1. pom.xml2. 监控模式1. HTTP2. JMX 1. pom.xml <de…

XSS初级漏洞靶场

一、环境的搭建 可以在githb上找靶机包&#xff0c;使用小皮面板搭建在自己本机 与此文章类似&#xff08;放在www目录下&#xff09; 二、XSS漏洞简介 1、什么是xss漏洞 当用户访问被xss注入的网页&#xff0c;xss代码就会被提取出来。用户浏览器就会解析这段xss代码&…

网络防御第6次作业

防病毒网关 按照传播方式分类 病毒 病毒是一种基于硬件和操作系统的程序&#xff0c;具有感染和破坏能力&#xff0c;这与病毒程序的结构有关。病毒攻击的宿主程序是病毒的栖身地&#xff0c;它是病毒传播的目的地&#xff0c;又是下一次感染的出发点。计算机病毒感染的一般过…

会声会影使用教程:5分钟学会会声会影

工具材料&#xff1a; 工具材料&#xff1a; 会声会影软件 会声会影2023下载地址 https://souurl.cn/gbXy1d 会声会影2022下载地址 https://souurl.cn/2KpINh 会声会影2021下载地址 https://souurl.cn/jd1HOr 会声会影2020下载地址 https://souurl.cn/3EJxdZ 使用方法&am…