Files
Neo-ZQYY/docs/audit/changes/2026-02-14__legacy-ods-dwd-cleanup.md

41 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 审计记录:废弃独立 ODS/DWD 任务代码清理 + 文档同步
- 日期: 2026-02-14 (Asia/Shanghai)
- Prompt: 用户要求"扩大搜索面,对 loaders/, scripts/, tasks/, tests/ 等文件夹进行仔细搜索,一次性的删除掉这些残留,然后对 docs/etl_tasks 下的文档仔细检查,更新或重写,保证符合现实情况"
- 直接原因: 14 个独立 ODS 任务和 3 个独立 DWD 任务写入不存在的 `billiards.*` schema无 DDL 定义),已被通用 ODS 任务(`billiards_ods.*`)和 `DWD_LOAD_FROM_ODS` 的 TABLE_MAP 完全替代。代码文件已在前一轮删除,但残留了测试工具中的废弃引用、注册表中的重复循环、以及文档中的过时内容。
## 修改文件清单
| 文件 | 变更类型 | 说明 |
|------|----------|------|
| `orchestration/task_registry.py` | 修改 | 删除底部重复的 `ODS_TASK_CLASSES` 注册循环(与顶部重复) |
| `tests/unit/task_test_utils.py` | 修改 | 删除废弃的 14 个 TaskSpec 定义(~370 行)+ 废弃 import修复 IndentationError 语法错误 |
| `docs/etl_tasks/ods_tasks.md` | 重写 | 删除整个"独立 ODS 任务"章节14 个任务的详细文档),仅保留"通用 ODS 任务"章节 |
| `docs/etl_tasks/dwd_tasks.md` | 修改 | 删除 TICKET_DWD/PAYMENTS_DWD/MEMBERS_DWD 三个废弃任务章节;概述表从 5 个任务改为 2 个 |
| `docs/etl_tasks/README.md` | 修改 | 删除独立 ODS 任务表格14 行);删除 3 个废弃 DWD 任务行;更新文档索引描述;修正命令示例 |
| `.kiro/steering/tech.md` | 修改 | Schema 列表从 `billiards`(不存在)改为 `billiards_ods`;修正 `--pipeline-flow``--data-source` |
## 风险点
- `orchestration/task_registry.py` 是任务注册的核心入口,删除重复循环后需确认 52 个任务全部正确注册
- `tests/unit/task_test_utils.py``TASK_SPECS` 现在为空列表,依赖它的参数化测试会 skip预期行为
- 文档重写后,所有 `billiards.*` 引用已清除,仅保留 `billiards_ods.*`/`billiards_dwd.*`/`billiards_dws.*`
## 回滚要点
- `orchestration/task_registry.py`:恢复底部的 `for code, task_cls in ODS_TASK_CLASSES.items()` 循环(功能上无影响,只是重复注册)
- `tests/unit/task_test_utils.py`:从 git 恢复废弃 TaskSpec 定义(但会导致 import 错误,因为源文件已删除)
- 文档:从 git 恢复旧版本
## 验证步骤
1. `python -c "from orchestration.task_registry import default_registry; print(len(default_registry.get_all_task_codes()))"` → 应输出 52
2. `python -c "import ast; ast.parse(open('tests/unit/task_test_utils.py','utf-8').read()); print('OK')"` → 应输出 OK
3. `pytest tests/unit -x --ignore=tests/unit/test_dws_tasks.py` → 418 passed, 1 skipped
4. `pytest tests/unit/test_doc_coverage_ods.py tests/unit/test_doc_coverage_dwd.py -v` → 全部 passed
5. 搜索 `billiards\.fact_``billiards\.dim_` 确认文档中无残留引用
## 无数据库 schema 变更
本次变更仅删除代码和更新文档,不涉及 DDL/migration/表结构变更,无需同步 `docs/bd_manual/`