Files
Neo-ZQYY/.kiro/specs/etl-fullstack-integration/tasks.md

4.6 KiB
Raw Blame History

实现计划ETL 全流程前后端联调etl-fullstack-integration

概述

基于 admin-web-console 已完成的前后端代码,进行端到端联调验证。通过后端 API 提交 api_full 全流程 ETL 任务(自定义窗口 2025-11-01~2026-02-2030天切分force-full全选常用任务实时监控执行过程收集性能数据最终生成综合报告。

任务

  • 1. 服务启动与健康检查

    • 1.1 启动后端服务(apps/backend/uvicorn :8000确认 API 可达

      • 启动 uvicorn app.main:app --host 0.0.0.0 --port 8000cwd 为 apps/backend/
      • 验证 GET /api/tasks/flows 返回 200
      • Requirements: 1.1
    • 1.2 启动前端服务(apps/admin-web/pnpm dev :5173确认页面可访问

      • 启动 pnpm devcwd 为 apps/admin-web/
      • 验证 http://localhost:5173 可达
      • Requirements: 1.2
    • 1.3 API 健康检查:登录获取 JWT验证任务注册表执行 sync-check

      • POST /api/auth/login 使用默认管理员账号admin / admin123获取 JWT
      • GET /api/tasks/registry 确认返回非空任务列表
      • GET /api/tasks/sync-check 确认 in_sync=true(后端注册表与 ETL 真实注册表一致)
      • 如果 sync-check 不一致,记录差异并向用户报告
      • Requirements: 1.3, 1.4, 1.5
  • 2. 全流程任务提交

    • 2.1 构建 TaskConfig 并调用 validate 预览 CLI 命令

      • 构建 TaskConfigflow=api_full, processing_mode=full_window, window_mode=custom, window_start="2025-11-01 00:00", window_end="2026-02-20 00:00", window_split=day, window_split_days=30, force_full=True, tasks=全选 is_common=True 的任务
      • 调用 POST /api/tasks/validate 验证配置有效
      • 记录生成的 CLI 命令预览,确认参数完整(--flow api_full --processing-mode full_window --window-start ... --window-end ... --window-split day --window-split-days 30 --force-full --store-id 1 --tasks ...
      • Requirements: 2.1
    • 2.2 提交任务执行(POST /api/execution/run),记录 execution_id

      • 调用 POST /api/execution/run 提交任务
      • 记录返回的 execution_id
      • 确认任务状态变为 running
      • Requirements: 2.2, 2.4
  • 3. 执行监控与 DEBUG

    • 3.1 启动监控循环:每 30 秒轮询状态和日志,检测错误/警告,最长等待 30 分钟

      • 轮询 GET /api/execution/queue 检查任务状态
      • 轮询 GET /api/execution/{id}/logs 获取增量日志
      • 检测日志中的 ERROR / CRITICAL / Traceback / Exception / WARNING
      • 记录每次轮询的时间戳和日志增量行数
      • 如果连续 30 分钟无新日志输出,报告超时警告
      • 任务完成success/failed/cancelled时停止轮询
      • Requirements: 3.1, 3.2, 3.3, 3.4, 3.5
    • 3.2 对执行过程中发现的错误/警告进行 DEBUG 分析

      • 收集所有 ERROR 和 WARNING 日志行及其上下文(前后各 5 行)
      • 分析错误类型API 超时、数据库连接、数据质量、配置问题等
      • 如果任务失败,获取完整 stderr 并分析根因
      • 记录 DEBUG 发现到报告中
      • Requirements: 3.2, 3.5
  • 4. 性能计时与报告生成

    • 4.1 解析执行日志,提取精细计时数据

      • 从日志中提取每个窗口切片30天的开始/结束时间
      • 计算每个切片的耗时
      • 识别 ODS / DWD / DWS / INDEX 各阶段的耗时
      • 标注 Top-5 耗时最长的阶段/任务
      • Requirements: 4.1, 4.2, 4.3, 4.4
    • 4.2 生成综合联调报告,输出到 SYSTEM_LOG_ROOT

      • 报告包含:执行概要(参数、时间、退出码)
      • 报告包含性能报告各切片耗时对比、Top-5 瓶颈)
      • 报告包含DEBUG 报告(如有错误/警告)
      • 输出路径:{SYSTEM_LOG_ROOT}/{date}__etl_integration_report.md
      • 路径通过 SYSTEM_LOG_ROOT 环境变量获取,缺失时报错
      • Requirements: 5.1, 5.2, 5.3, 5.4
  • 5. 服务清理

    • 5.1 停止后端和前端服务,清理资源
      • 停止 uvicorn 进程
      • 停止 pnpm dev 进程
      • 报告联调完成状态

说明

  • 本 Spec 为运维联调任务,不涉及新功能代码开发
  • 不编写属性测试或单元测试,联调本身即为集成验证
  • 全选常用任务 = 任务注册表中 is_common=True 的所有任务(共 41 个)
  • "全部门店":当前系统仅有 site_id=1默认管理员绑定如需多门店需逐个执行
  • 监控允许空闲等待,最长 30 分钟无新日志才报超时
  • 报告输出路径遵循 export-paths 规范,通过 SYSTEM_LOG_ROOT 环境变量获取