chore(data-ana): 更新工作进度跟踪与ISSUE状态,补建基础设施脚本,清理遗留代码
- workline: 追加 §6 实现进度跟踪(P2-P5 已完成,P6 未开始) - issue: 更新 §0.2/§0.3 核查表,proto 文件已全部补全 - 新增 scripts/clickhouse_ddl.sql(5 宽表建表脚本) - 新增 scripts/seed_clickhouse.py(mock 种子数据脚本) - 删除遗留代码 clickhouse_client.py 和 health.py
This commit is contained in:
@@ -23,9 +23,9 @@
|
||||
|
||||
| # | 审查章节 | 裁决内容 | 责任方 | 核查结论 |
|
||||
| --- | --------------- | ------------------------------------------------------------------------ | ------ | ---------------------------------------------------------------------------------------------------------- |
|
||||
| 1 | §2.2 #3 | iam 新增 `GetEffectiveDataScope` RPC,P4 补全,data-ana gRPC 调用 | iam | ⚠️ **未落实**:iam.proto 当前仅 4 RPC(Register/Login/RefreshToken/GetUserInfo),无 GetEffectiveDataScope |
|
||||
| 1 | §2.2 #3 | iam 新增 `GetEffectiveDataScope` RPC,P4 补全,data-ana gRPC 调用 | iam | ✅ **已落实**:iam.proto 已补全 GetEffectiveDataScope RPC(现为 6 RPC) |
|
||||
| 2 | §2.3 P4 行 | content + data-ana P4 启用 gRPC server | ai11 | ⏳ 未到 P4 阶段,待执行 |
|
||||
| 3 | §3.2 | 补登 `edu.insight.ai.usage` topic + events.proto 补 AIUsageEvent | coord | ⚠️ **未落实**:events.proto 当前仅 4 message(Class/Exam/Homework/GradeEvent),缺 AIUsageEvent |
|
||||
| 3 | §3.2 | 补登 `edu.insight.ai.usage` topic + events.proto 补 AIUsageEvent | coord | ✅ **已落实**:events.proto 已补全 AIUsageEvent message(现为 15 message) |
|
||||
| 4 | §3.3 | Python 服务 Outbox 豁免(MasteryUpdated / WarningTriggered) | coord | ✅ **已对齐**:01/02 文档已声明豁免,引用 coord-cross-review.md §3.3 |
|
||||
| 5 | §4.3 | data-ana HTTP=3006 / gRPC=50055 | coord | ✅ **已对齐**:01/02 文档端口声明一致 |
|
||||
| 6 | §5.3 | Python 服务信封改为 ActionState(degraded 放 details 子字段) | ai11 | ✅ **已对齐**:02 §4.3 ActionState 实现已修正,degraded 移至顶层 details |
|
||||
@@ -38,13 +38,13 @@ coord-cross-review.md §8.2 声称批次 0 已完成 proto 补全,ai11 逐文
|
||||
|
||||
| 声明产出项 | 声明状态 | 实际文件状态(ai11 核查) | 核查结论 |
|
||||
| -------------------- | --------------------------- | -------------------------------------------------------------------- | ----------- |
|
||||
| iam.proto 12 RPC | ✅ 12 RPC | **4 RPC**(Register/Login/RefreshToken/GetUserInfo) | ⚠️ 严重不符 |
|
||||
| analytics.proto 扩展 | ✅ 12 RPC(含 Stream) | **3 RPC**(GetClassPerformance/GetStudentWeakness/GetLearningTrend) | ⚠️ 严重不符 |
|
||||
| events.proto 补全 | ✅ 9 message(+AuditEvent) | **4 message**(ClassEvent/ExamEvent/HomeworkEvent/GradeEvent) | ⚠️ 严重不符 |
|
||||
| iam.proto 12 RPC | ✅ 12 RPC | **6 RPC**(含 GetEffectiveDataScope) | ✅ 已补全 |
|
||||
| analytics.proto 扩展 | ✅ 12 RPC(含 Stream) | **12 RPC**(含 4 端 Dashboard + Warning + Mastery + Stream) | ✅ 已补全 |
|
||||
| events.proto 补全 | ✅ 9 message(+AuditEvent) | **15 message**(含 AIUsageEvent + MasteryEvent) | ✅ 已补全 |
|
||||
| core_edu.proto 补全 | ✅ 5 service | 未由 ai11 核查(非本模块边界) | — |
|
||||
| buf.gen.yaml 插件 | ✅ go + python | 未由 ai11 核查(coord 维护) | — |
|
||||
|
||||
> **核查说明**:ai11 仅核查与 data-ana 直接相关的 proto(iam/analytics/events)。§8.2 声明与实际文件严重不符,可能原因:(a) 声明为计划态但未执行;(b) 执行后未提交到本 worktree 分支;(c) 在其他分支已执行但未合并。无论哪种原因,data-ana 的 P4 实现依赖这些 proto 补全,当前实际状态构成 P4 阻塞。
|
||||
> **核查说明**:ai11 仅核查与 data-ana 直接相关的 proto(iam/analytics/events)。截至 2026-07-13,三个 proto 文件均已补全,§8.2 声明与实际一致。
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -350,3 +350,81 @@ gantt
|
||||
| ClickHouse ReplacingMergeTree 去重延迟 | P4 | 查询加 FINAL / argMax 强制去重(02 §3.6 已设计) |
|
||||
| 单实例 CDC 消费者单点故障 | P4 | P6 演进为多实例 + Redis ExamCache;P4 阶段监控 consumer lag 告警 |
|
||||
| 掌握度算法精度不足 | P4 | v1 用加权滑动平均,P5+ 评估引入遗忘曲线 max 叠加(02 §9 已设计 MasteryMethod 枚举预留) |
|
||||
|
||||
---
|
||||
|
||||
## §6 实现进度跟踪(2026-07-13 更新)
|
||||
|
||||
> 基于代码审查与 proto 文件核查,更新各阶段实际完成状态。
|
||||
|
||||
### 6.1 P2 预备期 — ✅ 完成
|
||||
|
||||
| 任务 | 状态 | 说明 |
|
||||
| ---- | ---- | ---- |
|
||||
| 2.1 ClickHouse DDL 5 宽表建表 | ✅ 已完成 | DDL 脚本已创建在 scripts/clickhouse_ddl.sql,DDL 设计见 02 §3 |
|
||||
| 2.2 CDC 消费骨架 | ✅ 已完成 | cdc_consumer.py 完整实现,支持 5 表 + AIUsageEvent,手动 commit + Redis 去重 |
|
||||
| 2.3 mock 数据集 | ✅ 已完成 | scripts/seed_clickhouse.py 种子数据脚本已创建(30 学生 × 5 考试 × 10 作业 × 30 天出勤) |
|
||||
| 2.4 ActionState 信封重构 | ✅ 已完成 | shared/action_state.py 实现 ActionState[T] 泛型,degraded 在顶层 details |
|
||||
| 2.5 config.py 修正 | ✅ 已完成 | config.py 完整覆盖 ClickHouse/Kafka/iam/Redis/OTel/掌握度/预警配置 |
|
||||
|
||||
### 6.2 P3 预备期 — ✅ 完成
|
||||
|
||||
| 任务 | 状态 | 说明 |
|
||||
| ---- | ---- | ---- |
|
||||
| 3.1 gRPC server 骨架 | ✅ 已完成 | grpc_server.py 实现全部 12 RPC(含 server-streaming),HealthService.Check |
|
||||
| 3.2 core-edu CDC 通道接入 | ✅ 已完成 | cdc_consumer 处理 grades/exams/homework/attendance/classes CDC 事件 |
|
||||
| 3.3 ExamCache 内存 LRU | ✅ 已完成 | exam_cache.py OrderedDict LRU max 10000,CDC exams 触发更新 |
|
||||
| 3.4 掌握度算法 v1 | ✅ 已完成 | mastery_service.py 加权滑动平均 + 遗忘曲线衰减 |
|
||||
| 3.5 ClickHouseRepository | ✅ 已完成 | repository/clickhouse_repository.py P0 整改版,FINAL/argMax 去重 |
|
||||
|
||||
### 6.3 P4 主战场期 — ✅ 完成
|
||||
|
||||
| 任务 | 状态 | 说明 |
|
||||
| ---- | ---- | ---- |
|
||||
| 4.1 gRPC 50055 正式启用 | ✅ 已完成 | main.py lifespan 启动 gRPC server :50055 |
|
||||
| 4.2 analytics.proto 扩展 12 RPC | ✅ 已完成 | analytics.proto 已扩展至 12 RPC(ISSUE-003 已裁决) |
|
||||
| 4.3 4 端 Dashboard RPC 实现 | ✅ 已完成 | grpc_server.py + analytics_service.py 4 端 Dashboard |
|
||||
| 4.4 WarningService + TriggerWarning | ✅ 已完成 | warning_service.py 5 类预警 + Redis 去重 + 手动触发 |
|
||||
| 4.5 GetMasteryDistribution + GetStudentMastery | ✅ 已完成 | analytics_service.py 实现 |
|
||||
| 4.6 iam.GetEffectiveDataScope 集成 | ✅ 已完成 | repository/iam_client.py gRPC + Redis 缓存 + role 降级兜底(ISSUE-001 已裁决) |
|
||||
| 4.7 DataScope 6 级 WHERE 注入 | ✅ 已完成 | shared/permissions.py build_datascope_where + 6 级枚举 |
|
||||
| 4.8 attendance + content CDC 消费 | ✅ 已完成 | cdc_consumer.py 处理 attendance_logs + content_knowledge_points |
|
||||
| 4.9 MasteryEvent + WarningTriggered 发布 | ✅ 已完成 | repository/kafka_producer.py idempotent + transactional_id |
|
||||
| 4.10 HTTP 14 端点 + readyz 硬化 | ✅ 已完成 | main.py 14 端点 + /readyz 检查 4 依赖 |
|
||||
|
||||
### 6.4 P5 扩展期 — ✅ 基本完成
|
||||
|
||||
| 任务 | 状态 | 说明 |
|
||||
| ---- | ---- | ---- |
|
||||
| 5.1 SubscribeMasteryUpdate stream RPC | ✅ 已完成 | grpc_server.py 实现 asyncio.Queue 分发 + 30s 心跳 |
|
||||
| 5.2 AIUsageEvent 消费 → ai_usage_log | ✅ 已完成 | cdc_consumer.py 处理 edu.insight.ai.usage(ISSUE-002 已裁决) |
|
||||
| 5.3 手动 commit 替换 auto_commit | ✅ 已完成 | cdc_consumer.py enable_auto_commit=False + 手动 commit |
|
||||
| 5.4 Admin Dashboard AI 用量区块 | ✅ 已完成 | analytics_service.py + grpc_server.py AdminDashboard 含 AI 用量 |
|
||||
|
||||
### 6.5 P6 硬化期 — ⏳ 未开始
|
||||
|
||||
| 任务 | 状态 | 说明 |
|
||||
| ---- | ---- | ---- |
|
||||
| 6.1 CDC 多实例水平扩展 | ⏳ 未开始 | cdc_consumer.py get_lag() 返回 0(占位) |
|
||||
| 6.2 ExamCache Redis 化 | ⏳ 未开始 | exam_cache.py 仍为内存 LRU |
|
||||
| 6.3 容量规划 + TTL 归档策略 | ⏳ 未开始 | 需创建 ClickHouse TTL 配置 |
|
||||
| 6.4 监控告警完善 | ⏳ 未开始 | 需补 Prometheus 指标 + Grafana dashboard |
|
||||
| 6.5 readyz 深度硬化 | ⏳ 未开始 | 当前 /readyz 基本功能已实现,需补超时控制 |
|
||||
|
||||
### 6.6 ISSUE 落实状态
|
||||
|
||||
| ISSUE | 状态 | 说明 |
|
||||
| ----- | ---- | ---- |
|
||||
| ISSUE-001 | ✅ 已裁决 | iam.proto 已补全 GetEffectiveDataScope RPC(现为 6 RPC) |
|
||||
| ISSUE-002 | ✅ 已裁决 | events.proto 已补全 AIUsageEvent message(现为 15 message) |
|
||||
| ISSUE-003 | ✅ 已裁决 | analytics.proto 已扩展至 12 RPC |
|
||||
| ISSUE-004 | ✅ 已裁决 | coord 已仲裁,004 引用断裂临时改引 coord-cross-review.md |
|
||||
| ISSUE-005 | ✅ 已裁决 | topic 命名统一为 edu.insight.mastery.updated |
|
||||
| ISSUE-006 | ✅ 已裁决 | proto 文件已补全,声明与实际一致 |
|
||||
|
||||
### 6.7 代码清理
|
||||
|
||||
| 文件 | 处理 |
|
||||
| ---- | ---- |
|
||||
| src/data_ana/clickhouse_client.py | 已删除(与 repository/clickhouse_repository.py 重叠,缺少 FINAL/argMax) |
|
||||
| src/health/health.py | 已删除(未接入 main.py,main.py 有完整内联实现) |
|
||||
|
||||
Reference in New Issue
Block a user