# Cleanup 模块功能需求 ## 1. 需求概述 ### 1.1 业务背景 在开发和测试过程中,系统会产生大量的测试数据和运行数据。这些数据需要定期清理以: - 保持测试环境的干净状态 - 减少数据库存储压力 - 提高系统性能 - 便于重复测试 ### 1.2 核心需求 - 提供灵活的数据清理配置功能 - 支持多种清理策略和条件 - 确保清理过程的安全性和可控性 - 提供完整的清理日志和统计信息 ## 2. 功能模块 ### 2.1 配置管理模块 #### 2.1.1 表扫描功能 **功能描述**:自动扫描系统中的所有数据表,识别表结构和数据特征。 **具体需求**: - 扫描所有以`kku_`开头的数据表 - 自动识别表的模块归属(根据表名前缀) - 分析表的数据特征(记录数、大小、时间字段等) - 自动分类表的数据类型(用户数据、日志数据、配置数据等) - 生成默认的清理配置建议 **输入**:无 **输出**:表扫描结果和配置建议 #### 2.1.2 清理配置管理 **功能描述**:为每个数据表配置具体的清理规则和条件。 **具体需求**: - 支持配置清理类型(清空、按时间删除、按条件删除等) - 支持配置清理条件(时间范围、用户范围、状态条件等) - 支持设置清理优先级和批处理大小 - 支持启用/禁用特定表的清理 - 提供配置模板和快速配置功能 **输入**:表名、清理规则、条件参数 **输出**:配置保存结果 #### 2.1.3 配置验证功能 **功能描述**:验证清理配置的正确性和安全性。 **具体需求**: - 验证SQL条件的语法正确性 - 检查时间字段的存在性 - 验证用户字段的有效性 - 检查配置的逻辑一致性 - 提供配置风险评估 **输入**:清理配置 **输出**:验证结果和风险评估 ### 2.2 清理执行模块 #### 2.2.1 预览功能 **功能描述**:在实际清理前预览将要清理的数据统计。 **具体需求**: - 统计每个表将要删除的记录数 - 计算清理后释放的存储空间 - 显示清理的影响范围 - 提供清理时间估算 - 支持按模块、分类查看预览结果 **输入**:清理任务配置 **输出**:清理预览报告 #### 2.2.2 清理执行功能 **功能描述**:执行实际的数据清理操作。 **具体需求**: - 支持多种清理策略(TRUNCATE、DELETE等) - 按优先级顺序执行清理 - 支持分批处理大数据量表 - 实时显示清理进度 - 支持清理过程的暂停和恢复 - 提供清理失败的回滚机制 **输入**:清理任务 **输出**:清理执行结果 #### 2.2.3 安全控制功能 **功能描述**:确保清理过程的安全性。 **具体需求**: - 多重确认机制(特别是危险操作) - 权限验证(只有授权用户可以执行清理) - 操作审计(记录所有清理操作) - 备份提醒(清理前提醒用户备份重要数据) - 紧急停止功能 **输入**:用户操作 **输出**:安全验证结果 ### 2.3 任务管理模块 #### 2.3.1 任务创建功能 **功能描述**:创建和配置清理任务。 **具体需求**: - 支持创建不同类型的清理任务 - 支持选择目标模块和数据分类 - 支持自定义清理条件 - 支持任务模板和快速创建 - 支持任务调度(立即执行或定时执行) **输入**:任务配置参数 **输出**:任务创建结果 #### 2.3.2 任务监控功能 **功能描述**:监控清理任务的执行状态和进度。 **具体需求**: - 实时显示任务执行进度 - 显示当前处理的表和记录数 - 显示执行时间和剩余时间估算 - 支持任务状态变更通知 - 提供任务执行的详细日志 **输入**:任务ID **输出**:任务状态和进度信息 #### 2.3.3 任务历史功能 **功能描述**:管理和查看历史清理任务。 **具体需求**: - 查看历史任务列表 - 查看任务执行详情 - 支持按时间、状态、创建者筛选 - 支持任务结果的导出 - 提供任务执行统计分析 **输入**:查询条件 **输出**:任务历史记录 ### 2.4 日志管理模块 #### 2.4.1 操作日志功能 **功能描述**:记录所有清理操作的详细日志。 **具体需求**: - 记录每个表的清理操作详情 - 记录操作前后的数据统计 - 记录执行的SQL语句 - 记录操作耗时和性能指标 - 支持日志的查询和筛选 **输入**:清理操作 **输出**:操作日志记录 #### 2.4.2 统计报告功能 **功能描述**:生成清理操作的统计报告。 **具体需求**: - 生成清理效果统计报告 - 显示存储空间释放情况 - 显示清理性能指标 - 支持按时间段统计 - 支持报告导出和分享 **输入**:统计时间范围 **输出**:统计报告 ### 2.5 后台管理模块 #### 2.5.1 配置管理界面 **功能描述**:提供友好的配置管理界面。 **具体需求**: - 表格形式显示所有表的配置 - 支持批量编辑和操作 - 提供配置导入导出功能 - 支持配置的复制和模板化 - 提供配置验证和预览功能 #### 2.5.2 任务管理界面 **功能描述**:提供任务创建和管理界面。 **具体需求**: - 向导式任务创建流程 - 任务列表和状态监控 - 任务详情查看和操作 - 支持任务的暂停、恢复、取消 - 提供任务执行的实时监控 #### 2.5.3 日志查看界面 **功能描述**:提供日志查看和分析界面。 **具体需求**: - 分页显示清理日志 - 支持多维度筛选和搜索 - 提供日志详情查看 - 支持日志的导出和下载 - 提供可视化的统计图表 ## 3. 非功能需求 ### 3.1 性能需求 - 支持处理百万级记录的大表清理 - 清理操作不应显著影响系统正常运行 - 分批处理机制确保内存使用可控 - 清理进度更新频率不超过每秒一次 ### 3.2 安全需求 - 所有清理操作必须经过权限验证 - 敏感操作需要多重确认 - 完整的操作审计日志 - 支持操作的撤销和恢复 ### 3.3 可用性需求 - 界面操作简单直观 - 提供详细的操作指导 - 支持批量操作提高效率 - 提供操作结果的及时反馈 ### 3.4 可维护性需求 - 模块化设计便于扩展 - 清晰的代码结构和文档 - 支持新清理规则的快速添加 - 提供完整的错误处理机制 ## 4. 约束条件 ### 4.1 技术约束 - 必须兼容现有的数据库结构 - 不能破坏数据表之间的关联关系 - 必须支持事务回滚机制 - 清理操作必须是幂等的 ### 4.2 业务约束 - 配置数据表默认不允许清理 - 用户核心数据需要特殊保护 - 清理操作必须有明确的业务授权 - 必须保留必要的审计信息 ### 4.3 运维约束 - 清理操作应在业务低峰期执行 - 大规模清理前必须进行数据备份 - 清理过程必须可监控和可中断 - 必须提供清理效果的验证机制