# datax-webui **Repository Path**: yinchuanqi/datax-webui ## Basic Information - **Project Name**: datax-webui - **Description**: 极简轻量版 DataX 可视化调度管理平台,前后端设计精简无冗余,轻量化易集成,可快速嵌入各类业务平台。 开箱即用无需复杂配置,项目启动后自动初始化数据库及数据表,无需手动建库建表。 简洁可视化操作界面,便捷管理 DataX 同步任务,部署简单、占用资源低,适配各类中小型数据同步场景快速落地。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-05-21 - **Last Updated**: 2026-05-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DataX Web 管理系统 基于 Spring Boot 的 DataX 数据同步任务管理系统,提供可视化的任务配置、调度和监控能力。 ## 项目简介 DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。 本项目是 DataX 的 Web 管理端,提供以下功能: - 数据源管理 ![输入图片说明](screen/datasource-1.png) ![输入图片说明](screen/datasource-2.png) - 同步任务配置 ![输入图片说明](screen/task-1.png) - 任务执行与监控 ![输入图片说明](screen/job-1.png) - 任务日志查看 ![输入图片说明](screen/job-2.png) - 系统配置 ![输入图片说明](screen/config-1.png) ## 技术栈 ### 后端技术 | 分类 | 技术 | 版本 | |------|------|------| | 语言 | Java | 21 | | 框架 | Spring Boot | 3.2.0 | | ORM | MyBatis Plus | 3.5.5 | | 数据库 | MySQL | 8.0+ | | 数据同步 | DataX | 202310 | ### 前端技术 | 分类 | 技术 | 版本 | |------|------|------| | 语言 | TypeScript | 5.0+ | | 框架 | Vue | 3.4+ | | UI 组件库 | Element Plus | 2.6+ | | 构建工具 | Vite | 6.5+ | | 图标库 | Lucide Vue | 0.26+ | ## 快速开始 ### 环境要求 - JDK 21+ - Maven 3.8+ - MySQL 8.0+ - Node.js 18+(前端运行必备) ### 数据库配置 1. 创建数据库: ```sql CREATE DATABASE datax_web CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. 创建用户(可选): ```sql CREATE USER 'datax_web'@'%' IDENTIFIED BY 'datax_web'; GRANT ALL PRIVILEGES ON datax_web.* TO 'datax_web'@'%'; FLUSH PRIVILEGES; ``` ### 后端运行项目 ```bash # 进入项目目录 cd datax # 编译项目 mvn clean package -DskipTests # 运行服务 java -jar server/target/server-1.0.0.jar ``` 或者使用 Maven 直接运行: ```bash cd server mvn spring-boot:run ``` ### 前端编译运行 前端项目存放于 front 目录,需确保本地安装 Node.js 环境,执行以下命令启动前端项目: ```bash # 进入前端项目目录 cd front # 安装前端依赖 npm install # 本地开发环境运行 npm run dev ``` ### 访问地址 后端服务启动成功后,接口地址:http://localhost:8080 前端启动成功后,默认访问地址:http://localhost:5173(Vite 默认端口) ## Docker 部署 ### 构建镜像 在项目根目录下执行: ```bash docker build -t datax-web . ``` ### 运行容器 ```bash docker run -d -p 8080:8080 \ -e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.1.2:3306/datax_web?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai" \ -e SPRING_DATASOURCE_USERNAME="datax_web" \ -e SPRING_DATASOURCE_PASSWORD="datax_web" \ datax-web ``` ### 使用共享镜像运行 ```bash docker run -d -p 8080:8080 \ -e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.1.2:3306/datax_web?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai" \ -e SPRING_DATASOURCE_USERNAME="datax_web" \ -e SPRING_DATASOURCE_PASSWORD="datax_web" \ crpi-kaxp1404w6ut4eaz.cn-hangzhou.personal.cr.aliyuncs.com/yinchuanqi/develop:datax-web-latest ``` 镜像中的DataX安装目录:/opt/datax;日志存储目录:/opt/datax/log ## 项目结构 ``` datax/ ├── datax/ # DataX 核心引擎 │ ├── bin/ # 执行脚本 │ ├── conf/ # 配置文件 │ ├── lib/ # 依赖库 │ ├── plugin/ # 读写插件 │ └── job/ # 任务配置示例 ├── server/ # Spring Boot 后端服务 │ ├── src/main/java/com/example/server/ │ │ ├── controller/ # REST API 控制层 │ │ ├── service/ # 业务逻辑层 │ │ ├── mapper/ # 数据访问层 │ │ ├── entity/ # 数据库实体 │ │ ├── config/ # 配置类 │ │ └── Application.java # 启动类 │ └── src/main/resources/ │ └── application.yml # 应用配置 └── front/ # Vue3 前端项目 ├── src/ # 前端源码 ├── public/ # 静态资源 ├── package.json # 依赖配置 └── vite.config.ts # Vite 配置文件 ``` ## API 接口 ### 数据源管理 | 方法 | 路径 | 描述 | |------|------|------| | GET | /api/datasource | 查询所有数据源 | | POST | /api/datasource | 新增数据源 | | PUT | /api/datasource/{id} | 更新数据源 | | DELETE | /api/datasource/{id} | 删除数据源 | ### 任务管理 | 方法 | 路径 | 描述 | |------|------|------| | GET | /api/job | 查询所有任务 | | POST | /api/job | 创建任务 | | PUT | /api/job/{id} | 更新任务 | | DELETE | /api/job/{id} | 删除任务 | | POST | /api/job/{id}/run | 执行任务 | | POST | /api/job/{id}/stop | 停止任务 | ### 任务执行记录 | 方法 | 路径 | 描述 | |------|------|------| | GET | /api/job/exec | 查询执行记录 | | GET | /api/job/exec/{id} | 查询执行详情 | | GET | /api/job/exec/{id}/log | 查询执行日志 | ## 使用说明 ### 1. 添加数据源 ```bash curl -X POST http://localhost:8080/api/datasource \ -H "Content-Type: application/json" \ -d '{ "name": "MySQL数据源", "type": "mysql", "host": "127.0.0.1", "port": 3306, "database": "test_db", "username": "root", "password": "password" }' ``` ### 2. 创建同步任务 ```bash curl -X POST http://localhost:8080/api/job \ -H "Content-Type: application/json" \ -d '{ "name": "数据同步任务", "groupId": 1, "readerDatasourceId": 1, "writerDatasourceId": 2, "readerSql": "SELECT * FROM source_table", "writerTable": "target_table", "scheduleType": "CRON", "scheduleConf": "0 0 2 * * ?" }' ``` ### 3. 执行任务 ```bash curl -X POST http://localhost:8080/api/job/1/run ``` ## 配置说明 主要配置项(application.yml): ```yaml server: port: 8080 # 服务端口 spring: datasource: url: jdbc:mysql://172.30.30.89:3306/datax_web # 数据库连接 username: datax_web # 数据库用户名 password: datax_web # 数据库密码 ``` ## 许可证 本项目基于 Apache License 2.0 许可,详见 LICENSE 文件。 ## 贡献 欢迎提交 Issue 和 Pull Request! ## 联系方式 如有问题或建议,请通过以下方式联系: - 提交 Issue - 发送邮件至 419578002@qq.com