# P011_Dataworks_py **Repository Path**: MakoXiao/P011_Dataworks_py ## Basic Information - **Project Name**: P011_Dataworks_py - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-01 - **Last Updated**: 2025-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DataWorks 数据中台 基于 Apache Doris 的现代化数据中台解决方案,提供数据同步、ETL处理、工作流调度和数据可视化功能。 ## 🏗️ 系统架构 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 前端 UI │ │ 后端 API │ │ 数据存储 │ │ Vue.js 3 │◄──►│ FastAPI │◄──►│ PostgreSQL │ │ Element Plus │ │ Python │ │ Redis │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ ┌─────────────────┐ │ 数据仓库 │ │ Apache Doris │ └─────────────────┘ │ ┌─────────────────┐ │ 工作流引擎 │ │ Apache Airflow│ └─────────────────┘ ``` ## 🚀 功能特性 ### 前端界面 (Vue.js 3 + Element Plus) - **📊 仪表盘**:系统监控和关键指标展示 - **🔄 数据同步**:可视化数据同步任务管理 - **🛠️ 工作流调度**:类似DolphinScheduler的可视化工作流设计器 - **🗺️ 数据地图**:表关系图和数据血缘可视化 - **⚙️ ETL开发**:拖拽式数据转换流程设计 ### 后端服务 (FastAPI + Python) - **🔌 数据源管理**:支持多种数据源连接 - **🔄 数据同步引擎**:高性能数据传输 - **📊 统计分析**:数据质量监控和分析 - **🔐 权限管理**:用户认证和权限控制 - **📋 任务调度**:定时任务和工作流执行 ### 数据仓库 (Apache Doris) - **🏢 数据存储**:高性能分析型数据库 - **📈 实时查询**:毫秒级查询响应 - **📊 聚合计算**:高效的OLAP分析 - **🔗 数据导入**:支持批量和流式导入 ## 🐳 Docker 部署 ### 前置要求 - Docker >= 20.10.0 - Docker Compose >= 2.0.0 - 至少 8GB 内存 ### 快速启动 1. **克隆项目** ```bash git clone cd P011_Dataworks ``` 2. **使用便捷脚本启动** ```bash # 构建所有镜像并启动服务 ./build-and-run.sh build-all ./build-and-run.sh start # 或者一步完成 ./build-and-run.sh build-all && ./build-and-run.sh start ``` 3. **手动启动(可选)** ```bash # 构建镜像 docker-compose build # 启动所有服务 docker-compose up -d # 查看服务状态 docker-compose ps ``` ### 访问地址 启动成功后,可以通过以下地址访问各个服务: - **前端界面**: http://localhost:3000 - **后端 API**: http://localhost:8000 - **API 文档**: http://localhost:8000/docs - **Airflow**: http://localhost:8080 - **Doris FE**: http://localhost:8030 - **PostgreSQL**: localhost:5432 - **Redis**: localhost:6379 ### 服务管理 ```bash # 查看所有可用命令 ./build-and-run.sh help # 查看服务状态 ./build-and-run.sh status # 查看服务日志 ./build-and-run.sh logs # 所有服务 ./build-and-run.sh logs dataworks-frontend # 指定服务 # 健康检查 ./build-and-run.sh health # 重启服务 ./build-and-run.sh restart # 停止服务 ./build-and-run.sh stop # 清理所有资源 ./build-and-run.sh cleanup ``` ## 🛠️ 开发环境 ### 后端开发 ```bash cd backend python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt uvicorn main:app --reload --host 0.0.0.0 --port 8000 ``` ### 前端开发 ```bash cd frontend npm install npm run dev ``` ### Airflow 开发 ```bash cd airflow pip install -r requirements.txt airflow db init airflow webserver -p 8080 & airflow scheduler & ``` ## 📁 项目结构 ``` P011_Dataworks/ ├── frontend/ # Vue.js 前端项目 │ ├── src/ │ │ ├── views/ # 页面组件 │ │ ├── components/ # 公共组件 │ │ ├── router/ # 路由配置 │ │ └── utils/ # 工具函数 │ ├── Dockerfile # 前端 Docker 配置 │ ├── nginx.conf # Nginx 配置 │ └── package.json # 前端依赖 ├── backend/ # FastAPI 后端项目 │ ├── app/ │ │ ├── api/ # API 路由 │ │ ├── core/ # 核心配置 │ │ ├── models/ # 数据模型 │ │ └── services/ # 业务逻辑 │ ├── Dockerfile # 后端 Docker 配置 │ └── requirements.txt # 后端依赖 ├── airflow/ # Airflow 工作流 │ ├── dags/ # DAG 定义 │ ├── plugins/ # 插件 │ └── config/ # 配置文件 ├── docker-compose.yml # Docker Compose 配置 ├── build-and-run.sh # 便捷部署脚本 └── README.md # 项目文档 ``` ## 🔧 配置说明 ### 环境变量 可以通过 `.env` 文件或环境变量配置以下参数: ```bash # 数据库配置 DATABASE_URL=postgresql://postgres:123456@localhost:5432/dataworks_db REDIS_URL=redis://localhost:6379/0 # Doris 配置 DORIS_HOST=localhost DORIS_PORT=9030 DORIS_USER=root DORIS_PASSWORD= # 安全配置 SECRET_KEY=your-secret-key-here ACCESS_TOKEN_EXPIRE_MINUTES=30 # 前端配置 VITE_API_BASE_URL=http://localhost:8000/api ``` ### Nginx 配置 前端使用 Nginx 提供静态文件服务,主要特性: - **SPA 路由支持**:所有路径返回 index.html - **API 代理**:自动代理 `/api/` 请求到后端 - **静态资源缓存**:优化前端资源加载 - **Gzip 压缩**:减少传输大小 - **安全头**:添加安全相关的 HTTP 头 ## 🔍 监控和日志 ### 健康检查 所有服务都配置了健康检查: - **前端**:http://localhost:3000/health - **后端**:http://localhost:8000/api/health - **数据库**:PostgreSQL 连接检查 - **缓存**:Redis 连接检查 ### 日志管理 ```bash # 查看实时日志 docker-compose logs -f # 查看特定服务日志 docker-compose logs -f dataworks-frontend docker-compose logs -f dataworks-backend # 日志文件位置 ./logs/ # 应用日志 ./data/ # 数据文件 ``` ## 🚨 故障排除 ### 常见问题 1. **端口占用** ```bash # 检查端口占用 lsof -i :3000 lsof -i :8000 # 修改端口(docker-compose.yml) ports: - "3001:80" # 前端 - "8001:8000" # 后端 ``` 2. **内存不足** ```bash # 检查 Docker 内存使用 docker stats # 增加 Docker 内存限制 # macOS: Docker Desktop -> Settings -> Resources # Linux: 修改 /etc/docker/daemon.json ``` 3. **数据库连接失败** ```bash # 检查数据库状态 docker-compose exec dataworks-postgres pg_isready # 重置数据库 docker-compose down -v docker-compose up -d dataworks-postgres ``` ### 性能优化 1. **前端优化** - 启用 Gzip 压缩 - 静态资源缓存 - 代码分割和懒加载 2. **后端优化** - 数据库连接池 - Redis 缓存 - 异步处理 3. **数据库优化** - 索引优化 - 查询优化 - 连接池配置 ## 📄 许可证 MIT License ## 🤝 贡献指南 1. Fork 项目 2. 创建功能分支 3. 提交更改 4. 推送到分支 5. 创建 Pull Request ## 📞 支持 如有问题或建议,请提交 Issue 或联系开发团队。