数据库管理-第153期 Oracle Vector DB AI-05(20240221)

数据库管理153期 2024-02-21

  • 数据库管理-第153期 Oracle Vector DB & AI-05(20240221)
    • 1 Oracle Vector的其他特性
      • 示例1:
      • 示例2
    • 2 简单使用Oracle Vector
      • 环境
      • 创建包含Vector数据类型的表
      • 插入向量数据
    • 总结

数据库管理-第153期 Oracle Vector DB & AI-05(20240221)

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

继续继续,本期将开始引入部分实操内容。

1 Oracle Vector的其他特性

  • SQL Join
    支持相似性搜索JOIN关系型数据。
  • 复杂、融合SQL
    – 支持所有类型的工作负载和数据模型:
    Graph, Text, JSON, Spatial, Relational, etc.
    – 支持所有 SQL,包括复杂的运算和功能:
    Window analytic functions, stored procedures, aggregation
  • 与向量搜索组合成复杂的、融合的SQL

在企业应用中,相似性搜索Joins关系型数据非常常见。需要企业级基于成本的优化器来决定选择Join和向量索引使用等。就现有的专用向量数据库而言,不可能做到以上功能。

示例1:

返回其中包含与此查询文本相似的文本,其中该书的类型为“小说”,作者来自“危地马拉(Guatemala)”的前5本书

image.png

Select pageID from Authors, Books, Pages where Authors.authorID = Books.authorID and Books.bookID = Pages.bookID and Books.bookGenre = 'Fiction' and Author.authorCountry = 'Guatemala'
order by vector_distance(pageVec, :queryVec) fetch approx first 5 rows only;

示例2

显示过去5年中根据与所提供查询图像的相似性按年份分组的前3张照片。这些照片应该是在距离旧金山20英里的范围内拍摄的,至少有100人观看过。

image.png

2 简单使用Oracle Vector

环境

项目内容
OSOracleLinux 9.3
DBOracle DB 23c
HOSTNAMEoradb23c
CDBorcl
PDBorclpdb1

由于Oracle DB 21c开始,Oracle取消了Non-CDB,因此后续操作都在PDB中执行。

创建包含Vector数据类型的表

vector数据类型作为Oracle DB 23c默认自带的数据类型,不需要类似于其他数据库那样的额外操作。

create table flower_vec (id number primary key,flower_image blob,flower_vector vector);

image.png

插入向量数据

这里我从百度随便找了一张花的图片,复制到/home/oracle/flower下,文件名为flower_example.png。
image.png
首先先创建一个基础表用来生成图片的二进制数据:

create table flower (flower_image blob);

导入图片二进制信息:

create directory flower_dir as '/home/oracle/flower';declarel_bfile bfile;l_blob blob;
begininsert into flower(flower_image) values (empty_blob()) return flower_image into l_blob;l_bfile := bfilename ('FLOWER_DIR','flower_example.png');dbms_lob.open(l_bfile, dbms_lob.file_readonly);dbms_lob.loadfromfile(l_blob,l_bfile,dbms_lob.getlength(l_bfile));dbms_lob.close(l_bfile);commit;
end;
/

image.png
生成向量数据并导入:
这里使用Python来生成向量数据并插入,关于SQL EMBEDDING放在正式版出来以后再测试:

from towhee import pipe, ops
p = (pipe.input('path').map('path', 'img', ops.image_decode()).map('img', 'vec', ops.image_embedding.timm(model_name='resnet50')).output('vec')
)
vector_data = p('flower_example.png').get()-->最终生成2048维度的向量,这里感谢我同事郑安宁同学提供的脚本

由于2048维度的向量超过了sqlplus支撑长度(Oracle Vector是支持至少4096维度的),因此只截取了前10个向量:

insert into flower_vec select 1,flower_image,to_vector('[0.050895579159259796,0.002409987384453416,0,0.01872553676366806,0.01558636873960495,0,0.0197914931923151,0,0.00522683234885335]') from flower;

image.png
image.png

总结

本期介绍了Oracle Vector的其他特性意见简单的实战使用。下一期将依据Oracle Livelabs中的介绍进行进一步探索。
老规矩,知道写了些啥。

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

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

相关文章

启动node服务报错Error: listen EACCES: permission denied 0.0.0.0:5000

启动node服务报错: 解决方案: 将监听端口改成3000或者其他 修改后结果: 参考原文: Error: listen EACCES: permission denied_error when starting dev server: error: listen eacc-CSDN博客

板块一 Servlet编程:第八节 文件上传下载操作 来自【汤米尼克的JavaEE全套教程专栏】

板块一 Servlet编程:第八节 文件的上传下载操作 一、文件上传(1)前端内容(2)后端内容 二、文件下载(1)前端的超链接下载(2)后端下载 在之前的内容中我们终于结束了Servle…

【云原生】Docker 安全与CA证书生成

目录 容器的安全行问题 Docker 容器与虚拟机的区别 Docker 存在的安全问题 1.Docker 自身漏洞 2.Docker 源码问题 Docker 架构缺陷与安全机制 1. 容器之间的局域网攻击 2. DDoS 攻击耗尽资源 3. 有漏洞的系统调用 4. 共享root用户权限 Docker 安全基线标准 1. 内…

sympy奇异函数

文章目录 简介SingularityFunctionrewrite 简介 奇异函数是一类不连续函数&#xff0c;可用麦考利括号表示为 f ( t ) < t − t 0 > n f(t)\lt t-t_0\gt^n f(t)<t−t0​>n 当 n < 0 n\lt 0 n<0时&#xff0c;记 N − n − 1 ≥ 0 N-n-1\geq0 N−n−1≥0&…

【云原生】持续集成持续部署

本文主要总结CI/CD的流程&#xff0c;不会详细介绍每个知识点。 啥是集成&#xff1f;啥是部署&#xff1f; 集成&#xff0c;就是把应用程序、相关环境、配置全局打包放在一个容器中的操作。部署就不解释了。 CI/CD 如果是自己手动部署的话&#xff0c;流程应该是这样的&am…

Android 沉浸式状态栏

过时的API //设置默认隐藏虚拟按键&#xff0c;虚拟按键显示后为半透明protected open fun hideNavigationBarAndFullScreen() {val flags: Int// This work only for android 4.4flags if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) {// This work only for a…

【算法与数据结构】797、LeetCode所有可能的路径

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;有向无环图&#xff08;Directed acyclic graph, DAG&#xff09;是图论中的一个概念&#xff0c;它指…

SQL注入之DNSLog外带注入

一、认识&#xff1a; 什么是dnslog呢&#xff1f; DNS就是域名解析服务&#xff0c;把一个域名转换成对应的IP地址&#xff0c;转换完成之后&#xff0c;DNS服务器就会有一个日志记录本次转换的时间、域名、域名对应的ip、请求方的一些信息&#xff0c;这个日志就叫DNSLog。…

2.21作业

使用多进程完成两个文件的拷贝&#xff0c;父进程拷贝前一半&#xff0c;子进程拷贝后一半&#xff0c;父进程回收子进程的资源。 程序代码&#xff1a; #include <myhead.h>typedef struct {int start;//拷贝的起始位置int end;//拷贝的结束位置int source_fd;//被拷…

什么是正定矩阵?Positive Definite Matrices (done)

正定矩阵的定义&#xff1a;https://baike.baidu.com/item/%E6%AD%A3%E5%AE%9A%E7%9F%A9%E9%98%B5/11030459 正定矩阵的作用、验证视频&#xff1a;https://www.bilibili.com/video/BV1Ag411M76G/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c…

详解 IT/OT 融合的五层架构(从PLC/SCADA到MES/ERP)

作为一个电气自动化的从业者&#xff0c;有必要搞懂下面术语的意思。 IT&#xff1a;Information Technology的缩写&#xff0c;指信息技术&#xff1b; OT&#xff1a;Operational Technology的缩写&#xff0c;指操作层面的技术&#xff0c;比如运营技术&#xff1b;CT&…

5、电源管理入门之 arm-scmi和mailbox核间通信

目录 1. 整体架构介绍 2 Linux中reset模块 2.1 Reset consumer 2.2 Reset provider 3. Linux SCMI reset通信 3.1 SCMI reset协议初始化 3.2 SCMI reset消息收发 4. SCP中reset 4.1 固件新增module 4.2 scmi_reset_domain初始化 4.3 scmi_reset_domain消息处理 4.3…

JavaScript数据类型学习脑图

字符串&#xff08;String&#xff09;、数字(Number)、布尔(Boolean)、数组(Array)、对象(Object)、空&#xff08;Null&#xff09;、未定义&#xff08;Undefined&#xff09;

跨境电商本土化运营:深度融合本地市场,提升用户体验与市场份额

随着全球经济的不断发展&#xff0c;跨境电商在国际贸易中扮演着越来越重要的角色。然而&#xff0c;单一地面对全球市场可能并不足以满足用户的多样化需求&#xff0c;因此&#xff0c;跨境电商需要与本地市场深度融合&#xff0c;实现本土化运营。本文Nox聚星将和大家探讨跨境…

Linux CAfile 文件下的/ca-bundle.crt怎么生成的

在配置Linux Nginx SSL证书后&#xff0c;通过服务器访问域名时发现&#xff0c;服务器返回的CA证书是&#xff1a;/etc/pki/tls/certs/ca-bundle.crt 正式我在使用Spring Native安装了Docker自动生成的&#xff0c;而且开启了Docker的自启动&#xff0c;如果你和我一样&#x…

单调栈总结以及Leetcode案例解读与复盘

单调栈总结以及Leetcode案例解读与复盘 一、单调栈是什么&#xff1f; 单调栈&#xff08;monotonous stack&#xff09;是指栈的内部从栈底到栈顶满足单调性的栈结构。 二、如何维护单调性 新元素入栈时&#xff0c;会与栈顶元素进行比较&#xff0c;使得栈始终保持单调性…

Nginx原理及服务安装

目录 引言 一、Nginx简介 二、Nginx工作场景 &#xff08;一&#xff09;Nginx的工作场景 &#xff08;二&#xff09;影响用户体验的因素 三、IO模型 &#xff08;一&#xff09;零拷贝技术 &#xff08;二&#xff09;IO模型的相关概念 &#xff08;三&#xff09;n…

【成都游戏业:千游研发之都的发展与机遇】

成都游戏业&#xff1a; 千游研发之都的发展与机遇 作为我国西部游戏产业的龙头&#xff0c;成都这座城市正在高速发展&#xff0c;目标是崛起成为千亿级游戏研发之都。多年来&#xff0c;在政策扶持、人才汇聚以及文化底蕴等助力下&#xff0c;成都游戏业已经形成完整的产业链…

Groq?全球最快的人工智能模型?

Groq&#xff1f;全球最快的人工智能模型&#xff1f; 前言什么是GroqGroq是如何工作的&#xff1f;如何使用Groq常见问题解答1. Groq 与其他 AI 模型有什么区别&#xff1f;2. 有什么限制&#xff1f;3. 谁可以使用&#xff1f;4. 费用是多少&#xff1f;5.什么是接口板&#…

代码随想录算法训练营第二十四天 | 回溯算法理论基础,77. 组合 [回溯篇]

代码随想录算法训练营第二十四天 回溯算法理论基础什么是回溯法回溯法的理解回溯法模板 LeetCode 77.组合题目描述思路参考代码总结优化版本 回溯算法理论基础 文章讲解&#xff1a;代码随想录#回溯算法理论基础 视频讲解&#xff1a;带你学透回溯算法&#xff08;理论篇&#…