# 全局存储体系 创建人员:Codex 文件职责:记录当前全局数据源、数据源关系、公共表边界、访问规范和变更边界。 书写管理规范:参考 `管理系统说明.md`、`全局规范.md`。 引用文件:`全局数据格式.md`、`管理系统说明.md`、`/observer/天下模型沉淀/数据库索引数据.md`。 记录方式:维护型说明文档;数据源、新公共表、账号管理方式或主从关系变化时更新;变更记录追加在文末。 ## 1. 当前口径 本文记录的是管理系统层面的全局公共数据源,不是某个项目、实验或业务模块的私有产物。 本轮已把执行AI当前使用的本机 MySQL 行情底座、K 线表、市场广度表、案例研究归档表和无忌 baseline 研究账本纳入全局存储视图。局、门、风格局、局实体、风源治理等业务专题表不在本轮升格为全局公共表。 ## 2. 数据源清单 | 数据源 ID | 类型 | 状态 | 主要内容 | 使用边界 | |---|---|---|---|---| | `MYSQL_TIANXIA_LOCAL` | MySQL | 当前主数据源 | A 股日线、分钟线、交易日历、画像、市值、股本、换手、市场广度、案例研究归档、baseline 研究账本 | 新研究默认优先读这里;分钟表体量大,必须按日期、代码、时间范围过滤 | | `STOCK_TOTAL_DATA_FILE_MIRROR` | 文件镜像 | 历史 / 补源 | `stock-data/total-data` 下的日线、分钟线、画像、股本等 CSV 镜像 | 作为历史来源、补数、追溯材料;正式研究不能和 MySQL 混用而不说明口径 | | `STAGE_TEMP_SQLITE_CACHE` | SQLite 临时库 | 非公共源 | Stage12F / Stage12L 等流程的中间缓存和排序缓存 | 只能用于对应 run 的临时恢复和排查;不得作为全局公共数据源 | ## 3. MySQL 连接口径 | 项 | 当前口径 | |---|---| | 数据库类型 | MySQL 8.x | | 服务名 | `MySQL84M` | | 主机 | `127.0.0.1` | | 端口 | `3306` | | 数据库 | `tianxia` | | 字符集 | `utf8mb4` | | 默认用户 | `root` | | 密码管理 | 通过本机环境变量 `TIANXIA_MYSQL_PASSWORD` 或管理员维护的本地密钥来源读取;历史明文密码位置见引用的数据库索引文档,本文不复制密码 | 使用规范: - 不在新文档里扩散明文密码。 - 只读查询优先;全局表 schema 或数据写入必须由体系管理员或被授权 AI 执行。 - 已上线公共表默认只能增字段,不得改字段语义、删字段、删表或批量改历史数据。 ## 4. 已纳入全局公共表 ### 4.1 A 股行情事实表 | 表 | 作用 | 当前读法 | |---|---|---| | `a_share_daily_price` | 默认 A 股前复权日线 K 线 | 当前默认日线主表 | | `a_share_minute_price` | A 股分钟 K 线 | 当前默认分钟线主表,体量最大 | | `a_share_daily_front_adj_missing_ohlc_20230101_20260508` | 前复权源包中停牌 / 无 OHLC 行审计 | 不能补价进默认 K 线表 | | `a_share_daily_price_backup_before_front_adj_20260523_1808` | 前复权切换前旧日线备份 | 只用于追溯旧口径 | | `a_share_daily_price_front_sync` | 前复权日线同步增量 / 影子表 | 用于同步和补数审计,不替代默认主表 | | `a_share_minute_price_front_sync` | 前复权分钟线同步增量 / 影子表 | 用于同步和补数审计,不替代默认主表 | | `a_share_kline_front_sync_run` | K 线同步运行记录 | 用于追踪同步批次、行数和状态 | ### 4.2 A 股基础维表和元数据表 | 表 | 作用 | 当前读法 | |---|---|---| | `a_share_trading_calendar` | A 股交易日历 | 交易日判断和交易日序列 | | `a_share_profile_snapshot` | 股票画像快照 | 名称、行业、概念、主营;当前是快照,不天然 PIT-safe | | `a_share_true_capital_turnover` | 总股本、流通股本、换手率 | 与日线按 `trade_date + symbol` 关联 | | `a_share_true_market_value` | 总市值、流通市值 | 与日线按 `trade_date + symbol` 关联 | | `stock_source_artifact` | 原始来源工件登记 | 数据来源追踪 | | `stock_dataset_manifest` | 原始批次 manifest | 批次和来源追踪 | | `stock_import_chunk_log` | 导入过程日志 | 导入审计和性能排查 | ### 4.3 公共市场广度缓存表 | 表 | 作用 | 当前读法 | |---|---|---| | `ts_market_breadth_daily_cache` | 日级全 A / 行业上涨家数和等权涨跌幅 | 用于市场环境、3000 家上涨等日级研究 | | `ts_market_breadth_intraday_cache` | 分时全 A / 行业上涨家数和等权涨跌幅 | 用于买入时点可见市场广度 | | `ts_market_breadth_intraday_daily_peak_cache` | 每日分时上涨家数峰值和首次达阈值时间 | 用于“当日是否出现 3000 家上涨”回放 | | `ts_market_breadth_cache_run` | 市场广度缓存构建记录 | 用于追踪缓存构建批次 | ### 4.4 公共研究归档表 这些表是公共研究支持表,不是交易生产表。入库只代表可追溯、可复核,不代表规则成立或可工程化。 | 表组 | 表 | 作用 | |---|---|---| | 案例研究 | `ts_case_study_casepack` | 案例包登记 | | 案例研究 | `ts_case_study_case_header` | 单案例主信息 | | 案例研究 | `ts_case_study_kline_window` | 案例 K 线窗口 | | 案例研究 | `ts_case_study_anchor` | 关键锚点 | | 案例研究 | `ts_case_study_asset` | 图表、源文件等资产路径和 hash | | 案例研究 | `ts_case_study_judgment` | AI / 人工判断版本 | | 案例研究 | `ts_case_study_tag` | 标签 | | baseline 研究 | `ts_baseline_run` | baseline 运行登记 | | baseline 研究 | `ts_baseline_case_decision` | 案例决策 | | baseline 研究 | `ts_baseline_entry_exit_event` | 买卖事件 | | baseline 研究 | `ts_baseline_trade_lot` | 单笔持仓 | | baseline 研究 | `ts_baseline_case_outcome` | 案例结果 | | baseline 研究 | `ts_baseline_audit_check` | 审计检查 | | 无忌归档 | `ts_wuji_portfolio_archive_manifest` | 研究产物 manifest 归档 | | 无忌归档 | `ts_wuji_portfolio_archive_row` | 研究产物行级 JSON 归档 | ### 4.5 公共信息缓存表 | 表 | 作用 | 当前读法 | |---|---|---| | `news_body_cache` | 新闻正文抓取缓存 | 信息源缓存,不直接代表事件成立 | | `quality_summary` | 外部数据导入质量摘要 | 质量检查辅助表 | ## 5. 已扫描但未纳入稳定公共表的表组 ### 5.1 本轮 MySQL 全库扫描摘要 扫描时间:2026-06-03。 扫描方式:只读查询 `information_schema.TABLES` 和 `information_schema.COLUMNS`。 | 表组 | 表数量 | 近似行数 | 本轮处理 | |---|---:|---:|---| | `a_share*` | 11 | 约 8.83 亿 | 纳入全局公共行情 / K 线 / 维表 | | `stock_*` | 3 | 约 121 | 纳入全局公共元数据表 | | `ts_market_breadth_*` | 4 | 约 262 万 | 纳入全局公共市场广度缓存 | | `ts_case_study_*` | 7 | 约 7391 | 纳入公共研究归档表 | | `ts_baseline_*` | 6 | 约 111 | 纳入公共研究账本表 | | `ts_wuji_portfolio_*` | 2 | 约 1.83 万 | 纳入公共研究产物归档表 | | `news_body_cache` / `quality_summary` | 2 | 约 1.83 万 | 纳入公共信息缓存 / 质量摘要 | | `style_*` | 109 | 约 1388 万 | 暂不冻结为稳定公共表 | | `research_style_ju_*` | 13 | 约 7.39 万 | 不纳入,本轮视为风格局专题研究表 | | `darkline*` / `dlroot*` / `dltest*` | 58 | 约 11.1 万 | 不纳入,本轮视为暗线专题研究表 | ### 5.2 未纳入表组 | 表组 | 数量 | 处理口径 | |---|---:|---| | `style_*` | 109 | 多数属于风格 / 风源 / 外部指标导入专题。可读,但暂不冻结为全局公共稳定表;若要升格为公共指标表,需要单独整理字段合同 | | `research_style_ju_*` | 13 | 明确属于风格局 / 局实体研究,不纳入本轮全局公共表 | | `darkline*` / `dlroot*` / `dltest*` | 58 | 暗线事件链路专题研究表,不是通用 K 线 / 市场事实源;后续若抽象为公共信息图谱,再单独升格 | 这个分类的目的不是否定这些表价值,而是防止把专题研究产物误当成全局稳定事实源。 ## 6. 核心关系 | 关系 | 连接键 | 说明 | |---|---|---| | 日线与分钟线 | `trade_date + symbol`,分钟再加 `trade_time` | 分钟线只能按时间范围切片查询 | | 日线与交易日历 | `trade_date = calendar_date` | 日线只覆盖交易日;交易日历包含自然日 | | 日线与画像 | `symbol`,必要时加 `snapshot_date` | 画像是快照,使用时要说明是否允许非 PIT | | 日线与股本 / 市值 | `trade_date + symbol` | 后续日期缺失时不得静默 forward-fill,必须写规则 | | 市场广度与行情 | `trade_date` / `trade_date + trade_time` | 日级和分时广度口径不同,不能混用 | | 案例研究与图表资产 | `casepack_id` / `case_id` / `asset_id` | 用于案例复核,不用于直接交易 | ## 7. 文件镜像数据源 文件镜像源位于 `/observer/model/data/stock-data/total-data`,当前主要结构: | 目录 | 内容 | 默认用途 | |---|---|---| | `calendar/full/*` | 交易日历完整包 | 历史追溯 | | `daily/full/*` | 日线完整包 | MySQL 补源 / 追溯 | | `daily/increment/*` | 日线增量包 | 补数来源 | | `minute/full/*` | 分钟线完整包 | MySQL 补源 / 追溯 | | `minute/increment/*` | 分钟线增量包 | 补数来源 | | `profile/full/*` | 股票画像完整包 | 画像补源 | | `true-cap/full/*` | 股本 / 换手 / 市值源 | 股本市值补源 | 文件型 CSV 原始字段见 `全局数据格式.md`。 ## 8. 使用规范 - 新实验默认读 `MYSQL_TIANXIA_LOCAL`,除非实验文档明确说明为什么要读文件镜像。 - 不得把临时 SQLite cache 当作公共数据源。 - 不得混用前复权日线、旧日线、分钟线、外部 CSV 而不记录来源。 - 分钟线查询必须带 `trade_date` 和 `symbol`,最好再带 `trade_time` 范围;不允许无边界全表扫描。 - 研究归档表可用于复核,不等于规则可投产。 - 全局公共表的字段新增必须同步更新 `全局数据格式.md`。 ## 9. 变更记录 - 2026-06-03:首次建立全局存储体系文档;根据本机 MySQL `tianxia` 的 `information_schema`、数据库索引文档和 stock-data 文件镜像整理当前公共表边界。