JSON向量与多模型能力
Oracle 已从传统关系数据库演进为融合型数据库,支持 JSON、XML、Spatial、Graph、向量检索和机器学习等能力。开发人员要理解能力边界,架构师要避免把所有问题都硬塞进一个模型。
# 1. 学习目标与定位
| 维度 | 内容 |
|---|---|
| 难度层级 | 高级专题 |
| 核心目标 | 从底层运行链路理解本篇主题,能把概念、SQL、指标、故障和工程取舍连起来 |
| 适合人群 | 开发人员关注模型选择和查询能力;运维人员关注索引、资源、备份恢复、许可和性能基线。 |
# 2. 核心概念总览
JSON向量与多模型能力
├─ JSON Data Type
├─ JSON Relational Duality
├─ XML DB
├─ Spatial
├─ Property Graph
├─ Vector Data Type
├─ Vector Index
├─ AI Vector Search
└─ In-Database ML
这张图只用来定位本章范围。正文不会把每个词机械拆成固定问答,而是按 Oracle 的真实运行机制解释它们之间如何协作、在哪里影响开发、在哪里影响运维。
# 3. 底层原理详解
多模型能力的价值在于减少数据搬运和重复平台,而不是否定关系模型。关系表适合强约束事务,JSON 适合灵活文档,图适合关系遍历,向量适合相似度检索。
Oracle 的 JSON、向量、图和空间能力都运行在数据库资源之上。它们会消耗 CPU、内存、存储、索引维护和备份恢复能力,不能脱离数据库治理单独看。
新模型要从访问模式出发。先问业务如何写入、如何查询、如何更新、如何约束、如何恢复,再决定使用哪种能力。
# 4. 关键机制拆解
# 4.1. JSON 与关系双重性
JSON Data Type 支持文档式数据存储和查询,JSON Relational Duality 则尝试在关系表和 JSON 文档视图之间建立一致映射。
适合半结构化、接口聚合和文档访问场景,但关键业务约束仍要考虑关系约束、JSON Schema、索引和更新冲突。
# 4.2. XML、空间和图模型
XML DB 适合历史上大量 XML 标准数据,Spatial 适合地理位置和空间计算,Property Graph 适合路径、关联和网络关系分析。
这些能力常用于专业场景,不应为了“统一技术栈”而滥用。运维要评估数据量、索引、函数成本和备份恢复时间。
# 4.3. 向量类型、向量索引和 AI 检索
向量数据类型用于存储嵌入表示,向量索引用于相似度搜索。AI Vector Search 让应用可以在数据库内结合结构化过滤和语义检索。
向量检索要关注维度、距离函数、召回率、索引构建、刷新延迟和资源消耗。它不是普通 B-tree 查询,不能用传统等值查询思维评估。
# 4.4. 库内机器学习与治理边界
In-Database ML 可以减少数据外搬,让模型训练或评分靠近数据。但模型、特征、权限、资源和结果解释需要治理。
AI 能力进入数据库后,DBA 和开发要共同管理资源隔离、数据权限、审计、模型版本和回滚。
# 5. 功能模块细节补充
本节围绕概念图中的模块逐个补充底层细节,重点讲它们在 Oracle 运行链路中的位置和相互关系,而不是按固定角色模板拆分。
# 5.1. JSON Data Type
JSON Data Type 决定数据如何被存储、比较、索引和传输。类型选择会影响精度、排序、隐式转换、客户端映射和迁移成本;字段一旦进入生产,再改类型往往牵涉索引、应用、导入导出和历史数据修复。
# 5.2. JSON Relational Duality
JSON Relational Duality 试图同时提供文档视图和关系表一致性。它适合既需要 JSON 访问便利、又不想放弃关系约束和事务能力的场景,但模型设计必须提前定义主键、嵌套关系和更新冲突语义。
# 5.3. XML DB
XML DB 决定数据如何被存储、比较、索引和传输。类型选择会影响精度、排序、隐式转换、客户端映射和迁移成本;字段一旦进入生产,再改类型往往牵涉索引、应用、导入导出和历史数据修复。
# 5.4. Spatial
Spatial 决定数据如何被存储、比较、索引和传输。类型选择会影响精度、排序、隐式转换、客户端映射和迁移成本;字段一旦进入生产,再改类型往往牵涉索引、应用、导入导出和历史数据修复。
# 5.5. Property Graph
Property Graph 决定数据如何被存储、比较、索引和传输。类型选择会影响精度、排序、隐式转换、客户端映射和迁移成本;字段一旦进入生产,再改类型往往牵涉索引、应用、导入导出和历史数据修复。
# 5.6. Vector Data Type
Vector Data Type 决定数据如何被存储、比较、索引和传输。类型选择会影响精度、排序、隐式转换、客户端映射和迁移成本;字段一旦进入生产,再改类型往往牵涉索引、应用、导入导出和历史数据修复。
# 5.7. Vector Index
Vector Index 决定数据如何被存储、比较、索引和传输。类型选择会影响精度、排序、隐式转换、客户端映射和迁移成本;字段一旦进入生产,再改类型往往牵涉索引、应用、导入导出和历史数据修复。
# 5.8. AI Vector Search
AI Vector Search 决定数据如何被存储、比较、索引和传输。类型选择会影响精度、排序、隐式转换、客户端映射和迁移成本;字段一旦进入生产,再改类型往往牵涉索引、应用、导入导出和历史数据修复。
# 5.9. In-Database ML
In-Database ML 是实例与数据库协作链路中的组成部分。实例侧负责运行时内存、进程和调度,数据库侧负责控制文件、数据文件和日志文件;该模块的异常通常会反映到启动阶段、后台进程等待、告警日志或恢复流程中。
# 6. 开发人员重点提醒
- 先建模访问模式,再选择关系、JSON、图或向量。
- 向量检索要有召回率和延迟指标,不只看能返回结果。
- JSON 字段仍要设计约束和索引。
# 7. 运维人员重点提醒
- 监控多模型索引大小、构建耗时、CPU/内存和备份影响。
- 确认相关功能许可和版本支持。
- 为 AI/向量任务设置资源隔离和审计。
# 8. 典型问题与排查
- JSON 查询慢:检查路径索引、函数谓词和文档大小。
- 向量检索延迟高:检查索引类型、维度、过滤条件和并发。
- 多模型数据难治理:检查权限、Schema、版本和生命周期。
# 9. 实践建议与检查清单
- 模型选择有依据
- 索引策略明确
- 资源消耗压测过
- 权限审计覆盖
- 备份恢复包含新对象类型
# 10. 阶段小结
本篇的学习重点不是记住术语,而是能把底层机制、业务语义和生产证据连起来。读完本篇后,应该能解释关键组件如何协作、常见问题为什么发生、开发侧如何避免制造风险、运维侧如何用指标和日志把问题定位到具体链路。