docs(deploy): 数据分析板块首部署回填注记

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-09-04 23:14:53 +08:00
parent c2d6d6feba
commit 0fad1b09bb
+32
View File
@@ -194,6 +194,38 @@ docker compose -f docker-compose.server.yml exec scheduler \
(类型变更类迁移在 MySQL 上锁大表写入,避开抓取窗口:北京 02:00 全量、
每 4h 增量;增量耗时约 15-30 分钟)。
### 数据分析板块首部署附加步骤(一次性,2026-09-04)
alembic 链自当前线上版本起新增 3 支迁移:`a7d3e9f1c2b4` msg_daily_stats
日汇总表、`f0a1b2c3d4e5` 分析板块四新表 + `message.fetched_at` 索引、
`c3d4e5f6a7b8` 五表 `updated_at` 窄索引。
- **迁移随 `up -d --build` 自动跑**,平时无需手动。⚠️ 其中
`ix_message_fetched_at` 要在 86 万行 message 表上建索引,约十几秒
(InnoDB online DDL,量级同 c53f90b1e6a4)——**避开北京 02:00 全量抓取
窗口**执行升级:先停 scheduler 容器再 up,或白天低峰手动跑
`sudo docker compose -f docker-compose.server.yml exec backend alembic upgrade head`。
- 部署完成后在**夜间低峰**跑两条一次性回填,此后每 4h 的 analytics tick
自动增量维护,不用再手动:
```bash
sudo docker compose -f docker-compose.server.yml exec backend python -m app.sync.cli staff-daily-stats
sudo docker compose -f docker-compose.server.yml exec backend python -m app.sync.cli sensitive-scan --full
```
前者全量重建 stat_daily_staff(分钟级);后者逐词扫全库并建扫描水位
(高频词分钟级)。**首跑必须带 `--full`**:不建水位,增量扫描会拒绝扫库。
- **顺序**:sensitive-scan --full 宜赶在调度器首次 4h analytics tick 之前;
tick 首次在进程启动 4h 后才触发,部署当天跑回填通常天然满足。万一 tick
先到,也只是每 4h 记一条 ERROR 日志(analytics tick failed,无扫描水位),
属预期提示非故障,补跑 --full 后即消失。
- 升级收尾 `sudo docker compose -f docker-compose.server.yml restart frontend`
(让 nginx 重新解析 backend 容器 IP,防漂移后 502,同既有升级流程)。
- 浏览器验收:登录后依次打开 `/analytics/dashboard`、`/analytics/churn`、
`/analytics/unreplied`、`/analytics/sensitive` 四页;各页角标「数据截至」
在上述回填完成后才会显示。
- 起步词库 6 词(私单/飞单/加私人微信/红包/转账/离职)由 sensitive-scan
幂等自动补种,无需手插;后续加新词默认只扫增量,要扫历史消息需重跑
`--full`。
## 8. 本地收尾(部署验证通过后)
```bash