Skip to content

DataJump 是一个企业级一站式大数据研发治理平台,提供数据集成、数据开发、任务调度、元数据管理、运维监控等全链路数据研发能力,帮助企业快速构建数据中台。

Notifications You must be signed in to change notification settings

tarobjtu/DataJump

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DataJump - 一站式大数据研发治理平台

项目简介

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             │
└─────────────────────────────────────────────────────────────────┘

核心模块

1. 调度引擎(核心自研)

  • Master-Worker 分布式架构
  • DAG 任务编排与依赖管理(拓扑排序、循环检测)
  • 可插拔任务执行器:Shell、Python、SQL
  • Cron 定时调度(Spring CronExpression,自动扫描触发)
  • 任务状态机与重试机制
  • 完整的执行日志记录与查询
  • 高可用与弹性伸缩

2. 数据集成

  • DataX + Docker 容器化执行引擎(已实现)
  • 数据源 Schema 探测(表/列自动发现)
  • 全量同步 + 增量同步(时间戳/自增ID 位点管理)
  • 实时监控面板(进度、速度、字节数、错误信息)
  • 执行历史记录与位点查询
  • 支持数据源:MySQL、PostgreSQL、Hive
  • Flink CDC 实时同步(规划中)

3. 数据开发

  • SQL IDE:Monaco Editor、语法高亮、SQL 格式化、保存查询、自动恢复(已实现)
  • DAG 编排:ReactFlow 画布、拖拽式节点、连线依赖配置(已实现)
  • 版本管理:JSON 快照版本、Git 式 Diff(id-based 数组匹配)、非破坏性回滚(已实现)
  • 发布上线:DEV→PROD 两层环境、单人审批、一键部署、线上版本追踪(已实现)

4. 元数据服务

  • 数据血缘自动采集与可视化
  • 数据字典与业务术语管理
  • 数据质量规则配置与监控
  • 数据资产盘点与分类

5. 运维监控中心

  • 实时任务监控大盘
  • 多渠道告警通知(钉钉、飞书、邮件、短信)
  • 日志聚合查询
  • 资源使用监控
  • 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

1. 启动基础设施

# 启动 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 可视化管理

2. 启动后端服务

cd datajump-server
mvn clean install -DskipTests
mvn spring-boot:run -pl datajump-api

3. 启动前端

cd 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 build

License

Apache License 2.0

About

DataJump 是一个企业级一站式大数据研发治理平台,提供数据集成、数据开发、任务调度、元数据管理、运维监控等全链路数据研发能力,帮助企业快速构建数据中台。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages