数据库管理-第151期 Oracle Vector DB AI-03(20240218)

数据库管理151期 2024-02-18

  • 数据库管理-第151期 Oracle Vector DB & AI-03(20240218)
    • 1 向量数据库应用场景
    • 2 Oracle Vector DB
    • 3 Vector数据类型
    • 4 Vector运算
    • 5 Vector DML
      • 插入向量
      • 获取向量
    • 总结

数据库管理-第151期 Oracle Vector DB & AI-03(20240218)

作者:胖头鱼的鱼缸(尹海文)
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天,后面还是选择不卷了,开开心心的玩耍着把假期过完。这里在春节假期后的第一个工作日也祝大家开工大吉,同时又是悲催的6天班。

1 向量数据库应用场景

前面我们讲过向量数据库主要是用来存放AI机器学习向量信息,同时根据由输入内容转化成的向量信息与原有向量库内容进行匹配,得到最接近的结果进行反馈。而使用专用向量数据库最大的问题就是只能存放向量信息(包含其ID),进一步查询匹配需要去其他数据库查询关联信息,同时不能很好的update原有数据,很难对已有向量进行调整,到底一定程度后大概率需要全量更新向量库信息;而类似于PGVector这种基于传统数据库就目前的发展情况而言在较大压力面前又不能做到很好的性能(当然一般使用是没有问题的,性能问题也不是我说的)。
image.png
image.png

2 Oracle Vector DB

在2023年的OCW(Oracle CloudWorld,即以前的OOW,Oracle OpenWorld),甲骨文也在其Oracle Database 23c中引入了Vector DB、AI Vector Search等一组新功能设计:

  • 简单易用且易于理解
  • 新的SQL Embedding函数用于生成向量数据
  • 新的VECTOR数据类型用于存储向量数据
  • 新的SQL语法和函数轻松表达相似性搜索
  • 新的近似搜索索引经过打包和调优以实现高性能和高质量搜索
  • 在查询中与相关客户和产品的业务数据一起执行向量搜索
  • 同一数据库中处理向量和其他工作负载

这算是Oracle融合数据库的又一进步。

3 Vector数据类型

为了存放向量信息,Oracle引入了Vector数据类型,其底层采用BLOB存储以实现长期可扩展性。

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

create table my_images (id number, image BLOB, img_vec VECTOR(768, FLOAT32))

由于维度值和维度类型是可选配置内容,因此Vector数据类型支持灵活的维度数量和格式类型:

create table my_images (id number, image BLOB, img_vec VECTOR);

嵌入模型随着技术的发展而变化,但架构可以保持不变。

4 Vector运算

  • VECTOR_DISTANCE(VECTOR1, VECTOR2, )
    使用欧几里得、余弦相似度、点积等指标(metric)来比较向量的相似度
  • VECTOR_AVG(VECTOR)
    向量平均值。例如,计算一个句子中所有单词的平均向量,作为该句子的向量
  • VECTOR_DIMENSIONS_COUNT(VECTOR)
    计算向量的维数
  • VECTOR_NORM(VECTOR)
    计算向量的欧几里得范数/长度
  • 支持更多向量运算……

5 Vector DML

插入向量

TO_VECTOR( ) 将表示向量维度数组的字符串转换为 VECTOR:

create table vec_tab(id number, dataVec VECTOR(3, 'FLOAT32'));
insert into vec_tab values (1, TO_VECTOR('[1.1, 2.2, 3.3]');
update vec_tab set dataVec=TO_VECTOR('[4.4, 2.2, 3.3]') where id=1;

Javascript和Python的23c客户端支持VECTOR类型,因此可以直接插入Vector。

获取向量

FROM_VECTOR( ) 将向量转换为 CLOB/VARCHAR – 23c 之前的客户端的默认方式:

select dataVec from tab-> select FROM_VECTOR(dataVec) from tab; -> '[1.1, 2.2, 3.3]'

Javascript和Python的23c客户端支持VECTOR类型,因此可以直接读取向量数据。
同传统数据类型一样支持DML操作也意味着Oracle Vector DB可以对已有向量数据进行非常方便的调整,以增强向量库信息准确度与及时性;同时可以根据AI机器学习程度对自身的向量信息进行调整,以实现更加强的的AI功能。

总结

本期简单介绍了一下Oracle Vector BD的基本概念和一些简单功能与操作。
老规矩,知道写了些啥。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【计算机网络】socket 网络套接字

网络套接字 一、端口号1. 认识端口号2. socket 二、认识TCP协议和UDP协议1. TCP协议2. UDP协议 三、网络字节序四、socket 编程1. socket 常见API2. sockaddr 结构3. 编写 UDP 服务器&#xff08;1&#xff09;socket()&#xff08;2&#xff09;bind()&#xff08;3&#xff0…

170基于matlab的DNCNN图像降噪

基于matlab的DNCNN图像降噪&#xff0c;网络分为三部分&#xff0c;第一部分为ConvRelu&#xff08;一层&#xff09;&#xff0c;第二部分为ConvBNRelu&#xff08;若干层&#xff09;&#xff0c;第三部分为Conv&#xff08;一层&#xff09;&#xff0c;网络层数为17或者20层…

平衡二叉树(AVL),“平衡”是指什么?为什么要“平衡”?

一、“平衡因子”是什么&#xff1f; 定义&#xff1a;某节点的左子树 与 右子树的高度(深度)差&#xff0c;即为该节点的平衡因子&#xff08;BF,Balance Factor&#xff09;。 二、 原文链接&#xff1a;https://blog.csdn.net/kexuanxiu1163/article/details/103080901 …

指针的进阶(C语言)(下)

目录 4、数组参数、指针参数传参 4.1一维数组传参 4.2二维数组传参 4.3 一级指针传参 4.4 二级指针传参 5、函数指针 6、函数指针数组 7、指向函数指针数组的指针 8、回调函数 总结 续上篇 4、数组参数、指针参数传参 在写代码的时候难免把【数组】或者【指针】传给…

MySQL 多表操作

一.多表关系 1.一对一关系 一个学生只有一张身份证&#xff1b;一张身份证只能对应一个学生。 在任一表中添加外键&#xff0c;指向另一方主键&#xff0c;确保一对一关系。 一般一对一关系很少见&#xff0c;遇到一对一关系的表最好合并。 2.一对多/多对一关系 一个部门…

ArcgisForJS如何访问Arcgis Server?

文章目录 0.引言1.准备ArcGIS相关工具2.创建含有ArcSDE地理数据库的MXD文件3.注册ArcSDE地理数据库4.发布数据到Arcgis Server5.ArcgisForJS访问ArcGIS Server数据 0.引言 ArcGIS API for JavaScript 是一个用于在Web和移动应用程序中创建交互式地图和地理空间分析应用的库。它…

抽象工厂模式 Abstract Factory

1.模式定义: 提供一个创建一系列相关或互相依赖对象的接口&#xff0c;而无需指定它们具体的类 2. 应用场景: 程序需要处理不同系列的相关产品&#xff0c;但是您不希望它依赖于这些产品的 具体类时&#xff0c; 可以使用抽象工厂 3.优点: 1.可以确信你从工厂得到的产品彼…

恒峰-智能高压森林应急消防泵:安全护林新利器

随着科技的发展&#xff0c;人类对自然资源的保护意识日益增强。森林作为地球上最重要的生态系统之一&#xff0c;对于维护生态平衡、净化空气、保持水源等方面发挥着举足轻重的作用。然而&#xff0c;森林火灾却时常威胁着这片绿色家园。为了更好地保护森林资源&#xff0c;智…

D5020——外围元件少,内含压缩器和扩展器静噪电路,可应用在1.5V立体声耳机上,响应时间可调

D5020是一块增益可调 的压缩、扩展电路。它有两个通道组成&#xff0c;一个通道作扩展用&#xff0c;另一个通道能作压缩或扩展用。电路内部含有小信号全波整流、检测信号的大小&#xff0c;用于调节输入或反馈通道的增益大小。含有温度特性较好的带隙精密基准源&#xff0c;静…

二.西瓜书——线性模型、决策树

第三章 线性模型 1.线性回归 “线性回归”(linear regression)试图学得一个线性模型以尽可能准确地预测实值输出标记. 2.对数几率回归 假设我们认为示例所对应的输出标记是在指数尺度上变化&#xff0c;那就可将输出标记的对数作为线性模型逼近的目标&#xff0c;即 由此&…

五种多目标优化算法(NSWOA、MOJS、MOAHA、MOPSO、NSGA2)性能对比(提供MATLAB代码)

一、5种多目标优化算法简介 1.1NSWOA 1.2MOJS 1.3MOAHA 1.4MOPSO 1.5NSGA2 二、5种多目标优化算法性能对比 为了测试5种算法的性能将其求解9个多目标测试函数&#xff08;zdt1、zdt2 、zdt3、 zdt4、 zdt6 、Schaffer、 Kursawe 、Viennet2、 Viennet3&#xff09;&#xff0…

上进计划 | Python爬虫经典实战项目——电商数据爬取!

电商数据采集之——电商数据爬虫|电商数据采集API接口 电商数据爬虫背景 在如今这个网购风云从不间歇的时代&#xff0c;购物狂欢持续不断&#xff0c;一年一度的“6.18年中大促”、“11.11购物节”等等成为了网购电商平台的盛宴。在买买买的同时&#xff0c;“如何省钱&#…

昇腾ACL应用开发之模型转换ATC

一.前提条件 在前面的章节中我们已经安装了包含模型转换的套件包CANN-TOOLKIT&#xff0c;默认的安装路径会在/usr/local/Ascend里面&#xff0c;我们将该套件所需要的东西加入到环境变量中以便我们调用&#xff1a; 将source /usr/local/Ascend/ascend-toolkit/set_env.sh加入…

【鸿蒙系统学习笔记】TypeScript开发语言

一、背景 HarmonyOS 应用的主要开发语言是 ArkTS&#xff0c;它由 TypeScript&#xff08;简称TS&#xff09;扩展而来&#xff0c;在继承TypeScript语法的基础上进行了一系列优化&#xff0c;使开发者能够以更简洁、更自然的方式开发应用。值得注意的是&#xff0c;TypeScrip…

力扣 面试题 05.06. 整数转换

思路&#xff1a; 牵扯到二进制数&#xff0c;基本上要考虑位运算符&#xff0c;相关知识可以见http://t.csdnimg.cn/fzts7 之前做过类似的题目&#xff0c;大致思路就是先用按位异或^找出不同位&#xff0c;再用n&&#xff08;n-1&#xff09;计算出不同位的个数&#x…

nuxt项目搭建

1.先下载nuxt脚手架 yarn create nuxt-app <项目名>&#xff0c;记得安装完项目&#xff0c;npm i,下载node包 目录介绍 components 存放组件分别是头部&#xff08;包含导航&#xff09;和底部 layouts 页面布局&#xff0c;实现一个页面整体架构规则&#xff0c;头…

Sora 全网最全资料

大家好,本资料库是全网集体智慧的结晶,通过这个资料库,我们希望能够为读者提供一个全方位、多角度了解和研究Sora大模型的平台。每一部分都旨在深入探讨Sora大模型的不同方面,从技术细节到社会影响,再到未来展望,以确保读者能够获得最全面的信息和洞见。 📁一. 概念和…

yolov5导出onnx转engine推理

yolov5导出注意事项 配置 需要提供配置文件和权重文件&#xff0c;不然导出模型不能正常推理。 默认提供检测头。 ModuleNotFoundError: No module named ‘tensorrt’安装TensorRT-python发现报错 由于ModuleNotFoundError: No module named ‘tensorrt’安装TensorRT-pyt…

Android14 InputManager-InputManagerService环境的构造

IMS分为Java层与Native层两个部分&#xff0c;其启动过程是从Java部分的初始化开始&#xff0c;进而完成Native部分的初始化。 □创建新的IMS对象。 □调用IMS对象的start&#xff08;&#xff09;函数完成启动 同其他系统服务一样&#xff0c;IMS在SystemServer中的ServerT…

不要抱怨,不如抱 Java 运算符吧 (1)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…