2026.07.08 (三)
2026.07.16 (四) 更新

✨ GPT-5.5 的总结  

把在 JSON、CSV、DuckDB 之间不断摇摆的基准数据迁移到 PostgreSQL,并拆分原始 evidence、observation、基准数据、执行 snapshot 与交付产物的记录。

基准数据在 JSON、CSV、DuckDB 之间不断摇摆

这几天在搭建数据采集、审核、执行、交付流程时,各种问题总是不停冒出来。确实,我既没有系统学过 DB,也没有真正处理过 DB,所以经常更换数据保存方式,而每次都不是简单替换就结束。

一开始,我用 JSON/CSV 采集数据,再接上 DuckDB 方便查看。但 worker 的产物和 coordinator 不断重建 DB 的结构混在一起后,什么是原始数据、什么是基准数据一直在摇摆。

所以我也拟过用 MySQL 建 DB 的方案。但问题并不在 MySQL 本身,而在多个 worker 或脚本都能直接更新基准数据的结构。继续采用这种方式,并发 update、冲突、所有权、回滚问题很可能会反复出现。

之后我也看了其他方式,但核心问题一样。采集数据、基准数据、执行数据与交付产物的边界一旦模糊,同样的问题最终还是会回来。

关键不在 DB 产品,而在 mutation ownership

迁移到 PostgreSQL,并不会让问题自动消失。比起使用哪种 DB,必须先定好谁能够修改基准数据。

worker 以 append-only 的方式留下原始 evidence 和 observation,不直接修改基准数据。coordinator 审核 evidence 和 observation 后,再更新基准数据与基准值。只有把修改基准数据的责任集中在一处,发生冲突时才能追踪到底该回滚什么。

在 PostgreSQL 中拆分角色

所以今天迁移到 PostgreSQL DB 时,我也把这几天搭建的整体流程一起整理了一遍。不是把所有东西都塞进一个 DB 块里处理,而是拆分角色。

  • 原始 evidence
    • 保存从公开来源采集的依据和原始值
    • 处理后的值和状态不覆盖原始数据,而是作为单独的历史记录留下
    • JSON/CSV 文件可以是 evidence mirror,但不是基准数据
  • observation
    • worker 只把自己负责的采集通道中的观测值提交到 append-only ledger
    • 把发现与补强拆成不同角色
    • worker 不直接修改基准数据
  • 基准数据
    • coordinator 审核 evidence 和 observation
    • 只有审核过的值才按既定结构写入基准数据
    • view 用作计算、审核与 export 的表面
  • 执行 snapshot
    • 不把采集 view 直接当作实际执行标准
    • 把通过去重与质量 gate 的对象固定为某一时点的 snapshot
    • 执行结果以及排除、后续状态与基准数据分开管理
  • 交付产物
    • CSV、Google Sheet、Excel 以及交给 vox.ai 的文件,都从基准数据或执行 snapshot 生成
    • 它们是用于展示或交付的产物
    • 不再把产物当作基准数据来修改

从依据到执行与交付都能追踪了

这样一来,采集到的依据存在哪里、worker 留下什么、哪个值成为基准值、哪个 snapshot 用于实际执行、什么是交付产物,都能在一条流程中追踪了。

当然,这个结构仍然有很多不足,还会有很多要改的地方。之后继续测试、反馈、修改时,也一定会发生各种大改动。流程、harness 结构,还有我的直觉,都会这样一点点继续进化。

也许我的流程搭建能帮到某个人,所以先分享一下。

留下评论