# dataPipel **Repository Path**: yeguangsen/data-pipel ## Basic Information - **Project Name**: dataPipel - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-06-03 - **Last Updated**: 2026-06-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 企业级数据管道调度系统 ## 📋 项目简介 基于 Spring Boot + Vue3 的企业级数据管道调度系统,采用"调度-执行-日志-看板"四层架构,支持多数据源任务执行。 **核心特征**: "重流程、重管控、轻资源" **设计目标**: 追求确定性、可追溯和易运维、易扩展 **部署模式**: 单体应用,易于部署和运维 --- ## 🚀 快速启动 ### 前置要求 - ✅ JDK 17+ - ✅ Maven 3.6+ - ✅ Node.js 18+ - ✅ MySQL 8.0+ ### 方式1:一键启动脚本(推荐) **Windows:** ```bash start.bat ``` **Mac/Linux:** ```bash chmod +x start.sh ./start.sh ``` ### 方式2:手动启动 **数据库初始化:** ```bash mysql -u root -p < backend/sql/init_database.sql ``` **后端 (Spring Boot):** ```bash cd backend mvn spring-boot:run ``` **前端 (Vue3):** ```bash cd frontend npm install --registry=https://registry.npmmirror.com npm run dev ``` ### 启动顺序 1. 先启动MySQL 2. 再启动后端 3. 最后启动前端 --- ## 📌 默认访问地址 | 服务 | 地址 | 说明 | |------|------|------| | 前端 | http://localhost:5173 | 用户界面 | | 后端API | http://localhost:8080/api | 后端接口 | | 健康检查 | http://localhost:8080/actuator/health | 后端健康检查 | ## 🔐 默认账号 | 角色 | 用户名 | 密码 | |------|--------|------| | 管理员 | admin | Admin@123 | | 测试用户 | test | Test@123 | --- ## 🗄️ 数据库配置 1. 创建数据库:`CREATE DATABASE pipeline CHARACTER SET utf8mb4;` 2. 执行初始化脚本:`backend/sql/init_database.sql` 3. 修改配置:`backend/src/main/resources/application.yml` ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/pipeline username: root password: your_password ``` --- ## 🎯 核心功能 ### 用户管理模块 - ✅ 用户登录/退出 - ✅ 用户CRUD - ✅ Session管理 - ✅ 密码修改 ### 任务管理模块 - ✅ 任务定义与配置 - ✅ Cron配置 - ✅ 任务CRUD - ✅ 手动执行 ### 调度执行模块 - ✅ Quartz定时调度 - ✅ 执行器策略(策略模式) - ✅ 任务实例管理 - ✅ 执行时长统计 ### 日志记录模块 - ✅ 执行日志(观察者模式) - ✅ 操作日志 - ✅ 日志查询 - ✅ 日志分级 ### 看板监控模块 - ✅ 统计概览 - ✅ 执行趋势 - ✅ 实时监控 - ✅ 历史记录 --- ## 📁 项目结构 ``` dataPipel/ ├── backend/ # Spring Boot后端 │ ├── src/ │ │ └── main/java/com/example/pipeline/ │ │ ├── security/ # 用户认证模块 │ │ ├── scheduler/ # 任务调度模块 │ │ ├── executor/ # 任务执行模块 │ │ ├── task/ # 任务管理模块 │ │ ├── dashboard/ # 看板模块 │ │ └── common/ # 通用组件 │ ├── sql/init_database.sql # 数据库初始化脚本 │ ├── pom.xml # Maven配置 │ └── application.yml # 配置文件 ├── frontend/ # Vue3前端 │ ├── src/ │ │ ├── views/ │ │ │ ├── auth/ # 登录 │ │ │ ├── dashboard/ # 看板 │ │ │ ├── task/ # 任务管理 │ │ │ ├── monitor/ # 执行监控 │ │ │ └── user/ # 用户管理 │ │ ├── api/ # API封装 │ │ ├── router/ # 路由 │ │ └── utils/ # 工具 │ ├── package.json │ └── vite.config.js ├── start.bat # Windows一键启动 ├── start-step.bat # Windows分步启动 ├── start.sh # Linux/Mac一键启动 └── README.md # 项目主文档 ``` --- ## 🛠️ 技术栈 ### 后端技术栈 | 技术 | 版本 | 用途 | |------|------|------| | Spring Boot | 3.2 | 应用框架 | | Spring Security | - | 安全认证 | | Quartz | 2.3 | 定时调度 | | MySQL | 8.0+ | 数据库 | | JPA/Hibernate | - | ORM框架 | | Maven | 3.6+ | 构建工具 | ### 前端技术栈 | 技术 | 版本 | 用途 | |------|------|------| | Vue | 3.4 | 前端框架 | | Element Plus | 2.6 | UI组件库 | | Vue Router | 4.3 | 路由管理 | | Axios | 1.6 | HTTP客户端 | | ECharts | 5.5 | 图表库 | | Vite | 5.1 | 构建工具 | --- ## 📖 设计模式 ### 1. 模板方法模式 **位置**: `AbstractTaskExecutor` **用途**: 定义任务执行的标准流程(前置 → 执行 → 后置) ### 2. 策略模式 + 工厂模式 **位置**: `TaskExecutionStrategy` + `ExecutorFactory` **用途**: 支持多数据源执行器的动态选择 ### 3. 观察者模式 **位置**: `TaskExecutionObserver` **用途**: 任务执行过程中的日志记录和告警通知 --- ## 📊 数据库设计 ### 核心表 | 表名 | 说明 | |------|------| | sys_user | 用户表 | | task_definition | 任务定义表 | | task_instance | 任务实例表 | | execution_log | 执行日志表 | | operation_log | 操作日志表 | | qrtz_* | Quartz调度表 | ### 视图 | 视图名 | 说明 | |--------|------| | v_task_execution_stats | 任务执行统计 | | v_task_status_summary | 任务状态概览 | | v_instance_status_summary | 执行实例概览 | | v_today_execution_stats | 今日执行统计 | --- ## 🔧 API接口 ### 认证接口 - `POST /api/v1/auth/login` - 用户登录 - `POST /api/v1/auth/logout` - 用户退出 - `GET /api/v1/auth/me` - 获取当前用户 - `POST /api/v1/auth/change-password` - 修改密码 ### 用户接口 - `GET /api/v1/users` - 用户列表 - `GET /api/v1/users/{id}` - 用户详情 - `POST /api/v1/users` - 创建用户 - `PUT /api/v1/users/{id}` - 更新用户 - `DELETE /api/v1/users/{id}` - 删除用户 ### 任务接口 - `GET /api/v1/tasks` - 任务列表 - `GET /api/v1/tasks/{id}` - 任务详情 - `POST /api/v1/tasks` - 创建任务 - `PUT /api/v1/tasks/{id}` - 更新任务 - `DELETE /api/v1/tasks/{id}` - 删除任务 - `POST /api/v1/tasks/{id}/execute` - 手动执行 ### 执行记录接口 - `GET /api/v1/instances` - 执行记录 - `GET /api/v1/instances/{id}` - 执行详情 - `GET /api/v1/instances/{id}/logs` - 执行日志 - `POST /api/v1/instances/{id}/retry` - 重试执行 ### 看板接口 - `GET /api/v1/dashboard/summary` - 看板摘要 - `GET /api/v1/dashboard/trend` - 执行趋势 - `GET /api/v1/dashboard/stats` - 统计指标 --- ## ✅ 部署验证清单 ### 环境准备 - [ ] JDK 17+ 已安装 - [ ] Maven 3.6+ 已安装 - [ ] Node.js 18+ 已安装 - [ ] MySQL 8.0+ 已安装并启动 ### 数据库准备 - [ ] 创建数据库: `CREATE DATABASE pipeline CHARACTER SET utf8mb4;` - [ ] 执行初始化脚本: `backend/sql/init_database.sql` - [ ] 验证数据库连接: 检查 `application.yml` 中的数据库配置 - [ ] 确认默认用户存在: `SELECT * FROM sys_user;` ### 后端启动验证 - [ ] 访问: http://localhost:8080 - [ ] 查看控制台日志 - [ ] 看到 "系统启动成功!" 提示 ### 前端启动验证 - [ ] 访问: http://localhost:5173 - [ ] 看到登录页面 ### 功能验证 - [ ] 使用 admin/Admin@123 登录成功 - [ ] 可以查看用户列表 - [ ] 可以创建/编辑/删除任务 - [ ] 可以手动执行任务 - [ ] 可以查看执行记录和日志 - [ ] 可以看到看板统计卡片 --- ## 📞 常见问题 ### 端口被占用 ```bash # Windows netstat -ano | findstr "8080" taskkill /PID <进程ID> /F # Mac/Linux lsof -i :8080 kill -9 <进程ID> ``` ### 前端依赖安装慢 ```bash npm install --registry=https://registry.npmmirror.com ``` ### Maven依赖下载慢 配置国内镜像(阿里云)在 `settings.xml` ### 后端启动失败 - 数据库连接错误 **症状**: `Communications link failure` **解决**: 1. 确认MySQL已启动 2. 检查 `application.yml` 中的数据库地址、用户名、密码 3. 确认数据库 `pipeline` 已创建 ### 前端无法连接后端 **症状**: CORS 错误 / Network Error **解决**: 1. 确认后端已启动 2. 检查前端 `vite.config.js` 中的代理配置 3. 检查浏览器控制台错误信息 --- ## 📝 开发说明 ### 添加新的执行器 1. 在 `com.example.pipeline.executor.strategy` 下创建新的执行器类 2. 继承 `AbstractTaskExecutor` 或实现 `TaskExecutionStrategy` 3. 实现 `doExecute` 方法 4. 在 `supports` 方法中返回支持的编码 5. 使用 `@Component` 注解 ### 添加新的观察者 1. 实现 `TaskExecutionObserver` 接口 2. 实现对应事件处理方法 3. 使用 `@Component` 注解 --- ## 📚 参考资料 - Spring Boot 官方文档: https://spring.io/projects/spring-boot - Quartz 官方文档: https://www.quartz-scheduler.org/ - Vue 3 官方文档: https://cn.vuejs.org/ - Element Plus 文档: https://element-plus.org/ --- ## 🎊 项目亮点 1. **架构清晰** - 四层流水线架构,职责明确 2. **设计模式** - 三大设计模式(模板、策略+工厂、观察者) 3. **易扩展性** - 新增执行器只需实现接口 4. **可观测性** - 完整的日志和看板系统 5. **易于部署** - 单体架构,一键启动 6. **大厂规范** - Spring Boot + Vue3 + Element Plus --- **开发完成时间**: 2026-06-02 **版本**: v1.0.0 **状态**: ✅ 完成开发,可以部署