# 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 - 企业级数据中台平台
**一站式数据管理、集成、治理与服务平台** [![Java](https://img.shields.io/badge/Java-11-blue.svg)](https://openjdk.java.net/) [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-2.7.18-brightgreen.svg)](https://spring.io/projects/spring-boot) [![Spring Cloud](https://img.shields.io/badge/Spring%20Cloud-2021.0.9-blue.svg)](https://spring.io/projects/spring-cloud) [![License](https://img.shields.io/badge/License-Apache%202.0-green.svg)](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