哈尔滨自助建站平台,禅城网站建设企业,免费咨询骨科医生回答在线,做影视外包的网站数据库管理151期 2024-02-18 数据库管理-第151期 Oracle Vector DB AI-03#xff08;20240218#xff09;1 向量数据库应用场景2 Oracle Vector DB3 Vector数据类型4 Vector运算5 Vector DML插入向量获取向量 总结 数据库管理-第151期 Oracle Vector DB AI-03 AI-03202402181 向量数据库应用场景2 Oracle Vector DB3 Vector数据类型4 Vector运算5 Vector DML插入向量获取向量 总结 数据库管理-第151期 Oracle Vector DB AI-0320240218 作者胖头鱼的鱼缸尹海文 Oracle ACE Associate: DatabaseOracle与MySQL 网思科技 DBA总监 10年数据库行业经验现主要从事数据库服务工作 拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证 墨天轮MVP、认证技术专家ITPUB认证专家OCM讲师 圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号非著名社恐社交恐怖分子 公众号胖头鱼的鱼缸CSDN胖头鱼的鱼缸尹海文墨天轮胖头鱼的鱼缸ITPUByhw1809。 除授权转载并标明出处外均为“非法”抄袭。 春节假期卷了2天后面还是选择不卷了开开心心的玩耍着把假期过完。这里在春节假期后的第一个工作日也祝大家开工大吉同时又是悲催的6天班。
1 向量数据库应用场景
前面我们讲过向量数据库主要是用来存放AI机器学习向量信息同时根据由输入内容转化成的向量信息与原有向量库内容进行匹配得到最接近的结果进行反馈。而使用专用向量数据库最大的问题就是只能存放向量信息包含其ID进一步查询匹配需要去其他数据库查询关联信息同时不能很好的update原有数据很难对已有向量进行调整到底一定程度后大概率需要全量更新向量库信息而类似于PGVector这种基于传统数据库就目前的发展情况而言在较大压力面前又不能做到很好的性能当然一般使用是没有问题的性能问题也不是我说的。
2 Oracle Vector DB
在2023年的OCWOracle CloudWorld即以前的OOWOracle 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, 或者 INT8create 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 dataVecTO_VECTOR([4.4, 2.2, 3.3]) where id1;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的基本概念和一些简单功能与操作。 老规矩知道写了些啥。