逻辑表将 Agent 看到的数据模型与底层数据组织解耦。从 Agent 看,它仍然可以创建表、写入数据、执行查询;从数据库看,并不需要为每张逻辑表创建一张新的物理表。
· Schema 数据:以 Agent ID、版本号等标识保存 Agent 自己的表结构定义;
· 行数据:以 Agent ID、版本号和记录 ID 划定范围,将每一行业务数据保存为 JSON。
Agent 提交标准 SQL 后,JSON Table SDK 负责把逻辑表操作转换为对共享数据的物理操作。查询时,SDK 取得对应 Agent 的 Schema,再使用 OceanBase 的 JSON_TABLE() 将 JSON 中的字段映射为带有明确列名和数据类型的虚拟关系表,最后交给 SQL 引擎完成过滤、聚合等计算。
· 创建逻辑表。 灵光生成 CREATE TABLE 后,SDK 不创建新的物理表,而是保存 Agent 的字段、类型和版本信息。
· 写入数据。Agent 执行 INSERT,SDK 将行数据转换为 JSON,并与 Agent ID、版本号、记录 ID 一起写入共享数据表。
· 还原表结构。Agent 执行 SELECT 时,系统取得相应 Schema,通过 JSON_TABLE() 将 JSON 映射为带类型的虚拟关系表。
· 执行确定性计算。OceanBase SQL 引擎在限定的 Agent 数据范围内完成过滤、聚合和部分表达式计算,再把结果返回给 Agent。
因此,Agent 不需要理解 JSON_TABLE(),也不需要直接操作底层共享表。它使用的是经过控制的标准 SQL 子集;JSON 存储与关系计算之间的转换,由 SDK 与数据库共同完成。
逻辑表的关键价值,可以概括为一句话:Agent 拥有独立的数据模型和 SQL 体验,底层共享存储与计算资源。这不是为每个 Agent 模拟一套完整数据库实例,而是在共享基础设施上建立 Agent 级的数据虚拟化边界。