diff --git a/README.md b/README.md index e8f0182..0da65ce 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,200 @@ -# bigdata-highway-analytics +# 全国交通脉络数据可视化分析 -高速公路智能交通分析 \ No newline at end of file +## 📋 项目简介 + +基于 Flask + MySQL 的高速公路智能交通分析系统,集成可视化展。系统通过Mock技术获取交通数据,运用大数据技术进行数据分析,并提供直观的数据可视化界面。 + +## ✨ 主要功能 + +### 📊 大数据架构 +- **Hadoop**:使用Hadoop进行存储原始数据 +- **Sqoop**:使用Sqoop将Mysql数据导入到Hive中 +- **Hive**:使用Hive SQL进行数据分析 +- **Flask**:将分析后的数据进行接口调用和编写Echarts可视化展示 + +### 🗺️ 大数据流程 +- Python Mock数据 +- MySQL存储原始数据 +- Sqoop数据转换 +- Hdfs数据存储 +- Hive映射Hdfs数据并进行数据分析 +- Spark读取Hive将数据保存到MySQL中 +- Flask+html+css+js+echarts将数据进行可视化展示 + +### 📈 数据大屏 +- 拥堵延时排名TOP +- 高速驾驶行为风险指数 +- 道路情况分析 +- 拥堵延时排名 +- 交通指数分析 +- 拥堵城市参数排名 +- 交通健康城市排名 + +## 🏗️ 技术架构 + +### 后端技术栈 +- **Flask**: Web框架 +- **Flask-RESTful**: RESTful API开发 +- **Flask-SQLAlchemy**: ORM数据库操作 +- **PyMySQL**: MySQL数据库连接 +- **Requests**: HTTP请求库 +- **Pandas**: 数据处理 + +### 前端技术栈 +- **Bootstrap**: UI框架 +- **Chart.js**: 图表库 +- **ApexCharts**: 高级图表库 +- **jQuery**: JavaScript库 +- **DataTables**: 数据表格 + +### 数据库 +- **MySQL**: 主数据库 +- **SQLAlchemy**: ORM映射 + +## 📁 项目结构 + +``` +bigdata-highway-analytics/ +├── app.py # 应用主入口 +├── config.py # 配置文件 +├── README.md # 项目说明文档 +├── db/ +│ └── bs_jaotong.sql # 数据库初始化脚本 +└── App/ # 核心应用模块 + ├── __init__.py # 应用初始化 + ├── apis.py # RESTful API接口 + ├── views.py # Web页面路由 + ├── models.py # 数据模型 + ├── exts.py # 扩展初始化 + ├── urls.py # URL路由配置 + ├── templates/ # HTML模板 + │ └── index.html + └── static/ # 静态资源 + ├── assets/ # 第三方资源 + ├── css/ # 样式文件 + ├── js/ # JavaScript文件 + └── images/ # 图片资源 +``` + +## 🚀 安装与部署 + +### 环境要求 +- Python 3.7+ +- MySQL 5.7+ +- Windows/Linux/macOS + +### 1. 克隆项目 +```bash +git clone +cd bigdata-highway-analytics +``` + +### 2. 创建虚拟环境(推荐) +```bash +# Windows +python -m venv venv +venv\Scripts\activate + +# Linux/macOS +python3 -m venv venv +source venv/bin/activate +``` + +### 3. 安装依赖包 +```bash +pip install flask==2.3.3 +pip install flask-restful==0.3.10 +pip install flask-sqlalchemy==3.0.5 +pip install pymysql==1.1.0 +pip install requests==2.31.0 +pip install tqdm==4.66.1 +pip install pandas==2.1.1 +pip install statsmodels==0.14.0 +pip install numpy==1.24.3 +pip install scipy==1.11.1 +``` + +### 4. 数据库配置 +1. 创建MySQL数据库: +```sql +CREATE DATABASE bs_jaotong CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +``` + +2. 导入数据库结构: +```bash +mysql -u root -p bs_jaotong < db/bs_jaotong.sql +``` + +3. 修改数据库连接配置(`config.py`): +```python +class BaseConfig: + HOST = 'localhost' # 数据库主机 + PORT = '3306' # 数据库端口 + USERNAME = 'root' # 数据库用户名 + PASSWORD = 'your_password' # 数据库密码 + DATABASE = 'bs_jaotong' # 数据库名称 +``` + +### 5. 启动应用 +```bash +python app.py +``` + +访问地址:http://127.0.0.1:5000/ + +## 📊 数据库设计 + +### 主要数据表 + +#### 用户表 (sys_user) +- `id`: 用户ID(主键) +- `username`: 用户名 +- `password`: 密码 +- `create_time`: 创建时间 + +#### 城市代码表 (city_code) +- `code`: 城市代码(主键) +- `name`: 城市名称 +- `pinyin`: 城市拼音 + +#### 拥堵数据表 (jam) +- `id`: 记录ID(主键) +- `freeFlowSpeed`: 畅通速度 +- `realSpeed`: 实际速度 +- `idxRatio`: 周环比数 +- `idxRatioState`: 周环比状态 +- `idx`: 拥堵延时指数 +- `label`: 城市标签 +- `name`: 城市编号 +- `create_time`: 创建时间 + +#### 预测数据表 (prediction) +- `id`: 记录ID(主键) +- `idx`: 拥堵指数 +- `create_time`: 预测日期 + +## 🔧 配置说明 + +### 环境变量配置 +建议创建 `.env` 文件进行环境配置: +``` +DB_HOST=localhost +DB_PORT=3306 +DB_USER=root +DB_PASSWORD=your_password +DB_NAME=bs_jaotong +FLASK_ENV=development +``` + +### 数据库连接配置 +在 `config.py` 中修改数据库连接参数: +```python +class BaseConfig: + DIALECT = 'mysql' + DRIVER = 'pymysql' + HOST = 'localhost' + PORT = '3306' + USERNAME = 'root' + PASSWORD = 'your_password' + DATABASE = 'bs_jaotong' +```