01-数据方案设计
数据库的顶层设计文档。围绕"趋势定投分析需要什么样的数据基础设施"展开,覆盖选型、表结构、接口映射、更新策略、质量校验五个维度,给出可落地的方案与边界判断。
设计目标
数据库的核心目标是:为站点分析提供可用、可信、可查的本地数据,让中间段与终点段的分析文档不依赖外部接口实时调用,所有结论基于本地 SQLite 库得出。
设计判断基于以下前提:
- 数据量在 50-500MB 级别,单机使用
- 读多写少,每日批量更新写入,分析时只读
- 个人投资分析,非量化交易,不需要毫秒级响应
- 零运维优先,避免引入数据库服务
文档结构
关键设计取舍
-
本地库为可信源:所有分析基于本地 SQLite,不直接依赖外部接口实时调用。外部接口失效不影响已有数据分析。
-
akshare 是抓取层而非数据源:akshare 聚合了东方财富、新浪、同花顺、雪球、理杏仁等上游,接口稳定性依赖上游网站。关键数据准备主备接口,版本写入
requirements.txt锁定。 -
fetcher 层抽象:业务层不直接调用 akshare,所有外部接口集中在
fetcher_*.py层。接口失效时只需修改 fetcher 层,不影响查询接口。 -
数据治理字段内嵌:每条数据带
data_quality、source、updated_at字段,校验失败的标的写入update_failure_log,分析查询默认过滤异常数据。
与其他模块的关系
- 数据方案设计是数据库的顶层蓝图,决定 02-数据脚本 的实现方式与 04-查询接口 的查询能力
- 表结构定义后,
db.py按此建表,fetcher_*.py按接口映射填充数据 - 数据质量规则决定查询接口中
data_quality IN ('ok', 'manual_fixed')过滤条件的合理性
何时回查本文档
- 新增数据表或字段时,回查 02-数据架构与表结构设计 确认分组归属与命名约定
- 新增数据源时,回查 03-数据获取接口与映射 确认主备接口策略
- 数据出现异常时,回查 05-数据质量与校验规则 确认校验维度与处理方式
- 调度出问题时,回查 04-数据更新与调度策略 确认触发配置与重试策略