# 全国交通脉络数据可视化分析 ## 📋 项目简介 基于 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' ```