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

news/发布时间2024/5/14 9:00: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.bcls.cn/hDbD/4657.shtml

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

相关文章

瑞_Redis_初识Redis(含安装教程)

文章目录 1 初识Redis1.1 认识NoSQL1.1.1 结构化与非结构化1.1.2 关联和非关联1.1.3 查询方式1.1.4 事务1.1.5 总结 1.2 认识Redis1.2.1 介绍1.2.2 特征1.2.3 优势 1.3 安装Redis ★★★1.3.1 Linux安装Redis1.3.1.0 资源准备1.3.1.1 安装Redis依赖1.3.1.2 上传安装包并解压1.3…

Spring Boot对接RocketMQ示例

部署服务 参考RocketMq入门介绍 示例 引入maven依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.2.2</version></dependency>完整依赖如下&am…

Flink 在蚂蚁实时特征平台的深度应用

摘要&#xff1a;本文整理自蚂蚁集团高级技术专家赵亮星云&#xff0c;在 Flink Forward Asia 2023 AI 特征工程专场的分享。本篇内容主要分为以下四部分&#xff1a; 蚂蚁特征平台特征实时计算特征 Serving特征仿真回溯 一、蚂蚁特征平台 蚂蚁特征平台是一个多计算模式融合的高…

C语言:指针的进阶讲解

目录 1. 二级指针 1.1 二级指针是什么&#xff1f; 1.2 二级指针的作用 2. 一维数组和二维数组的本质 3. 指针数组 4. 数组指针 5. 函数指针 6. typedef的使用 7. 函数指针数组 7.1 转移表 1. 二级指针 如果了解了一级指针&#xff0c;那二级指针也是可以很好的理解…

iMazing2024Windows和Mac的iOS设备管理软件(可以替代iTunes进行数据备份和管理)

iMazing2024是一款兼容 Windows 和 Mac 的 iOS 设备管理软件&#xff0c;可以替代 iTunes 进行数据备份和管理。以下是一些 iMazing 的主要功能和优点&#xff1a; 数据备份和恢复&#xff1a;iMazing 提供了强大的数据备份和恢复功能&#xff0c;可以备份 iOS 设备上的各种数据…

05.STLvector、list、stack、queue

STL标准模板库 standard template library STL将原来常用的容器和操作进行封装&#xff0c;增加了C的编码效率 容器 string #include vector #include list #include stack #include queue #include set #include map #include 迭代器 容器和算法之间的粘合剂&#xff0…

188. 买卖股票的最佳时机 IV

188. 买卖股票的最佳时机 IV 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a;_188买卖股票的最佳时机IV_一个变量一个坑_188买卖股票的最佳时机IV_二维dp_188买卖股票的最佳时机IV_一维dp 错误经验吸取 原题链接&#xff1a; 188. 买卖股…

C++力扣题目 739--每日温度 496--下一个更大元素I 503--下一个更大元素II

739. 每日温度 力扣题目链接(opens new window) 请根据每日 气温 列表&#xff0c;重新生成一个列表。对应位置的输出为&#xff1a;要想观测到更高的气温&#xff0c;至少需要等待的天数。如果气温在这之后都不会升高&#xff0c;请在该位置用 0 来代替。 例如&#xff0c;…

【毕业设计推荐】基于MATLAB的水果分级系统设计与实现

一、课题介绍 现在商业行为中&#xff0c;在水果出厂前都需要进行质量检测&#xff0c;需要将不同等级的水果进行分级包装&#xff0c;以保证商业利益最大化。可是传统方法都是依靠人工进行检测&#xff0c;效率低下&#xff0c;主观成分大&#xff0c;并不能很好客观地评价出货…

[LWC] Components Communication

目录 Overview ​Summary Sample Code 1. Parent -> Child - Public Setter / Property / Function a. Public Property b. Public getters and setters c. Public Methods 2. Child -> Parent - Custom Event 3. Unrelated Components - LMS (Lightning Message…

接口测试实战--自动化测试流程

一、项目前期准备 常见项目软件架构: springMvc:tomcat里运行war包(在webapps目录下) springboot:java -jar xx.jar -xms(**) 运行参数 springCloud:k8s部署,使用kubectl create -f xx.yaml 接口自动化测试介入需越早越好,只要api定义好就可以编写自动化脚本; 某个…

jQuery核心函数

jQuery核心函数 目录 jQuery核心函数简介jQuery核心函数选择器基本选择器标签选择器id选择器class选择器通配符选择器并集选择器交集选择器 层级选择器子代选择器后代选择器兄弟选择器 过滤选择器基本筛选器内容筛选器属性筛选器可见性筛选器子元素筛选器 表单选择器表单类型选…

Day04 嵌入式---基本定时器

定时器概述 1、软件定时原理 使⽤纯软件的⽅式实现定时功能。 存在的问题&#xff1a;定时不太精准。CPU死等。 1&#xff09;压栈出栈需要花费时间 2&#xff09;ARM流⽔线体系架构的原因 2、定时器定时原理 使用精准的时基&#xff0c;通过硬件方式&#xff0c;实现定…

基于深度学习的红肉新鲜过期判决系统matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 系统构成与流程 4.2 模型训练与优化 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 ...............................................…

关于uniapp H5应用无法在触摸屏正常显示的处理办法

关于uniapp H5应用无法在触摸屏正常显示的处理办法 1、问题2、处理3、建议 1、问题 前几天&#xff0c; 客户反馈在安卓触摸大屏上无法正确打开web系统&#xff08;uni-app vue3开发的h5 应用&#xff09;&#xff0c;有些页面显示不出内容。该应用在 pc 端和手机端都可以正常…

【C语言】指针初阶

正文开始之前&#xff0c;我们要记住一个东西就是&#xff1a;地址指针 目录 一、指针的解释二、指针变量和地址1、取地址操作符2、指针变量和解引用操作1、指针变量2、拆解指针类型3、解引用操作符4、注意事项 3、指针变量的大小4、指针的解引用5、void*指针 三、指针的运算1、…

Linux解决cupy安装失败问题

1、遇到的问题&#xff1a; Failed to build cupy ERROR: Could not build wheels for cupy, which is required to install pyproject.toml-based projects 安装cupy的过程中一直报错&#xff0c;尝试了pip和conda的方法都没有解决。在百度查看了各种教程也没有很好的方法&…

让C语言代码变抽象(其三)

目录 前言&#xff1a; 我们直接看代码 前言&#xff1a; 今天我在写判断语句代码的时候&#xff0c;又想到一个更抽象的代码。 今天我将要将我之前写的抽象遍历代码变得更抽象。 我们直接看代码 这里我们用到的是布尔&#xff0c;当条件为假时值为0&#xff1b; 所以我们这…

unity ui界面优化

优化一个比较复杂的界面&#xff0c;里面有多个rt和组件。 在初次打开这个界面的时候会发生1s多的卡顿&#xff0c;还是非常严重的。 分析 通过profiler分析 1.打开界面时卡顿。 分析&#xff1a;除了update和dotween相关逻辑&#xff0c;主要在于打开时的lua function调用…

如何在Spring Boot中启用HTTPS?

在Spring Boot中启用HTTPS是一个增强应用程序安全性的重要步骤。下面我将介绍如何将一个Spring Boot项目配置成支持HTTPS协议。 引入 在现代的网络通信中&#xff0c;安全性成为了一个不能忽视的要求。特别是当我们谈论到数据传输时&#xff0c;保护用户信息的安全性是非常重要…
推荐文章