Oracle Database 23ai 新特性系列 —— 第四期

全能 AI 聚合平台 免费

一站式接入主流 AI 大模型,支持对话 · 生图 · 生视频,即开即用

ChatGPT Claude Gemini Grok DeepSeek 通义千问 Ollama
AI对话 AI生图 AI视频
免费使用 →

Oracle Database 23ai 新特性系列 —— 第四期:开发体验革命、空间数据与迈向 26ai

在前三期系列中,我们从 AI 向量搜索、JSON 关系二元性视图、数据库内机器学习、True Cache 以及全球分布式数据库等维度全面解读了 Oracle Database 23ai 的核心能力。如果说前三期聚焦的是 23ai“能做什么”——即数据库在 AI 时代的功能边界,那么本期我们将聚焦于 “谁来做”以及“如何做” ——即开发者如何以更低的门槛、更高的效率构建 AI 驱动的应用,以及 23ai 如何通过空间数据能力的重大升级打开全新的应用场景。

与此同时,随着 2025 年 10 月 Oracle 正式发布 Oracle AI Database 26ai(23.26.1 版本作为本地部署的第一版),23ai 与 26ai 之间的关系也需要厘清。因此,本期将在介绍 23ai 核心开发者特性之后,前瞻性地解读 26ai 的关键升级与演进路径。

一、开发体验革命:让 AI 数据库触手可及

Oracle Database 23ai 以“开发者优先”为核心理念,在开发体验层面实现了全方位的革新。从 JavaScript 存储过程到开发者角色,从 SQL 语法增强到数据使用域,23ai 正在将 Oracle 数据库从“DBA 的领地”转变为“开发者的乐园”。

1.1 JavaScript 存储过程与多语言引擎(MLE)

Oracle Database 23ai 中引入的 Multilingual Engine(MLE) ,允许开发者在数据库中直接编写和执行 JavaScript 存储过程与函数。这项能力的底层基于 GraalVM——Oracle 的高性能多语言虚拟机技术,使得 JavaScript 代码能够与 PL/SQL 和 SQL 无缝互操作。

MLE 模块与调用规范

在 23ai 中,JavaScript 代码可以通过 MLE 模块(MLE Modules) 持久化存储在数据库中,成为一等数据库对象。开发者可以将复杂的 JavaScript 项目拆分为多个独立的模块,由团队成员并行开发,再通过 调用规范(Call Specifications) 将模块中的 JavaScript 函数暴露给 SQL 和 PL/SQL。这意味着,开发者可以在任何原本调用 PL/SQL 函数的地方直接调用 JavaScript 函数,两种语言之间的数据交换由数据库自动完成类型映射。

SODA API 与 JSON 原生支持

MLE 为 JavaScript 开发者提供了完整的 SODA(Simple Oracle Document Access)API 支持,允许开发者以 NoSQL 风格创建和查询 JSON 文档集合,无需学习 SQL。同时,23ai 中的 JSON 数据类型与 JavaScript 对象之间存在天然的映射关系,使得在数据库中处理 JSON 数据变得异常简便。

开发体验的持续优化

从 RU 23.9 开始,Oracle 进一步简化了 MLE 的入门体验:EXECUTE ON JAVASCRIPT 权限不再需要显式授予,开发者只需拥有 CREATE MLE 系统权限即可开始编写 JavaScript 代码。同时,23ai 引入了 编译时语法检查(Compile-Time Syntax Checking) ,在代码运行前即可发现语法错误。执行后调试(Post-Execution Debugging) 功能则允许开发者在程序运行完成后收集运行时状态信息,用于分析程序行为和定位缺陷,无需修改被观察的代码。

适用场景:MLE 让熟悉 JavaScript 的前端和全栈开发者可以无缝进入数据库端开发,利用 npm 生态中数以百万计的 JavaScript 库(如日期处理、数据验证、加密等)在数据库内核中运行,无需学习 PL/SQL 即可完成复杂的数据处理逻辑。

1.2 DB_DEVELOPER_ROLE:标准化开发者权限模型

在 23ai 之前,为数据库开发者分配权限一般的做法是授予 CONNECT 和 RESOURCE 两个角色。但这两个角色的设计已显陈旧——RESOURCE 角色的权限组合在不同版本中变化较大,且不包含对现代功能(如 MLE、Property Graph、Machine Learning 等)的访问支持。

23ai 引入的全新预定义角色 DB_DEVELOPER_ROLE ,代表了 Oracle 官方对“数据库开发者应该拥有哪些权限”的标准化定义。这一角色不仅整合了 CONNECT 和 RESOURCE 的核心功能,还囊括了创建多维数据集(CUBE)、机器学习模型、调度作业、动态执行 JavaScript(MLE)等高级功能的权限。

与传统的 RESOURCE 角色相比,DB_DEVELOPER_ROLE 的覆盖面和粒度更贴近现代开发需求,管理员可以快速为开发者分配设计、构建和部署应用程序所需的全部必要权限,大幅简化了开发环境的配置流程。

适用场景:当新开发者加入团队时,DBA 只需执行一条 GRANT DB_DEVELOPER_ROLE TO developer_name 命令,即可授予其完成应用开发所需的所有系统权限和对象权限,无需逐一配置。

1.3 SQL 语法增强:让 SQL 更智能、更简洁

23ai 在 SQL 语言层面带来了大量实用的语法增强,显著提升了开发效率:

  • IF [NOT] EXISTS DDL 子句:在执行 CREATE TABLE、DROP TABLE、CREATE USER 等 DDL 语句时,如果对象已存在或不存在,系统不再报错,而是优雅地继续执行。这一特性在编写幂等性部署脚本时尤为实用。
  • GROUP BY 列别名:GROUP BY 子句中目前可以直接使用 SELECT 列表中定义的列别名,使复杂分组查询的编写更加直观。
  • DELETE 和 UPDATE 的 JOIN 语法:DELETE 和 UPDATE 语句目前支持 JOIN 语法,允许基于多表关联的条件进行删除和更新操作,无需再编写复杂的子查询。
  • 模糊匹配函数:新增 FUZZY_MATCH(模糊匹配)和 PHONIC_ENCODE(语音编码)函数,支持基于编辑距离的类似字符串检索以及基于发音的姓名匹配,在数据清洗和去重场景中具有重大价值。
  • 布尔数据类型:23ai 原生支持 BOOLEAN 数据类型,作为表列类型和 PL/SQL 变量类型,结束了长期以来用 CHAR(1) 或 NUMBER(1) 模拟布尔值的做法。

1.4 数据使用域(Data Use Case Domains)

23ai 引入了 数据使用域(Data Use Case Domains) 的概念,允许开发者以聚焦、轻量的方式声明数据列的预期用途。例如,开发者可以将某一列声明为 EMAIL、URL、PASSWORD、CURRENCY 等类型,应用程序可以基于这些域声明自动生成代码或验证值。这一特性将数据语义与数据存储分离,为应用层的智能化提供了基础。

适用场景:在微服务架构中,不同的服务可能对同一数据字段有不同的验证规则。通过数据使用域,可以在数据库层统一声明字段的业务含义,各服务据此生成各自的验证逻辑,避免了多套代码中的重复定义和不一致风险。

1.5 Schema 级别权限

23ai 新增了 Schema 级别系统权限,允许管理员在 Schema 粒度上授予系统权限,而非仅限于整个数据库或单个对象。这一特性显著简化了多租户环境和微服务架构中的权限管理:当某个应用 Schema 需要特定的系统权限时,只需在 Schema 级别授权即可,无需影响其他 Schema 中的对象。

1.6 物化表达式列(Materialized Expression Columns)

23ai 引入了 物化表达式列(Materialized Expression Columns) 功能,允许将基于其他列的表达式计算结果以物理存储的方式持久化在表中。与传统的虚拟列不同,物化表达式列在数据插入或更新时即完成计算并存储,查询时无需重新计算,大幅提升了复杂表达式频繁查询的性能。

二、空间数据的全新维度:H3 与向量切片

在 AI 热潮的聚光灯之外,23ai 在空间数据(Spatial Data)领域的两项重大升级,正在悄然改变地理空间应用的开发范式。

2.1 六边形分层空间索引(H3)

H3(Hierarchical Hexagonal Indexing) 是由 Uber 开发并开源的六边形分层空间索引系统,其设计初衷是为了解决网约车场景中“如何快速确定指定半径内有多少可用司机”这一核心问题。在 Oracle Database 23ai 中,Oracle Spatial 正式引入了对 H3 的原生支持。

为什么是六边形而非正方形?

传统的地理空间索引一般采用正方形网格划分地图。但 Uber 的工程师发现,六边形在空间覆盖方面具有天然优势:一个圆可以更好地内切于六边形(同时与六边形的边和顶点相切),而正方形则无法做到这一点。这对于距离计算至关重大——当需要计算指定半径内的点数时,六边形网格能够更准确地反映实际的地理分布。

H3 的层级结构

H3 采用分层索引结构:最低分辨率层级由 12 个五边形和 110 个六边形组成,共同覆盖地球表面。每个六边形包含 7 个子六边形,依此类推,直到最高分辨率(共 23 级)。这种层级结构的精妙之处在于:每个多边形都确切地知道其父级(上一级)、子级(下一级)和同级邻居是谁,使得空间聚合和邻近查询可以在 O(log N) 时间内完成。

空间聚合的核心价值

H3 的核心价值在于空间聚合——将大量离散的点数据按六边形网格进行汇总,形成有意义的可视化呈现。例如,物流公司拥有数千万条配送记录,每条记录包含 GPS 坐标。通过 H3,可以快速计算出每个六边形区域内的配送密度、平均配送时长等聚合指标,并以热力图的形式呈目前地图上,协助运营团队识别高密度区域和配送瓶颈。

2.2 空间向量切片(Spatial Vector Tiles)

空间向量切片(Spatial Vector Tiles) 是 23ai 中另一项重大的空间数据能力创新。与传统的光栅切片(将地图预渲染为图片)不同,向量切片以压缩的矢量格式存储地理要素(点、线、面),客户端接收到数据后再进行动态渲染。

核心函数:SDO_UTIL.GET_VECTORTILE

23ai 通过一个简洁的 SQL 函数 SDO_UTIL.GET_VECTORTILE() 实现了向量切片的生成。该函数接受几何列、切片标识符(x、y、zoom 层级)以及需要返回的属性列表作为参数,返回对应的向量切片数据。

向量切片的三大优势

向量切片在现代地图应用中具有三大核心优势:

  1. 高性能大数据传输:向量切片格式经过高度压缩优化,能够在极短时间内将大量地理数据传输到客户端,这对于包含数百万个 POI(兴趣点)的大规模地图应用至关重大。
  2. 动态样式:地图样式(如颜色、图标、标签)可以在客户端动态应用,同样的数据可以灵活适配不同的视觉主题(如深色模式、高对比度模式)。
  3. 客户端交互与过滤:属性数据随切片一同传输,浏览器端可以直接进行过滤和分析(如“只显示销售额超过 100 万的客户”),无需再次请求服务器。

与 AI Vector Search 的区分

值得注意的是,“空间向量切片”中的“向量”与 AI Vector Search 中的“向量”(vector embedding)是完全不同的概念。前者是地理空间领域的矢量图形术语,后者是 AI 领域的数学向量表明。

适用场景:物流配送可视化(实时显示所有在途车辆位置)、零售选址分析(叠加门店分布、人口密度、竞争对手位置等多图层)、智慧城市仪表盘(实时展示交通流量、公共设施分布)、灾害应急指挥(动态展示受灾区域、救援力量和疏散路线)。

2.3 空间能力的其他增强

除了 H3 和向量切片,23ai 还为 Oracle Spatial 带来了多项增强,包括:简化的空间向量数据类型 SQL 语法、栅格数据的 REST API 支持,以及更多用于处理 LiDAR 点云数据的函数。这些增强共同构成了 23ai 空间数据能力的完整拼图。

三、性能与可观测性增强

3.1 优先事务(Priority Transactions)

23ai 引入了事务优先级机制,支持 HIGH、MEDIUM、LOW 三个优先级级别。当低优先级事务持有的行锁阻塞了高优先级事务的执行时,数据库可以配置为在超时后自动回滚低优先级事务,确保关键业务事务能够优先执行。

适用场景:在混合负载环境中,重大的交易型操作(如下单支付)应当优先于批量报表查询或数据导出任务。通过优先事务,可以确保关键业务不受后台批处理作业的影响。

3.2 锁无关预订(Lock-Free Reservations)

锁无关预订允许高并发事务同时更新同一数值列(如库存数量、账户余额),而无需等待未提交的事务释放行锁。更新操作先在预订日志中暂存,在事务提交时最终应用,大幅提升了库存管理、票务系统等高并发场景的系统吞吐量。

3.3 Kafka API for TxEventQ

23ai 为 TxEventQ(事务事件队列) 提供了 Kafka API 兼容层,使得现有的 Kafka 应用程序可以直接连接 Oracle 数据库运行,仅需极少的代码改动。这一特性使 Oracle 数据库能够无缝融入基于 Kafka 的事件驱动架构,无需引入额外的消息中间件。

3.4 实时 SQL 规划管理

23ai 增强了实时 SQL 规划管理能力,允许 DBA 在不中断应用的情况下动态调整 SQL 执行计划。结合 Automatic Indexing 功能(每 15 分钟捕捉一次 SQL 工作负载,自动创建、验证和维护索引),23ai 在 SQL 性能优化的自动化水平上达到了新的高度。

3.5 丰富错误消息

23ai 引入了更丰富的错误消息机制,在 SQL 执行失败时提供更深层次的诊断信息,包括具体的错误位置、上下文状态和提议的修复方案,大幅缩短了开发和调试周期。

四、从 23ai 到 26ai:演进路径与展望

4.1 版本关系:RU 升级,无需迁移

2025 年 10 月,Oracle 正式发布 Oracle AI Database 26ai,作为 Oracle Database 23ai 的继任版本。关键的一点是:从 23ai 升级到 26ai 极为简单——只需应用 2025 年 10 月的 Release Update(RU 23.26.0),无需数据库升级或应用重新认证。2026 年 1 月 28 日,Oracle AI Database Enterprise Edition 正式登陆 Linux x86-64 本地部署平台,版本号为 23.26.1,标准支持持续至 2031 年底。

换言之,23ai 与 26ai 本质上是同一个代码基的不同版本标识,26ai 代表了 AI 能力的进一步深化和整合。

4.2 26ai 的关键新特性

虽然 26ai 建立在 23ai 的基础之上,但其在 AI 智能体(AI Agent)和数据湖领域带来了多项重大创新:

私有化智能体工厂(Private Agent Factory)

26ai 推出了 私有化智能体工厂——一个用于在数据库内构建基于容器的数据中心智能体的无代码框架。该框架新增了三种预构建智能体:

  • 数据库知识智能体:将自然语言提示转换为 SQL 查询,获取特定的实际、策略或实体
  • 结构化数据分析智能体:专门处理表格数据,使用 Python pandas 生成图表、发现趋势、标记异常
  • 深度数据研究智能体:处理复杂任务,通过将任务分解为多个步骤,在网络资源、文档库或两者之间进行迭代搜索

分析师评价认为,私有化智能体工厂将协助开发者以安全、简化的方式加速智能体构建,特别适合金融、医疗、政府等受监管行业的企业,有助于将 AI 项目从试点推向生产环境。

Select AI Agent

26ai 将 AI 智能体提升为数据库中的一等公民。Select AI Agent 允许在 Autonomous AI Database 内部定义、运行和管理 AI 智能体,支持数据库内工具、REST 外部工具以及 MCP 服务器等多种工具调用方式。

统一混合向量搜索(Unified Hybrid Vector Search)

26ai 扩展了 AI Vector Search 的能力,支持在单个查询中混合使用向量、关系、文本、JSON、图和空间谓词,联合检索文档、图像、音频、视频和表行。结合 MCP(Model Context Protocol),26ai 支持智能体工作流的迭代执行——智能体可以多次获取上下文,持续优化答案质量。

自主 AI 湖仓(Autonomous AI Lakehouse)

26ai 推出了 自主 AI 湖仓,支持在对象存储中读写 Apache Iceberg 数据格式,将 Exadata 加速性能和无服务器扩展能力带入开放湖仓表,并可与 Databricks、Snowflake 及其他 Iceberg 兼容的数据存储无缝互操作。

向量流处理

在流处理领域,GoldenGate Stream Analytics 26ai 引入了对流式管道中向量嵌入的内置支持,管道可以使用 ONNX 模型生成向量嵌入并将其存储到数据库的向量列中。

4.3 未来演进方向

从 23ai 到 26ai 的演进可以清晰地看到 Oracle 在 AI 数据库方向的战略布局:

  1. 从“被动查询”到“主动智能体” :23ai 的 AI Vector Search 和 Select AI 实现了基于语义的查询;26ai 的私有化智能体工厂将 AI 能力从“用户提问”扩展到“智能体主动执行复杂任务”。
  2. 从“单一 AI 能力”到“融合 AI 体验” :23ai 将 AI 向量搜索、数据库内机器学习、图分析等能力分别提供;26ai 通过统一混合向量搜索将这些能力整合为统一的查询体验。
  3. 从“数据库内 AI”到“智能体编排平台” :26ai 的私有化智能体工厂使数据库不再只是数据存储层,而是企业 AI 智能体的编排和控制层。
  4. 从“结构化数据”到“多模态数据湖” :23ai 通过 Vectors on Ice 将 AI 向量搜索扩展到 Iceberg 数据湖;26ai 的 Autonomous AI Lakehouse 进一步打通了数据仓库与数据湖之间的壁垒。

总结与预告

在本系列第四期中,我们聚焦于 Oracle Database 23ai 的开发体验革命与空间数据能力升级:

特性分类

核心能力

JavaScript 存储过程(MLE)

GraalVM 支持、模块化开发、SODA API、编译时检查、执行后调试

DB_DEVELOPER_ROLE

标准化开发者权限、覆盖 ML/Graph/MLE 等现代能力

SQL 语法增强

IF [NOT] EXISTS、GROUP BY 别名、DELETE/UPDATE JOIN、布尔类型

数据使用域

声明式数据语义、自动代码生成

Schema 级别权限

简化多租户权限管理

H3 六边形分层索引

空间聚合、邻近查询、层级结构

空间向量切片

SDO_UTIL.GET_VECTORTILE、高性能地图渲染、动态样式

优先事务与锁无关预订

高并发性能优化

Kafka API for TxEventQ

事件驱动架构原生集成

同时,我们也前瞻性地解读了从 23ai 到 26ai 的演进路径。下一期(系列第五期),我们将聚焦于 Oracle Database 23ai 的 安全体系全面升级与 AI 时代的智能防护,深入解读 SQL Firewall、Deep Data Security、区块链表增强、多租户安全隔离等企业级安全特性,敬请期待!

参考资料

[1] Oracle AI Database New Features — JavaScript (docs.oracle.com)
[2] DBMS_MLE Package Reference (docs.oracle.com)
[3] What’s new with MLE 23.9 (martincarstenbach.com)
[4] DBA Highlights of Oracle Database 23ai (www.dbta.com)[reference:51][reference:52]
[5] Oracle 23ai 中的 DB_DEVELOPER_ROLE 角色 (www.modb.pro)[reference:53]
[6] Make Better Maps with Spatial Vector Tiles and H3 (blogs.oracle.com)
[7] Creating Uber-Fast Maps with Vector Tiles and H3 (www.red-gate.com)[reference:56][reference:57]
[8] Oracle 26ai 数据库新增预构建智能体 (ai.zhiding.cn)
[9] Oracle AI Database New Features — Feature Highlights (docs.oracle.com)
[10] Introducing Oracle AI Database 26ai (blogs.oracle.com)
[11] Oracle 23AI & ADBS in Action (O'Reilly)
[12] 新增 300 多项功能,Oracle Database 23ai 正式发布 (cloud.tencent.cn)
[13] Oracle 23 Ai-产品介绍 (www.huaweicloud.com)[reference:65]
[14] Oracle 23ai 新特性:DB_DEVELOPER_ROLE 角色 (blog.csdn.net)
[15] Oracle Database 23ai Release Update 23.9 (licenseware.io)

© 版权声明

相关文章

暂无评论

none
暂无评论...