数据库管理-第154期 Oracle Vector DB AI-06(20240223)

news2024/11/17 3:27:16

数据库管理154期 2024-02-23

  • 数据库管理-第154期 Oracle Vector DB & AI-06(20240223)
    • 1 环境准备
      • 创建表空间及用户
      • TNSNAME配置
    • 2 Oracle Vector的DML操作
      • 创建示例表
      • 插入基础数据
      • DML操作
        • UPDATE操作
        • DELETE操作
    • 3 多Vector列表
    • 4 固定维度的向量操作
    • 5 不同向量格式的表
    • 总结

数据库管理-第154期 Oracle Vector DB & AI-06(20240223)

作者:胖头鱼的鱼缸(尹海文)
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 环境准备

由于上一期的基本演示是用sys用户执行的,众所周知在生产中不要在任何生产数据放在sys用户和system、sysaux等系统表空间中。为了避免往后有人产生误解,今天重新配置下环境并操作。

创建表空间及用户

create tablespace vector_tbs datafile size 500m autoextend on next 500m maxsize unlimited;
create user vector identified by vector account unlock;
grant DB_DEVELOPER_ROLE to vector;
alter user vector default tablespace vector_tbs quota unlimited on vector_tbs;

image.png
后续操作都将在orclpdb1中的vector用户执行,数据将存放在vector_tbs表空间中。

TNSNAME配置

/u01/app/oracle/product/23.0.0/dbhome_1/network/admin/tnsnames.ora
# 添加以下内容
ORCLPDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oradb23c)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orclpdb1)
    )
  )

image.png

sqlplus vector/vector@orclpdb1

image.png

2 Oracle Vector的DML操作

创建示例表

CREATE TABLE IF NOT EXISTS t1
   ( id           NUMBER PRIMARY KEY,
     name         VARCHAR2(32),
     v1           VECTOR
   );

DESC t1;

image.png

插入基础数据

INSERT INTO t1 VALUES (1, 'A', '[1.1]'),
                      (2, 'B', '[2.2]'),
                      (3, 'C', '[3.3]'),
                      (4, 'D', '[4.4]'),
                      (5, 'E', '[5.5]');

commitSELECT * FROM t1;

image.png
image.png

DML操作

UPDATE操作
UPDATE t1 SET v1 = '[2.9]' WHERE id = 2;

commit;

SELECT * FROM t1 WHERE id = 2;

image.png

DELETE操作
DELETE FROM  t1 WHERE id IN (1, 3);

commit;

SELECT * FROM t1;

image.png

3 多Vector列表

在Oracle Vector DB中,一张表可以拥有多个vector数据类型的列,可以满足更多的应用场景。

CREATE TABLE IF NOT EXISTS t2
       ( id           NUMBER NOT NULL,
         name         VARCHAR2(32),
         v1           VECTOR,
         v2           VECTOR,
         v3           VECTOR,
                      PRIMARY KEY (id)
       );

DESC t2;

image.png

INSERT INTO t2 VALUES
       (1,
        'One',
        '[2.3, 4.5, 0.1]',
        '[1.3]',
        '[4.981, -6.3]'
       );

commit;

SELECT * FROM t2;

image.png
image.png

4 固定维度的向量操作

VECTOR (<optional NUM of dimensions>, <optional format for dimension values>)
维度值的类型可以是FLOAT32, FLOAT64, 或者 INT8

之前介绍vector数据类型的时候,有向量维度数量和向量维度精度两个可选配置内容,Oracle Vector DB支持64K个向量维度,而且当向量维度数量配置之后,这个数量将作为一个check约束。下面是一些AI模型中vector embeddings的维度数量:

  • OpenAI text-embedding-ada-002 = 1536 dimensions
  • Cohere Embed-English-v2.0 = 4096 dimensions
  • Cohere Embed-English-Light-v2.0 = 1024 dimensions
  • Cohere Embed-Multilingual-v2.0 = 768 dimensions
  • open-source all-MiniLM-L6-v2 = 384 dimensions
CREATE TABLE IF NOT EXISTS t3
              ( v   VECTOR(3, FLOAT32) );

DESC t3;

image.png

INSERT INTO t3 VALUES ('[1.1, 2.2, 3.3]');
INSERT INTO t3 VALUES ('[1.2, 2.3, 3.4]');
INSERT INTO t3 VALUES ('[1.2, 2.3, 3.4]');
INSERT INTO t3 VALUES ('[1.3]');
INSERT INTO t3 VALUES ('[1.3, 2.4, 3.5, 4.1]');
INSERT INTO t3 VALUES ('[1.4, 2.5, a]');

这里前三条数据可以正常插入:
image.png
后三条数据因为向量维度数量约束限制插入失败:
image.png

5 不同向量格式的表

既然Oracle Vector DB支持有多个Vector数据类型的表,那么每个Vector列的配置格式也是可以不同的。

CREATE TABLE IF NOT EXISTS t4
         ( v1        VECTOR(3, float32),
           v2        VECTOR(2, float64),
           v3        VECTOR(1, int8),
           v4        VECTOR(1, *),
           v5        VECTOR(*, float32),
           v6        VECTOR(*, *),
           v7        VECTOR
         );

DESC t4;

image.png

INSERT INTO t4 VALUES ('[1.1, 2.2, 3.3]',
                       '[1.1, 2.2]',
                       '[7]',
                       '[9]',
                       '[1.1, 2.2, 3.3, 4.4, 5.5]',
                       '[1.1, 2.2]',
                       '[1.1, 2.2, 3.3, 4.4, 5.5, 6.6]'
                      );

commit;

select * from t4;

image.png
这里附上Oracle Vector DB中Vector数据类型格式的解释:

  • vector(*, float64) 任何数量的维度,维度值类型为float64
  • vector(5, *) 5个维度数量,可以使用任意维度值类型
  • vector(*, *) 任意维度数量,可以使用任意维度值类型
  • vector 任意维度数量,维度值类型为float32
  • vector(1, int8) 1个维度数量,维度值类型为int8
  • int8 是一个独立的byte

总结

本期简单介绍了Oracle Vector DB的DML操作,向量维度与维度类型以及多Vector列表的相关内容。
老规矩,知道写了些啥。

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

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

相关文章

【达梦数据库】数据库的方言问题导致的启动失败

问题场景 在项目中采用了hibernate &#xff0c;连接数据库原本为ORACLE&#xff0c;后续打算改造为国产数据库 达梦 链接配置&#xff1a; # 达梦写法&#xff0c; index:driver-class-name: dm.jdbc.driver.DmDriverjdbc-url: jdbc:dm://192.168.220.225:5236/IDX4username:…

深入探索pdfplumber:从PDF中提取信息到实际项目应用【第94篇—pdfplumbe】

深入探索pdfplumber&#xff1a;从PDF中提取信息到实际项目应用 在数据处理和信息提取的过程中&#xff0c;PDF文档是一种常见的格式。然而&#xff0c;要从PDF中提取信息并进行进一步的分析&#xff0c;我们需要使用适当的工具。本文将介绍如何使用Python库中的pdfplumber库来…

危险!Wyze 摄像头安全漏洞致1.3万用户隐私遭窥探

最近&#xff0c;一则关于 Wyze 摄像头再次出现安全漏洞的新闻引起了人们的广泛关注。据报道&#xff0c;该安全漏洞导致约1.3万用户的摄像头受到了未经授权的访问&#xff0c;使得这些用户的隐私信息遭到了窥视。这一事件再次引发了人们对网络安全的关注和讨论。 网络安全不仅…

老杨说运维 | 运维大数据价值探索

文末附有视频 伴随第六届双态IT乌镇用户大会的圆满完成&#xff0c;擎创科技“一体化数智管理和大模型应用”主题研讨会也正式落下了帷幕。 云原生转型正成为很多行业未来发展战略&#xff0c;伴随国家对信创数字化要求的深入推进&#xff0c;面对敏稳共存这一近年出现的新难…

svn客户端下载、安装、使用

下载、使用 打开360软件管家&#xff0c;选怎宝库&#xff0c;搜索svn&#xff0c;点击安装 可以修改安装路径 使用 在桌面右键弹出菜单&#xff0c;点击 输入地址&#xff0c;点击ok 输入用户名、密码 &#xff0c;等待检出完成

Linux 可视化管理-webmin 和 bt 运维工具安装教程

Linux 可视化管理-webmin 和 bt 运维工具安装教程 webmin webmin 是功能强大的基于 Web 的 Unix/linux 系统管理工具。管理员通过浏览器访问 Webmin 的各种管理功能并完成相应的管理操作。除了各版本的 linux 以外还可用于&#xff1a;AIX、HPUX、Solaris、Unixware、Irix 和…

Linux学习方法-框架学习法——Linux应用程序编程框架

配套视频学习链接&#xff1a;https://www.bilibili.com/video/BV1HE411w7by?p4&vd_sourced488bc722b90657aaa06a1e8647eddfc 目录 Linux应用程序编程 Linux应用程序编程 Linux文件I/O(input/output) Linux文件I/O(五种I/O模型) Linux多进程 Linux多线程 网络通信(s…

游戏空间划分技术

一、 前言 空间划分算法有很多&#xff0c;比如均匀网格&#xff0c;四/八叉树&#xff0c;k-d树&#xff0c;Bsp树&#xff0c;每一种算法都有自己的优缺点&#xff0c;我们需要从理论上理解这些算法&#xff0c;然后在实际项目中进行灵活的运用。 游戏中经常使用空间划分算…

【深度学习】Pytorch 系列教程(七):PyTorch数据结构:2、张量的数学运算(5):二维卷积及其数学原理

文章目录 一、前言二、实验环境三、PyTorch数据结构1、Tensor&#xff08;张量&#xff09;1. 维度&#xff08;Dimensions&#xff09;2. 数据类型&#xff08;Data Types&#xff09;3. GPU加速&#xff08;GPU Acceleration&#xff09; 2、张量的数学运算1. 向量运算2. 矩阵…

TESTLINK 测试用例数据结构解析

一、node_types 测试组件信息表 我们查询表 select * from testlink.node_types; 得到如下结果 二、nodes_hierarchy 测试用例目录层次表 我们以下图的项目为例&#xff0c;来讲解 1、测试项目 首先&#xff0c;我们有个Train的项目&#xff0c;存在表testprojects中&#…

动态获取 微信小程序appid / 自定义启动命令

官网&#xff1a;https://uniapp.dcloud.net.cn/collocation/package.html#%E7%94%A8%E6%B3%95 小程序开发完成之后需要一套代码多个小程序使用&#xff0c;每次都需要在manifest.json文件中手动修改&#xff0c;大大增加了开发的复杂度。 官网&#xff1a;https://uniapp.dcl…

【大数据】Flink 内存管理(一):设置 Flink 进程内存

Flink 内存管理&#xff08;一&#xff09;&#xff1a;设置 Flink 进程内存 1.配置 Total Memory2.JVM 参数3.根据比例限制的组件&#xff08;Capped Fractionated Components&#xff09; Apache Flink 通过严格控制各种组件的内存使用&#xff0c;在 JVM 上提供高效的工作负…

测试计划、测试方案、测试策略、测试用例的区别

一 测试计划 测试计划是指描述了要进行的测试活动的范围、方法、资源和进度的文档。它主要包括测试项、被测特性、各阶段的测试任务、时间进度安排&#xff0c;谁执行任务和风险控制等&#xff0c;可以包括测试策略。 二 测试方案 测试方案是指描述需要测试的特性、测试的方…

Android 输入法框架简介

每种平台都有自己的输入法框架. GNU/Linux 桌面环境有多种输入法框架, 比如 ibus, fcitx 等. 但是 Android 操作系统只有一种, 是统一提供的输入法框架. 相关链接: 《ibus 源代码阅读 (1)》 https://blog.csdn.net/secext2022/article/details/136099328https://developer.and…

【Pytorch】从MoCo看无监督对比学习;从SupCon看有监督对比学习

目录 无监督对比学习&#xff1a;Moco文章内容理解代码解释 有监督对比学习&#xff1a;Supervised Contrastive Learning文章内容理解 无监督对比学习&#xff1a;Moco 文章内容理解 以下内容全部来自于&#xff1a;自监督学习-MoCo-论文笔记. 侵删 论文&#xff1a;Momentu…

ShardingSphere5.x 分库分表

一、shardingSphere介绍 1、官网&#xff1a;Apache ShardingSphere 2、开发文档&#xff1a; 概览 :: ShardingSphere 3、shardingsphere-jdbc ShardingSphere-JDBC 定位为轻量级 Java 框架&#xff0c;在 Java 的 JDBC 层提供的额外服务。 它使用客户端直连数据库&#x…

Vue3+TS+ElementPlus 001 环境配置

1.1 环境准备 1.1.1 安装vue-cli&#xff08;第一次需要&#xff09; npm install -g vue/cli 1.1.2 创建vue项目 vue create 项目名称(项目名称尽量不要使用中文) 1.1.3 选择相应的项目 1.1.4 启动项目 npm run serve 2.1 引入element-plus 2.1.1 安装 一个 Vue 3 UI 框…

Linux操作体系结构与功能流程

文章目录 前言一、linux操作系统结构二、操作系统的工作方式三、操作系统内核中各级模块的相互关联四、Linux操作系统结构的独立性 前言 以内核代码 v0.11 和 v3.4.2 版本源码对 Linux 内核相关知识进行学习&#xff0c;由浅入深逐步掌握 Linux 内核。本文记录 Linux 操作系统…

小区视频汇聚与智能监管方案:老破小升级改造与小区智慧化建设

一、需求背景 在当今数字化时代&#xff0c;智慧小区已成为城市建设的必然趋势。加快小区智能化改造&#xff0c;不断完善小区管理和服务&#xff0c;彻底改变粗放型管理方式已经成为当前小区智慧化趋势的重要任务。其中&#xff0c;智能视频监控系统在提高小区安全性和管理效…

ROS查找pkg

要在ROS中查找包名为"joint_state_publisher"的软件包&#xff0c;可以使用以下命令行指令来进行查找&#xff1a; 查找pkg“joint_state_publisher” rospack find joint_state_publisher这将返回该软件包所在的路径。如果结果不存在或者未安装该软件包&#xff0…