# dataplat
**Repository Path**: xmh3000/dataplat
## Basic Information
- **Project Name**: dataplat
- **Description**: 数据中台
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-29
- **Last Updated**: 2026-03-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# DataPlat - 企业级数据中台平台
**一站式数据管理、集成、治理与服务平台**
[](https://openjdk.java.net/)
[](https://spring.io/projects/spring-boot)
[](https://spring.io/projects/spring-cloud)
[](LICENSE)
---
## 📖 项目简介
DataPlat 是一套**生产级、可编译运行、完整可交付**的企业级数据中台平台,提供数据源管理、元数据采集、数据集成、数据质量管理、数据标准制定、资产目录、智能问数等全链路数据治理能力。
### 核心特性
✅ **生产级代码** - 完整可编译运行,非伪代码
✅ **微服务架构** - Spring Cloud Alibaba + Nacos
✅ **多引擎支持** - Flink / Spark 数据集成
✅ **智能问数** - NL2SQL 自然语言查询
✅ **数据血缘** - 自动化血缘解析
✅ **可视化监控** - Prometheus + Grafana
✅ **一键部署** - Docker Compose 快速启动
---
## 🏗️ 系统架构
```
┌─────────────────────────────────────────────────────────┐
│ 前端层 (Vue3) │
│ dataplat-ui :80 / Gateway :8080 │
└─────────────────────────────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ API 服务 │ │ 资产目录 │ │ 智能问数 │
│ :8007 │ │ :8006 │ │ :8014 │
└──────────────┘ └──────────────┘ └──────────────┘
│ │ │
└───────────────────┼───────────────────┘
│
┌───────────────────┼───────────────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 数据质量 │ │ 数据标准 │ │ 数据集成 │
│ :8009 │ │ :8005 │ │ :8003 │
└──────────────┘ └──────────────┘ └──────────────┘
│
▼
┌──────────────┐ ┌──────────────┐
│ 元数据服务 │ │ 数据源服务 │
│ :8001 │ │ :8002 │
└──────────────┘ └──────────────┘
│
┌───────────────────┼───────────────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ MySQL │ │ Redis │ │ Nacos │
│ :3306 │ │ :6379 │ │ :8848 │
└──────────────┘ └──────────────┘ └──────────────┘
```
---
## 🎯 功能模块
| 模块 | 端口 | 功能描述 |
|------|------|----------|
| **Gateway** | 8080 | API 网关,统一入口,鉴权限流 |
| **数据源服务** | 8002 | 数据源管理、连接池、类型适配(MySQL/Oracle/PG等) |
| **元数据服务** | 8001 | 元数据采集、存储、血缘解析、数据地图 |
| **数据集成服务** | 8003 | 数据同步、ETL 作业、Flink/Spark 引擎集成 |
| **数据质量服务** | 8009 | 质量规则、监控告警、数据探查 |
| **数据标准服务** | 8005 | 标准定义、落标检查、标准映射 |
| **API 服务** | 8007 | API 生成、发布、管理、调用统计 |
| **资产目录** | 8006 | 数据资产编目、检索、权限控制 |
| **智能问数** | 8014 | NL2SQL、自然语言查询、数据对话 |
---
## 🚀 快速开始
### 环境要求
- **JDK**: 11+
- **Maven**: 3.6+
- **Docker**: 20.10+
- **Docker Compose**: 2.0+
- **Node.js**: 18+ (前端开发)
### 方式一:Docker Compose 一键启动(推荐)
```bash
# 克隆项目
git clone /dataplat.git
cd dataplat
# 启动所有服务(MySQL, Redis, Nacos, 微服务,前端)
chmod +x start-dev.sh
./start-dev.sh
# 等待 30 秒后访问
# 前端:http://localhost
# Nacos: http://localhost:8848/nacos
# Grafana: http://localhost:3000
```
### 方式二:本地开发模式
#### 1. 启动基础设施
```bash
# 启动 MySQL, Redis, Nacos, Elasticsearch
docker-compose -f docker-compose-dev.yml up -d
```
#### 2. 编译安装
```bash
# 编译并安装到本地 Maven 仓库
mvn clean install -DskipTests
```
#### 3. 启动后端服务
```bash
# 逐个启动微服务(推荐顺序)
# 1. 数据源服务
cd dataplat-datasource
mvn spring-boot:run
# 2. 元数据服务
cd ../dataplat-metadata
mvn spring-boot:run
# 3. 其他服务...
```
或在 IDEA 中直接运行各模块的 Application 类。
#### 4. 启动前端
```bash
cd dataplat-ui
npm install --registry=https://registry.npmmirror.com
npm run dev
# 访问 http://localhost:5173
```
---
## 📁 项目结构
```
dataplat/
├── dataplat-common/ # 公共模块(工具类、异常处理、统一响应)
├── dataplat-gateway/ # API 网关服务
├── dataplat-datasource/ # 数据源管理服务
├── dataplat-metadata/ # 元数据管理服务
├── dataplat-integration/ # 数据集成服务
├── dataplat-quality/ # 数据质量服务
├── dataplat-standard/ # 数据标准服务
├── dataplat-api-service/ # API 管理服务
├── dataplat-asset/ # 资产目录服务
├── dataplat-chat/ # 智能问数服务
├── dataplat-ui/ # Vue3 前端项目
├── conf/ # 配置文件(Nacos, Prometheus, Grafana)
├── doc/ # 详细设计文档
├── sql/ # 数据库初始化脚本
├── docker-compose.yml # 生产环境编排
├── docker-compose-dev.yml # 开发环境编排
├── start-dev.sh # 快速启动脚本
└── pom.xml # 父工程配置
```
---
## 🔧 技术栈
### 后端
- **框架**: Spring Boot 2.7.18 + Spring Cloud 2021.0.9
- **微服务**: Spring Cloud Alibaba (Nacos, Sentinel)
- **ORM**: MyBatis-Plus 3.5.5
- **连接池**: Druid 1.2.20
- **工具库**: Hutool 5.8.26, Guava, Apache Commons
- **API 文档**: Knife4j 4.4.0
- **监控**: Micrometer + Prometheus
### 前端
- **框架**: Vue 3.4 + Vite 5.0
- **UI 库**: Element Plus 2.5
- **状态管理**: Pinia 2.1
- **路由**: Vue Router 4.2
- **HTTP**: Axios 1.6
- **图表**: ECharts 5.5
### 基础设施
- **数据库**: MySQL 8.0.33
- **缓存**: Redis 7.2
- **注册中心**: Nacos 2.2.3
- **搜索引擎**: Elasticsearch 8.10.2 (可选)
- **监控**: Prometheus 2.48 + Grafana 10.2
---
## 📊 服务注册与发现
所有微服务注册到 Nacos 中心:
- **Nacos 控制台**: http://localhost:8848/nacos
- **默认账号**: nacos / nacos
查看服务列表:
```bash
curl http://localhost:8848/nacos/v1/ns/service/list?pageNo=1&pageSize=20
```
---
## 🗄️ 数据库初始化
系统会自动执行 SQL 脚本创建数据库和表:
```bash
# 手动初始化(可选)
docker exec -it dataplat-mysql mysql -uroot -pDataPlat@2024 < sql/schema.sql
```
包含的数据库:
- `dataplat` - 主数据库
- `nacos` - Nacos 配置数据库
- `dataease` - DataEase BI 数据库(可选)
---
## 🔍 API 文档
每个服务都集成了 Knife4j API 文档:
- **数据源服务**: http://localhost:8002/doc.html
- **元数据服务**: http://localhost:8001/doc.html
- **数据集成服务**: http://localhost:8003/doc.html
- **其他服务**: 类似格式
示例请求:
```bash
# 获取数据源列表
curl http://localhost:8002/api/datasources
# 创建数据源
curl -X POST http://localhost:8002/api/datasources \
-H "Content-Type: application/json" \
-d '{
"name": "test-db",
"type": "MYSQL",
"url": "jdbc:mysql://localhost:3306/test",
"username": "root",
"password": "password"
}'
```
---
## 📈 监控与运维
### Prometheus 监控
- **访问地址**: http://localhost:9090
- **配置文件**: `conf/prometheus/prometheus.yml`
- **指标采集**: 所有服务的 `/actuator/prometheus` 端点
### Grafana 仪表盘
- **访问地址**: http://localhost:3000
- **默认账号**: admin / admin
- **预置数据源**: Prometheus 已自动配置
### 日志查看
```bash
# 查看所有服务日志
docker-compose logs -f
# 查看特定服务
docker logs dataplat-datasource -f
# 本地日志文件
tail -f logs/dataplat-datasource.log
```
---
## 🛠️ 常用命令
### 服务管理
```bash
# 启动所有服务
./start-dev.sh
# 停止所有服务
./stop-dev.sh
# 重启所有服务
docker-compose restart
# 查看服务状态
docker-compose ps
# 清空数据重启
docker-compose down -v && ./start-dev.sh
```
### 模块单独控制
```bash
# 启动指定模块(1-数据源,2-元数据,3-集成...)
./start-module.sh 1,2,3
# 停止指定模块
./stop-module.sh 1
# 重启固定端口模块
./start-module-fixed.sh 8002
```
### 健康检查
```bash
# 检查所有服务健康状态
for port in 8001 8002 8003 8005 8006 8007 8009 8014; do
echo -n "Service $port: "
curl -s -o /dev/null -w "%{http_code}" http://localhost:$port/actuator/health
echo
done
```
---
## 📚 详细文档
更多技术细节请查阅 `doc/` 目录:
| 文档 | 说明 |
|------|------|
| [101.md](doc/101.md) | 项目概述与架构设计 |
| [102.md](doc/102.md) | 数据源模块详解 |
| [103.md](doc/103.md) | 元数据与血缘解析 |
| [104.md](doc/104.md) | 数据集成与 ETL |
| [105.md](doc/105.md) | 数据质量与标准 |
| [106.md](doc/106.md) | 智能问数系统 |
| [107.md](doc/107.md) | 生产环境部署 |
| [README-DEV.md](README-DEV.md) | 开发环境配置指南 |
---
## 🔐 安全建议
### 修改默认密码
生产环境务必修改以下默认密码:
```bash
# .env 文件配置
MYSQL_ROOT_PASSWORD=你的强密码
REDIS_PASSWORD=你的强密码
NACOS_AUTH_TOKEN=随机生成的长密钥
GRAFANA_PASSWORD=你的强密码
```
### 网络隔离
- 生产环境不要暴露所有端口到公网
- 使用内部网络 + 负载均衡器
- 启用 Nacos 认证和鉴权
---
## 🤝 贡献指南
欢迎提交 Issue 和 Pull Request!
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
---
## 📄 开源协议
本项目采用 Apache 2.0 协议开源 - 详见 [LICENSE](LICENSE)
---
## 📞 技术支持
- **问题反馈**: GitHub Issues
- **邮件联系**: support@dataplat.com
- **文档中心**: https://docs.dataplat.com
---
## 🎉 致谢
感谢以下开源项目:
- [Spring Boot](https://spring.io/projects/spring-boot)
- [Spring Cloud Alibaba](https://github.com/alibaba/spring-cloud-alibaba)
- [MyBatis-Plus](https://baomidou.com/)
- [Vue.js](https://vuejs.org/)
- [Element Plus](https://element-plus.org/)
- [DataEase](https://dataease.io/)
---
**如果这个项目对你有帮助,请给一个 ⭐️ Star 支持!**
Made with ❤️ by DataPlat Team