DataJump 是一个企业级一站式大数据研发治理平台,提供数据集成、数据开发、任务调度、元数据管理、运维监控等全链路数据研发能力,帮助企业快速构建数据中台。
- 数据集成:支持 30+ 数据源,批流一体的数据同步能力
- 数据开发:专业 SQL IDE + 可视化 DAG 编排,提升开发效率
- 任务调度:自研分布式调度引擎,支持百万级任务调度
- 元数据管理:全链路数据血缘,自动化数据资产管理
- 运维监控:实时监控大盘,智能告警,保障数据链路稳定
| 角色 | 核心诉求 |
|---|---|
| 数据开发工程师 | 高效开发 SQL/ETL 任务,便捷的调试和发布流程 |
| 数据分析师 | 快速查询数据,理解数据含义和血缘关系 |
| 运维人员 | 监控任务状态,快速定位和处理异常 |
| 平台管理员 | 管理权限、资源,保障平台稳定运行 |
┌─────────────────────────────────────────────────────────────────┐
│ 前端应用层 │
│ React + TypeScript + Ant Design Pro + Monaco Editor │
├─────────────────────────────────────────────────────────────────┤
│ API 网关层 │
│ Kong / Spring Cloud Gateway │
├──────────┬──────────┬──────────┬──────────┬────────────────────┤
│ 数据集成 │ 数据开发 │ 调度引擎 │ 元数据 │ 运维监控 │
│ 服务 │ 服务 │ 服务 │ 服务 │ 服务 │
├──────────┴──────────┴──────────┴──────────┴────────────────────┤
│ 基础设施层 │
│ MySQL │ Redis │ Kafka │ Elasticsearch │ MinIO │
├─────────────────────────────────────────────────────────────────┤
│ 计算引擎层 │
│ Spark │ Flink │ Hive │ Presto │ Iceberg │
└─────────────────────────────────────────────────────────────────┘
- Master-Worker 分布式架构
- DAG 任务编排与依赖管理(拓扑排序、循环检测)
- 可插拔任务执行器:Shell、Python、SQL
- Cron 定时调度(Spring CronExpression,自动扫描触发)
- 任务状态机与重试机制
- 完整的执行日志记录与查询
- 高可用与弹性伸缩
- DataX + Docker 容器化执行引擎(已实现)
- 数据源 Schema 探测(表/列自动发现)
- 全量同步 + 增量同步(时间戳/自增ID 位点管理)
- 实时监控面板(进度、速度、字节数、错误信息)
- 执行历史记录与位点查询
- 支持数据源:MySQL、PostgreSQL、Hive
- Flink CDC 实时同步(规划中)
- SQL IDE:Monaco Editor、语法高亮、SQL 格式化、保存查询、自动恢复(已实现)
- DAG 编排:ReactFlow 画布、拖拽式节点、连线依赖配置(已实现)
- 版本管理:JSON 快照版本、Git 式 Diff(id-based 数组匹配)、非破坏性回滚(已实现)
- 发布上线:DEV→PROD 两层环境、单人审批、一键部署、线上版本追踪(已实现)
- 数据血缘自动采集与可视化
- 数据字典与业务术语管理
- 数据质量规则配置与监控
- 数据资产盘点与分类
- 实时任务监控大盘
- 多渠道告警通知(钉钉、飞书、邮件、短信)
- 日志聚合查询
- 资源使用监控
- SLA 管理与报表
- 语言:Java 17 / Go
- 框架:Spring Boot 3.x / Spring Cloud
- 调度:Quartz + 自研分布式调度
- 消息队列:Kafka
- 缓存:Redis
- 数据库:MySQL 8.0
- 搜索引擎:Elasticsearch 8.x
- 框架:React 18 + TypeScript
- UI 组件:Ant Design 5.x / Ant Design Pro
- 状态管理:Zustand
- SQL 编辑器:Monaco Editor
- DAG 可视化:ReactFlow
- 图表:ECharts 5.x
- 容器化:Docker + Kubernetes
- CI/CD:GitLab CI / GitHub Actions
- 监控:Prometheus + Grafana
- 日志:ELK Stack
DataJump/
├── datajump-server/ # 后端服务 (Java Maven)
│ ├── datajump-api/ # API 网关模块
│ ├── datajump-common/ # 公共模块
│ ├── datajump-scheduler/ # 调度引擎模块
│ │ ├── controller/ # REST API 控制器
│ │ ├── engine/ # DAG 执行引擎
│ │ ├── executor/ # 任务执行器(Shell/Python/SQL)
│ │ ├── mapper/ # 数据库映射层
│ │ ├── model/ # 实体和 DTO
│ │ ├── scheduler/ # Cron 调度服务
│ │ └── service/ # 业务逻辑层
│ ├── datajump-integration/ # 数据集成模块
│ ├── datajump-development/ # 数据开发模块(SQL执行/版本管理/发布流程)
│ ├── datajump-metadata/ # 元数据服务模块
│ └── datajump-monitor/ # 运维监控模块
├── datajump-web/ # 前端应用 (React + TypeScript)
│ └── src/
│ ├── pages/ # 页面组件
│ │ └── DataDevelop/ # DAG编辑器/SQL IDE/版本历史/Diff/发布管理
│ ├── services/ # API 服务层
│ └── components/ # 通用组件(布局等)
├── docker/ # Docker 配置
│ ├── docker-compose.yml # 开发环境编排
│ └── init-sql/ # 数据库初始化和迁移脚本
└── docs/ # 技术文档
- Java 17+
- Maven 3.8+
- Node.js 18+
- Docker & Docker Compose
# 启动 MySQL、Redis、Kafka、Elasticsearch、MinIO
cd docker
docker-compose up -d
# 查看服务状态
docker-compose ps服务端口说明:
| 服务 | 端口 | 说明 |
|---|---|---|
| MySQL | 3306 | 数据库 (用户: datajump, 密码: datajump123) |
| Redis | 6379 | 缓存 |
| Kafka | 9094 | 消息队列 (外部访问) |
| Elasticsearch | 9200 | 搜索引擎 |
| MinIO | 9000/9001 | 对象存储 (控制台: 9001) |
| Kafka UI | 8083 | Kafka 可视化管理 |
cd datajump-server
mvn clean install -DskipTests
mvn spring-boot:run -pl datajump-apicd datajump-web
npm install
npm run dev前端默认运行在 http://localhost:5173
# 编译所有模块
mvn clean compile
# 运行测试
mvn test
# 打包
mvn package -DskipTests# 开发模式
npm run dev
# 代码检查
npm run lint
# 生产构建
npm run buildApache License 2.0