跳到主要内容

ADR-08 信息资产存储切分

状态:proposed(M0 起草,待 owner 过目后转 accepted)。本 ADR 不冻结字段级 DDL,只定存储切分形态 + 必锁约束,DDL 留工程包。

1. 上下文

L2 §15.2 把「六类信息资产」(原始 / 标准化事件 / 金融信号 / 市场数据 / 运行证据 / 输出交付)定义为 Information Assettype 子类型;L3 §11.4 给资产状态机(草拟 → 可用 / 受限)。边界不变量 7 要求每项资产必含七维度(来源 / 双时间戳 / 证据 / 质量 / 状态 / 授权 / 反馈)。

现行代码事实(brief,file:line 见底图):当前不是单表承载六类,而是按生命周期阶段分表:

  • 原始 + 标准化事件 → 同行 dn_raw_newssource_type 判别 news|signal|social,标准化产物为其列 std_content_*/std_extra);
  • 金融信号 → dn_source_signal(1:1 raw_news_id 证据锚);
  • 运行证据(处理)→ dn_agent_execution;输出交付 → dn_push_log
  • 市场数据 → 无表(K 线/盘口无结构化表,yfinance 等以 news 行入库);消费反馈/消费证据 → 无表
  • 七维度中质量 / 授权 / 反馈三维零字段

2. 决策点

六类信息资产的物理存储形态:单一 information_asset 表 + type 字段,还是六子类各表,还是保留现状的「按生命周期分表」并补齐?这一决策不定,则资产表 schema、WP-P1-01(标准化事件/信号对象)与 DH-WP-001 的资产口径全部悬空。

3. 选项与取舍

选项描述
A 单表+type一张 information_asset,六类靠 type 区分,payload 放 JSON/扩展列七维度天然统一、查询口径单一、对象抽象直落异构 payload 膨胀、大表热点、信号/行情的强结构退化为 JSON、与现状差距大(高迁移)
B 六子类各表每类一表,各自 schema各类强结构清晰、索引独立六表 join 爆炸、七维度强制分散到六处、跨类统一视图难、过度工程
C 按生命周期分表(现状演进,推荐)保留现行阶段分表(raw+std 同表 / signal / evidence / delivery),补两类缺表(市场数据、反馈证据),七维度以统一逻辑契约 + 缺维度补列跨表强制迁移成本最低、贴合现状、避免单表膨胀与六表 join、强结构资产(信号/行情)保结构七维度强制散在多表,需统一约束机制(视图/校验)兜底;asset_type 口径需显式映射六类

4. 结论(accepted 2026-06-05)

选项 C:按生命周期/资产类的务实分表,现状演进(owner 认可),并附三条 M0 必锁约束

  1. 七维度为跨表逻辑契约,三缺维度必补——质量、授权、反馈在现行表零字段,须补齐:
    • 质量维度(字段/标记位,M0 必补):补 quality_status 枚举(合格 / 低置信 / 待补 / 失败)+ 可选 confidence + quality_flags,落 dn_raw_news/dn_source_signal;并把现行「标准化失败 continue without result 静默丢弃」改为写质量标记而非静默跳过(不变量 6)。这是状态不变量③能成立的前提——现零字段则该不变量形同虚设。质量评分模型 / 阈值 / rubric 不在本 ADR / 不在 M0,留 WP-P1-01 + ADR-05(复核触发)/ ADR-06(成本分层)。
    • 授权维度:由 ADR-02 决定落字段还是维度表。
    • 反馈/消费证据维度:由 ADR-11 决定独立表。
    • 缺维度即不可交付(不变量 7)以输出前校验兜底,不靠单表结构保证。
  2. 统一 asset_type 六类口径——在交付/检索层提供把现行物理表映射到六类资产(原始/标准化事件/金融信号/市场数据/运行证据/输出交付)的显式视图或枚举,使「六类资产」对消费方成立,无需物理合表。
  3. 补两类缺失资产——市场数据(结构化行情,低优先、按需,见 ADR-候选-07)与反馈/消费证据(ADR-11)作为新表纳入,不塞进 dn_raw_news

不选 A:信号(dn_source_signal 强结构)与行情退化为 JSON 会损可查询性与下游契约;且高迁移风险。不选 B:六表 join 与七维度六处强制属过度工程,第一阶段不需要。

5. 约束(引边界不变量)

  • 不变量 7(七维度必含):本 ADR 的核心驱动;C 选项靠「逻辑契约+输出前校验」而非单表结构满足,必须配套校验,否则形同虚设。
  • 状态不变量 ③(质量不确定不入「可用」):质量标记位补列是前置(评分模型另议)。
  • 不变量 6(质量不确定显式标记、不静默丢):质量维度补列 + 去静默丢弃直接服务此条。
  • 不变量 2(信号是资产非动作):dn_source_signal schema 不得含可执行指令/下单参数。

6. 影响节

  • L3 §11.4(资产状态机)、§15(数据存储划分)——存储形态以本 ADR 为准。
  • gap-map WP-P1-01(标准化事件与信号对象,承接质量评分模型)、WP-P3-02(市场数据资产模型,后置)。
  • 关联:ADR-02(授权维度落点)、ADR-04(交付存储 dn_push_log)、ADR-11(反馈表)——三者分管 C 选项里三缺维度的落点,须与本 ADR 一致。

7. 决策记录

  • 2026-06-05(owner 已确认):① 认可选项 C(现状演进分表);③ 演进路径与迁移方案列为后续交付物(见 §8),不必现在执行。
  • 2026-06-05(CC 建议,待 owner 确认):② 质量维度采「字段/标记位 M0 必补、评分模型留后续」的拆分(见结论约束 1)。owner 确认后本条转「已确认」,约束 1 的质量部分即冻结为 M0 范围。

8. 演进与迁移方案(后续交付物,非 M0 必做)

选项 C 是「从现状演进」,需要一份独立的演进路径 + 迁移方案说明如何从今天的物理表走到目标态,作为后续交付物(owner:补但不一定现在做)。范围应含:

  • 目标态表清单:现行 4 表(dn_raw_news / dn_source_signal / dn_push_log / dn_agent_execution)+ 新增 2 表(市场数据、反馈/消费证据)+ 三缺维度补列后的最终形态;
  • 迁移步骤:加列(质量/授权字段)→ 回填策略(历史 ~57 万行 dn_raw_news 的 quality_status 默认值与可否回溯)→ 去静默丢弃的代码改造点(standardize.go)→ 新表上线 → asset_type 映射视图;
  • 兼容与回滚:加列向后兼容、灰度、回滚预案;与 DH-WP-001 在飞工程包的时序协调;
  • 验收:七维度齐备校验、状态不变量③可强制的测试(接 WP-TEST-01)。

承接:本方案产出后回写本节并新建独立文档(建议 implementation/ 下或 WP-P1-01 工程设计内)。