edit | blame | history | raw

project B 实验存储体系

创建人员:Codex
文件职责:记录 project B 实验数据目录、结果包组织方式、表 schema、读取方式和审计入口。
管理规范/模板:../../common/exp-doc/实验存储体系创建指南.md。
引用文件:实验规范.md;实验审计规范.md;../../common/exp-doc/实验环境创建指南.md。

1. 存储目标和范围

project B 当前使用文件系统保存实验输入、结果、图片、日志和审计证据。

本文件覆盖:

  1. 实验原始输入快照。
  2. 实验结果包。
  3. 图片和图表。
  4. 临时脚本和临时文件。
  5. 核心表 schema。
  6. 读取和追踪路径。

2. 目录结构

project B/
  exp-doc/
    目录导读.md
    实验规范.md
    实验审计规范.md
    实验存储体系.md
    实验审计报告.md
    实验问题记录.md
    实验总纲.md
    实验设计.md
    实验执行日志.md
  exp-data/
    raw/<run_id>/
    result/<run_id>/
    img/<experiment_id>/<run_id>/
    tmp/

3. 数据流

实验总纲
-> 实验设计
-> 执行脚本或人工步骤
-> exp-data/raw/<run_id> 输入快照
-> exp-data/result/<run_id> 结果包
-> exp-data/img/<experiment_id>/<run_id> 图片
-> 执行日志
-> 审计报告

4. 结果包规则

结果包路径:

exp-data/result/<run_id>/

结果包至少包含:

文件 作用
summary.json 机器可读摘要
readout.md 人读版结论和边界
output_manifest.csv 结果包资产清单
input_manifest.csv 输入资产清单

5. 表清单

table_name storage_backend storage_path_or_table table_role row_grain primary_key producer consumer update_mode official_flag
synthetic_timeseries_input.csv csv exp-data/raw//synthetic_timeseries_input.csv raw_input object + event_date experiment_id + run_id + object_id + event_date smoke runner 实验脚本/审计员 overwrite_snapshot
timeseries_signal_result.csv csv exp-data/result//timeseries_signal_result.csv output object + event_date experiment_id + run_id + object_id + event_date smoke runner 审计员/后续实验 overwrite_snapshot
synthetic_kline_input.csv csv exp-data/raw//synthetic_kline_input.csv raw_input object + event_date experiment_id + run_id + object_id + event_date kline smoke runner 实验脚本/审计员 overwrite_snapshot
kline_feature_panel.csv csv exp-data/result//intermediate/kline_feature_panel.csv intermediate_feature_panel object + event_date experiment_id + run_id + object_id + event_date kline smoke runner 审计员/后续实验 overwrite_snapshot
kline_ma5_breakout_result.csv csv exp-data/result//kline_ma5_breakout_result.csv output object + event_date experiment_id + run_id + object_id + event_date kline smoke runner 审计员/后续实验 overwrite_snapshot
kline_volume_pullback_result.csv csv exp-data/result//kline_volume_pullback_result.csv output object + event_date experiment_id + run_id + object_id + event_date kline smoke runner 审计员/后续实验 overwrite_snapshot
input_manifest.csv csv exp-data/result//input_manifest.csv manifest artifact artifact smoke runner 审计员 overwrite_snapshot
output_manifest.csv csv exp-data/result//output_manifest.csv manifest artifact artifact smoke runner 审计员 overwrite_snapshot

6. 字段级 schema

6.1 synthetic_timeseries_input.csv

field_name data_type required nullable meaning source time_semantics example
experiment_id string 实验事项 ID runner generated-time EXP-20260601-TIMESERIES-SMOKE-001
run_id string 执行 run ID runner generated-time RUN-20260601-TIMESERIES-SMOKE-001
object_id string 合成对象 ID synthetic generator event-time OBJECT001
event_date date 事件日期 synthetic generator event-time 2026-05-01
open decimal 起始值 synthetic generator event-time 10.00
high decimal 区间高值 synthetic generator event-time 10.18
low decimal 区间低值 synthetic generator event-time 9.85
close decimal 结束值 synthetic generator event-time 10.00
volume integer 活跃度示例值 synthetic generator event-time 106500
data_source string 数据来源 runner generated-time SYNTHETIC_TIMESERIES_SMOKE
source_visible_at datetime 本行数据可见时间 runner as-of note 2026-05-01 15:00:00

6.2 timeseries_signal_result.csv

除输入字段外,新增:

field_name data_type required nullable meaning source time_semantics example
ma5 decimal/string 5 日均线;不足 5 日为空 runner event-time 10.01
ma5_breakout_flag integer 收盘上穿 MA5 的示例信号 runner after-close smoke 1
signal_rule string 信号规则名 runner generated-time close_cross_above_ma5_after_pullback

6.3 synthetic_kline_input.csv

field_name data_type required nullable meaning source time_semantics example
experiment_id string 实验事项 ID runner generated-time EXP-20260601-KLINE-MA5-BREAKOUT-001
run_id string 执行 run ID runner generated-time RUN-20260601-KLINE-MA5-BREAKOUT-001
object_id string 合成对象 ID synthetic generator event-time KOBJ001
event_date date K 线日期 synthetic generator event-time 2026-05-01
open decimal 开盘价示例值 synthetic generator event-time 10.00
high decimal 最高价示例值 synthetic generator event-time 10.18
low decimal 最低价示例值 synthetic generator event-time 9.85
close decimal 收盘价示例值 synthetic generator event-time 10.00
volume integer 成交量示例值 synthetic generator event-time 2100

6.4 kline_feature_panel.csv

除 synthetic_kline_input.csv 的部分字段外,保留:

field_name data_type required nullable meaning source time_semantics example
experiment_id string 实验事项 ID runner generated-time EXP-20260601-KLINE-MA5-BREAKOUT-001
run_id string 执行 run ID runner generated-time RUN-20260601-KLINE-MA5-BREAKOUT-001
object_id string 合成对象 ID synthetic generator event-time KOBJ001
event_date date K 线日期 synthetic generator event-time 2026-05-01
close decimal 收盘价示例值 synthetic generator event-time 10.00
volume integer 成交量示例值 synthetic generator event-time 2100
ma5 decimal/string 5 日均线;不适用或不足窗口为空 runner after-close smoke 10.01
ma10 decimal/string 10 日均线;不适用或不足窗口为空 runner after-close smoke 21.18

6.5 kline_*_result.csv

除 synthetic_kline_input.csv 字段外,新增:

field_name data_type required nullable meaning source time_semantics example
ma5 decimal/string 5 日均线;不适用或不足窗口为空 runner after-close smoke 10.01
ma10 decimal/string 10 日均线;不适用或不足窗口为空 runner after-close smoke 21.18
signal_type string 示例信号类型 runner generated-time MA5_BREAKOUT
signal_flag integer 示例信号是否命中 runner after-close smoke 1
signal_reason string 示例信号命中原因 runner generated-time close_cross_above_ma5

6.6 manifest 文件

field_name data_type required nullable meaning
artifact string 资产文件名
path string 资产路径
artifact_role string 资产角色
row_count / row_count_or_count integer 行数或资产数量
sha256 string 文件 hash

7. 读取方式

人读:

exp-doc/目录导读.md
-> 实验总纲.md
-> 实验设计.md
-> 实验执行日志.md
-> exp-data/result/<run_id>/readout.md
-> exp-doc/实验审计报告.md

AI 读:

实验总纲
-> 实验设计
-> output_manifest.csv
-> summary.json
-> 关键结果表 / 图片
-> 审计报告

8. 临时数据边界

exp-data/tmp/ 只存临时脚本和临时文件。临时文件不能作为正式结论入口。

如果临时脚本用于正式实验,应在执行日志和 output_manifest 中记录脚本路径和 hash。