问题域/PD-243

Schema 驱动数据模型

Schema-Driven Data Model

以 Schema 为核心驱动数据定义、校验和运行时 DDL 操作

子问题

1.标量与向量字段统一管理

2.运行时 Schema 变更

3.跨语言 Schema 映射

4.Schema 对象的跨进程序列化(pickle/protobuf)

5.DDL 操作的并发控制与原子性保障

6.索引参数与字段类型的多态匹配约束

各项目的解法1 solutions

Signals

横向对比

维度zvec
Schema 定义方式Python 双类 FieldSchema/VectorSchema + C++ 统一 FieldSchema
类型系统22 种 DataType 枚举,标量 16 种 + 向量 6 种,编译时白名单校验
索引参数模型多态 IndexParams 基类,4 种子类(HNSW/IVF/Flat/Invert)
跨语言映射pybind11 双向协议 _from_core/_get_object + pickle 序列化
DDL 能力add/drop/alter column,表达式填充 + 自动 Schema 刷新
校验策略构造时全量校验:名称唯一性(跨标量向量)+ 类型白名单

最佳实践

1.Schema 作为单一事实来源驱动所有数据操作

2._from_core 跳过 __init__ 校验避免跨语言重复验证

3.DDL 操作后自动刷新 Schema 快照保证两层一致性

4.C++ 层用 list+map 双索引兼顾有序遍历和 O(1) 查找