# 数据回补质量保证制度（QAS）

**版本**: v1.0  
**生效日期**: [REDACTED_PHONE]  
**适用范围**: 所有量化数据回补任务

---

## 一、核心原则

### 1.1 小批量先行原则
**强制要求**：任何数据回补任务必须先执行小批量测试（≤10只），验证数据可正常入库后，方可扩大规模。

### 1.2 验证确认原则
**强制要求**：每个批次执行后必须验证实际入库数量，入库率<50%必须暂停排查。

### 1.3 退市过滤原则
**强制要求**：必须过滤已退市股票，只处理上市状态（list_status='L'）的股票。

### 1.4 实时汇报原则
**强制要求**：每批次完成后必须汇报：处理数量、入库数量、入库率、剩余数量。

---

## 二、5检查点流程（5-Check Process）

```
┌─────────────────────────────────────────────────────────────────┐
│  检查点1: 小批量预测试 (Pre-Test)                                │
│  • 处理10只股票                                                    │
│  • 验证数据正确入库                                                │
│  • 检查是否有错误                                                  │
├─────────────────────────────────────────────────────────────────┤
│  检查点2: 数据入库验证 (Verify)                                  │
│  • SQL查询确认数据量                                               │
│  • 对比预期vs实际                                                  │
│  • 入库率>50%通过                                                  │
├─────────────────────────────────────────────────────────────────┤
│  检查点3: 人工确认 (Approve)                                     │
│  • 检查日志                                                        │
│  • 确认无误后继续                                                  │
│  • 有问题则返回修复                                                │
├─────────────────────────────────────────────────────────────────┤
│  检查点4: 批量执行 (Batch)                                       │
│  • 按年度分批次处理                                                │
│  • 每100只验证一次                                                 │
│  • 详细记录日志                                                    │
├─────────────────────────────────────────────────────────────────┤
│  检查点5: 实时监控 (Monitor)                                     │
│  • 每小时汇报进度                                                  │
│  • 异常自动报警                                                    │
│  • 最终数据完整性检查                                              │
└─────────────────────────────────────────────────────────────────┘
```

---

## 三、执行检查清单

### 任务启动前检查

- [ ] 1. 确认数据源可用（Tushare API正常）
- [ ] 2. 确认数据库可写入（空间充足）
- [ ] 3. 备份当前数据库（可选）
- [ ] 4. 清除之前的PID文件
- [ ] 5. 确认脚本版本（使用v2.0修复版）

### 小批量测试检查

- [ ] 1. 处理10只股票
- [ ] 2. 等待完成（约5-10分钟）
- [ ] 3. SQL查询验证入库数量
- [ ] 4. 检查日志是否有错误
- [ ] 5. **入库率≥50%** 方可继续

### 批量执行检查（每批次）

- [ ] 1. 批次开始前汇报：本批次股票数、预计时间
- [ ] 2. 批次进行中：每10只汇报进度
- [ ] 3. 批次完成后汇报：处理数、入库数、入库率
- [ ] 4. **入库率<50%立即暂停排查**
- [ ] 5. 记录到verify.log

### 任务完成后检查

- [ ] 1. 各年度数据量统计
- [ ] 2. 与预期数据量对比
- [ ] 3. 完整性检查（是否有缺失股票）
- [ ] 4. 生成最终报告

---

## 四、汇报模板

### 小批量测试结果汇报

```
【小批量测试结果】
测试时间: YYYY-MM-DD HH:MM
测试股票: 10只 (代码列表)
查询次数: XXX次
入库记录: XXX条
入库率: XX%
日志检查: 正常/有错误
结论: 通过/不通过
```

### 批次进度汇报

```
【批次进度】
批次: 第X批
年度: 20XX年
处理: XX/XX只
入库: XX条
入库率: XX%
剩余: XX只
预计完成: XX小时
```

### 最终报告

```
【数据回补完成报告】
任务名称: fina_tushare数据回补
执行时间: YYYY-MM-DD HH:MM 至 YYYY-MM-DD HH:MM
总处理: XXXXX只股票
总入库: XXXXXX条记录
年度分布:
  2018年: XXXX条
  2019年: XXXX条
  ...
数据完整性: XX%
备注: 
```

---

## 五、异常处理流程

### 入库率为0

```
发现: 入库率为0
排查:
  1. 检查API是否正常返回
  2. 检查数据库连接
  3. 检查股票是否已退市
处理:
  • 如果是退市股票: 修改脚本过滤退市股
  • 如果是API问题: 更换数据源
  • 如果是插入问题: 修复SQL语句
```

### 入库率<50%

```
发现: 入库率<50%
排查:
  1. 检查Tushare限流
  2. 检查API返回空数据的频率
  3. 检查数据已存在的情况
处理:
  • 如果是限流: 降低请求频率
  • 如果是数据缺失: 记录缺失股票，后续单独处理
  • 如果是重复处理: 优化筛选逻辑
```

### 进程异常终止

```
发现: 进程消失/崩溃
排查:
  1. 检查系统日志
  2. 检查内存使用
  3. 检查磁盘空间
处理:
  • 恢复后从断点继续
  • 记录已处理的股票
  • 避免重复处理
```

---

## 六、责任制度

### 执行者责任

1. **必须**严格执行5检查点流程
2. **必须**每批次汇报进度
3. **必须**如实报告数据入库情况
4. **禁止**虚报完成进度
5. **禁止**跳过验证步骤

### 审核者责任

1. **必须**审核小批量测试结果
2. **必须**确认入库率达标后才批准批量执行
3. **必须**定期检查verify.log
4. **必须**对异常情况进行干预

---

## 七、违规处罚

| 违规行为 | 处罚 |
|:---|:---|
| 跳过小批量测试直接批量执行 | 立即停止任务，重新执行完整流程 |
| 虚报数据入库情况 | 重新验证所有数据，追究责任 |
| 未过滤退市股票 | 修复脚本，重新处理 |
| 不按时汇报进度 | 暂停任务，书面说明原因 |

---

## 八、附则

1. 本制度自发布之日起生效
2. 本制度由投资决策质量审核员（豆奶）监督执行
3. 违反本制度的行为将记录在案，作为评估依据

---

**制定人**: 一杯豆奶  
**审核人**: [待填写]  
**批准日期**: [REDACTED_PHONE]