数据库管理-第287期 Oracle DB 23.7新特性一览(20250124)

数据库管理287期 20245-01-24

  • [数据库管理-第287期 Oracle DB 23.7新特性一览(20250124)](#数据库管理-第287期 Oracle DB 23.7新特性一览(20250124))
    • [1 AI向量搜索:算术和聚合运算](#1 AI向量搜索:算术和聚合运算)
    • [2 更改Compatible至23.6.0,以使用23.6或更高版本中的新AI向量搜索功能](#2 更改Compatible至23.6.0,以使用23.6或更高版本中的新AI向量搜索功能)
    • [3 Cloud Developer包](#3 Cloud Developer包)
    • [4 DBMS_DEVELOPER.GET_METADATA:用于检索数据库对象元数据的API](#4 DBMS_DEVELOPER.GET_METADATA:用于检索数据库对象元数据的API)
    • [5 PL/SQL中的维度算法支持](#5 PL/SQL中的维度算法支持)
    • [6 二元性视图放宽](#6 二元性视图放宽)
    • [7 JavaScript调用PL/SQL代码单元的外部函数接口](#7 JavaScript调用PL/SQL代码单元的外部函数接口)
    • [8 JSON的混合向量索引](#8 JSON的混合向量索引)
    • [9 数据库内算法支持VECTOR数据类型预测器](#9 数据库内算法支持VECTOR数据类型预测器)
    • [10 相邻分区向量索引中的包含列](#10 相邻分区向量索引中的包含列)
    • [11 JSON类型修饰符增强功能:Limit子句](#11 JSON类型修饰符增强功能:Limit子句)
    • [12 JSON到二元性迁移:多集合导入API](#12 JSON到二元性迁移:多集合导入API)
    • [13 JSON到二元性迁移:架构和数据的验证](#13 JSON到二元性迁移:架构和数据的验证)
    • [14 物化表达式列](#14 物化表达式列)
    • [15 在分片空间之间移动数据块(chunk)](#15 在分片空间之间移动数据块(chunk))
    • [16 PL/SQL BINARY向量支持](#16 PL/SQL BINARY向量支持)
    • [17 PL/SQL JACCARD距离支持](#17 PL/SQL JACCARD距离支持)
    • [18 SQL时间分通](#18 SQL时间分通)
    • [19 AI向量搜索的分片支持](#19 AI向量搜索的分片支持)
    • [20 小文件表空间缩小](#20 小文件表空间缩小)
    • [21 使用数据库内ONNX运行时支持具有AI向量搜索的图像转换模型](#21 使用数据库内ONNX运行时支持具有AI向量搜索的图像转换模型)
    • [22 外部表中的向量数据类型支持](#22 外部表中的向量数据类型支持)
    • 总结

数据库管理-第287期 Oracle DB 23.7新特性一览(20250124)

text 复制代码
作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database
PostgreSQL ACE Partner

10年数据库行业经验
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP,ITPUB认证专家
圈内拥有"总监"称号,非著名社恐(社交恐怖分子)

公众号:胖头鱼的鱼缸
CSDN:胖头鱼的鱼缸(尹海文)
墨天轮:胖头鱼的鱼缸
ITPUB:yhw1809。
除授权转载并标明出处外,均为"非法"抄袭

又到了一季度一次的Oracle DB 23ai新特性更新时间,前面的可以查看:
数据库管理-第225期 Oracle DB 23.5新特性一览(20240730)
数据库管理-第256期 Oracle DB 23.6新特性一览(20241031)

1 AI向量搜索:算术和聚合运算

就像您可以对日期、时间戳、间隔和数字进行加(+)、减(-) 或乘(*) 一样,您现在可以将这些算术运算符应用于向量。算术运算在向量的每个维元素上执行。还可以计算一组向量的SUM或AVG。

向量上的算术运算使AI系统能够操纵和组合抽象概念,从而增强它们以更复杂的方式理解和处理语言或数据的能力。

2 更改Compatible至23.6.0,以使用23.6或更高版本中的新AI向量搜索功能

从Oracle Database 23ai(23.6)开始,在版本更新(RU)23.6或更高版本中引入了使用新AI向量搜索功能的能力。

RU 23.6中的 COMPATIBLE 参数:

  1. 直接安装Oracle Database 23ai Release Update 23.6的新用户:
    • 23.6 RU全新安装并使用db create时,COMPATIBLE参数默认设置为23.6.0。
    • 安装后,您将无法将COMPATIBLE参数降级为较低的值。
  2. 使用Oracle Database 23ai Release Update 23.4 和 23.5的客户:
    • 修补之前,COMPATIBLE参数可以是 23.0.0、23.4.0 或 23.5.0。
    • 安装23.6版本更新时(即修补到 RU 23.6 时),要访问新的Vector DB功能,您必须手动将COMPATIBLE参数设置为23.6.0。
    • 注意:在RU 23.6.0中,更新COMPATIBLE参数需要停机。它不会在修补过程中自动完成。您必须选择更新数据库COMPATIBLE设置。
  3. 使用Oracle Database 19c或21c的客户:
    • 将数据库升级到 Oracle Database 23ai 时,COMPATIBLE参数仍与源数据库中的先前设置相同。
    • 如果要使用新的 Vector DB 功能,则必须手动将COMPATIBLE参数设置为23.6.0。
    • 注意:升级到23ai允许的最低COMPATIBLE为19.0.0。换句话说,您不能直接从Oracle Database 12c或18c升级到Oracle Database 23ai。

3 Cloud Developer包

Cloud Developer包提供内置工具,可无缝连接、处理和集成云服务。这些软件包(即DBMS_CLOUD、DBMS_CLOUD_PIPELINE、DBMS_CLOUD_REPO、DBMS_CLOUD_NOTIFICATION和DBMS_CLOUD_AI)可轻松访问云存储数据、通过管道自动化工作流、触发事件通知,并将AI/ML功能直接集成到数据库中。它们共同为现代云就绪数据库应用程序提供支持,同时简化复杂的云交互。

Cloud Developer包使企业能够处理存储在云中的数据、处理实时数据并使用AI/ML等高级工具,从而受益于云功能。这种方法有助于简化操作,并特别支持本地和云系统的混合。

4 DBMS_DEVELOPER.GET_METADATA:用于检索数据库对象元数据的API

这个API提供了一种开发人员友好的方式来检索数据库对象(例如表、视图和索引)的元数据。API检索每个数据库对象的数据字典中存在的大多数(如果不是全部)信息。它支持多个详细级别,BASIC、TYPICAL和ALL,使客户能够仅获取所需的信息。

截至目前,客户使用DBMS_METADATA+不同字典表和视图查询的组合来构建对象信息。但是,DBMS_METADATA会显示大量不合逻辑的信息,这些信息对于应用程序开发和低代码来说毫无用处。DBMS_METADATA 非常慢(需要几秒钟)并且面向XML,这对开发人员来说并不友好。DBMS_DEVELOPER.GET_METADATA解决了这个问题。

该API的主要优点是:

  1. 性能:我们期望大多数查询的解析时间在几毫秒内。这对于基于Oracle数据库构建的开发人员工具(例如 VSCode扩展和SQLcl)非常有利,因为这些工具会重复检索对象信息,从而导致糟糕的用户体验。
  2. 简单性:API以JSON格式返回元数据,这种格式具有自描述性且易于理解。使用JSON作为返回格式可使此 API 轻松与开发人员工具和服务集成。

5 PL/SQL中的维度算法支持

现在,PL/SQL中的向量可以采用加法(+)、减法(-)和乘法(*)。算术运算在向量的每个维元素上执行。

向量上的算术运算使 AI 系统能够操纵和组合抽象概念,从而增强其以更复杂的方式理解和处理语言或数据的能力。PL/SQL对向量算术的支持为开发人员提供了一种在PL/SQL块和函数中应用这些运算的方法,而无需调用SQL。

6 二元性视图放宽

在 JSON 关系二元性视图 DDL 中,用户可以执行以下操作:

  • 在子对象中使用字段名称"_id"来标识选择要更新的行的列(即使它没有UK或PK约束)
  • 使用标识列作为标识列

额外的DDL可能性允许JSON关系二元性视图支持更多用例。

7 JavaScript调用PL/SQL代码单元的外部函数接口

外部函数接口(Foreign Function Interface,FFI)允许JavaScript开发人员使用更熟悉的语法来调用用PL/SQL编写的代码单元。可以使用本机JavaScript构造与大多数用PL/SQL编写的代码进行交互,而不是使用PL/SQL块。

使用FFI可以简化将PL/SQL代码集成到JavaScript函数的过程,从而为JavaScript开发人员提供更好的体验。

8 JSON的混合向量索引

混合向量索引允许用户使用全文搜索和语义向量搜索的组合轻松地索引和查询其文档,以获得更高质量的搜索结果。现在可以在JSON列上构建混合向量索引。

在JSON列上创建混合向量索引可提供统一的查询API,允许用户运行利用这两种方法的文本查询、向量相似性查询或混合查询。这让用户可以轻松自定义搜索体验并增强搜索结果。

9 数据库内算法支持VECTOR数据类型预测器

此功能使用户能够将一个或多个VECTOR数据类型的列作为预测因子以及结构化企业数据添加到数据库内的机器学习算法中。

非结构化数据的向量表示可以成为传统机器学习算法的强大输入。它们可以对文本和图像数据进行高效的数据处理,有助于加快数据驱动的决策。将向量作为机器学习模型的输入可以处理更广泛的用例。

10 相邻分区向量索引中的包含列

包含列(Included Columns)是指存储在相邻分区向量索引中的附加表列,用于通过消除从基表访问这些列的需要来优化查询执行。

复杂的工作负载通常将关系列上的业务数据搜索与向量相似性搜索相结合。通过将属性过滤器与基于向量的相似性搜索集成在一起,在相邻分区向量索引中包含列可显著增强企业搜索功能。这种集成允许通过直接评估属性过滤器和向量搜索来高效执行复杂查询,从而消除了通过昂贵的连接访问基表的需要。此外,当索引将查询所需的所有列作为覆盖列包含时,可以直接从索引中检索数据,从而加快查询性能。

11 JSON类型修饰符增强功能:Limit子句

JSON类型的Limit子句允许限制可插入JSON类型列的JSON数据的大小。其思想类似于指定varchar2字节存储大小。

如果已知JSON数据不超过一定量,则可以优化执行以提高效率。

12 JSON到二元性迁移:多集合导入API

PL/SQL过程DBMS_JSON_DUALITY.IMPORT_ALL用于将多个文档集合导入JSON关系二元性视图。

在单个PL/SQL调用中导入多个集合使导入过程更简单,并避免了约束违规错误。

13 JSON到二元性迁移:架构和数据的验证

PL/SQL函数DBMS_JSON_DUALITY.VALIDATE_SCHEMA_REPORT和VALIDATE_IMPORT_REPORT用于验证JSON-To-Duality Migrator创建和导入的关系模式和数据。

验证API可帮助用户在将文档集合迁移到二元性视图时验证推荐的关系模式是否正确且没有数据丢失。

14 物化表达式列

表达式列(Expression columns,也称为虚拟列)是从现有列派生(计算)的附加列。它们可以保留(具体化)在磁盘上,补充仅在运行时计算结果的现有默认功能。

在表达式列的运行时计算和DML时计算之间进行选择,可以更灵活地为应用程序选择正确的方法。

具体化表达式列以磁盘存储换取反复计算相同表达式的需要。

15 在分片空间之间移动数据块(chunk)

使用Oracle全球分布式数据库复合分片方法,数据被组织到不同的分片空间中,允许您区分数据子集;但是,任何用于负载平衡的自动块移动都发生在分片空间内。在此版本中,Oracl 全球分布式数据库为您提供了将数据块从现有分片空间移动到另一个分片空间的能力。

此功能使您能够在现有分片空间之间移动数据,或将某些数据移动到新添加的分片空间。您可以根据新的业务需求安排分片数据,例如为某些客户提供新级别的服务或资源,或者将客户从一类服务转移到另一类服务,同时保持区域数据主权。

16 PL/SQL BINARY向量支持

PL/SQL支持BINARY作为向量类型的新维度格式,与SQL一致。BINARY向量经常用于表示某个实体(例如文本文档)是否包含某些特征、列表词或术语。

BINAR 格式的优势有两方面。与默认的FLOAT32向量相比,向量的存储空间可以减少3倍。BINARY向量上的距离计算速度最高可提高40倍。

支持BINARY向量意味着 PL/SQL 将能够以与支持任何其他维度格式的向量相同的方式处理二进制向量。

17 PL/SQL JACCARD距离支持

PL/SQL现在支持JACCARD距离度量,它提供两个BINARY向量之间的相似度度量,其值为0到1。

Jaccard距离是二元向量的常见相似度度量。PL/SQL VECTOR_DISTANCE运算符支持Jaccard作为新度量,这意味着 PL/SQL代码可以在PL/SQL中使用JACCARD距离度量,而不必调用 SQL。

18 SQL时间分通

时间分桶是处理时间序列或事件流数据时的一种常见操作,其中任意定义的时间窗口内的一系列数据点需要映射到特定的固定时间间隔(桶)以进行聚合分析。

借助新的 SQL 运算符 TIME_BUCKET,Oracle为DATETIMES的时间数据时间分桶提供了本机和高性能支持。

为时间序列数据的常见固定时间间隔分桶提供本机SQL运算符可显著简化此类信息的应用程序开发和数据分析。除了更简单、更不容易出错的代码之外,本机运算符还提高了时间序列分析的性能。

19 AI向量搜索的分片支持

借助对向量搜索的分片支持,包含向量的表会自动分布和复制到不共享硬件的Oracle数据库池中。相似性搜索会自动在分片之间并行化,或者如果提供了分片键,则指向特定分片。

分片AI向量搜索提供了几个关键优势,包括通过允许向量分布在多台机器上来提高可扩展性,通过跨分片并行化向量搜索来提高性能,以及提高数据弹性,因为如果一个分片出现故障,其他分片可以继续运行。它还允许将向量搜索部署为全局数据库的一部分,其中单个逻辑数据库分布在多个地理位置。

20 小文件表空间缩小

此功能提供了可靠地缩小小文件表空间的能力。

在早期版本中,组织可能会发现小文件表空间的数据文件变大,尽管实际使用的空间要小得多。 这可能发生在用户删除表空间中的段或对象之后,但根据数据在数据文件中的位置,用户并不总是能够使用数据文件调整大小来恢复释放的空间。

通过使用小文件表空间缩小,您现在可以预期小文件表空间大小接近该表空间中所有段和对象的大小总和。您现在可以可靠地缩小小文件表空间,这意味着改进存储优化并降低存储成本。

21 使用数据库内ONNX运行时支持具有AI向量搜索的图像转换模型

此功能支持导入和使用图像转换模型,以使用23ai中提供的数据库内ONNX运行时引擎。图像转换器模型必须采用 ONNX格式,并包含所需的图像解码和预处理作为ONNX管道的一部分。

Oracle Database 23ai最初支持句子转换器,用于数据库内ONNX运行时和AI向量搜索。这仅支持为文本生成向量。借助对图像转换模型的支持,用户现在可以使用AI向量搜索进行涉及图像的语义相似性搜索,以支持更广泛的用例。

22 外部表中的向量数据类型支持

现在可以轻松访问存储在数据库外部(在文件系统或云对象存储中)的向量数据,以使用外部表执行相似性搜索。只需在存储向量嵌入的外部文件上创建一个带有VECTO 数据类型列的外部表即可。创建后,即可使用标准SQL执行相似性搜索。

可以使用外部表和标准SQL快速轻松地加载在数据库外部创建的向量嵌入。还可以对存储在数据库外部的向量嵌入运行相似性搜索,并将这些搜索与存储在数据库内的数据无缝结合。

总结

Oracle DB 23.7带来了不少传统功能以及AI Vector DB/Search相关功能的增强。

老规矩,知道写了些啥。

相关推荐
老苏畅谈运维2 小时前
MySQL性能分析的“秘密武器”,深度剖析SQL问题
数据库·sql·mysql
金融OG2 小时前
99.16 金融难点通俗解释:营业总收入
大数据·数据库·python·机器学习·金融
Java诗人DK3 小时前
windows 安装 mysql 教程
数据库·windows·mysql
loser~曹4 小时前
Redis实现,分布式Session共享
数据库·redis·分布式
患得患失9496 小时前
【Django DRF Apps】【文件上传】【断点上传】从零搭建一个普通文件上传,断点续传的App应用
数据库·后端·django·sqlite·大文件上传·断点上传
老大白菜7 小时前
GoFrame MongoDB 使用指南
数据库·mongodb
Elastic 中国社区官方博客8 小时前
使用 Confluent Cloud 的 Elasticsearch Connector 部署 Elastic Agent
大数据·数据库·elasticsearch·搜索引擎·全文检索·confluent
SelectDB技术团队9 小时前
Apache Doris 2.1.8 版本正式发布
大数据·数据库·数据仓库·数据分析·doris
狮歌~资深攻城狮10 小时前
什么时候用MPP,什么时候用TiDB?
数据库·数据仓库·分布式·数据分析·tidb
memorycx11 小时前
MySQL(1)
数据库·mysql