bigdata-highway-analytics/README.md
MMmmmntjt 193ef81993 add
2025-06-25 21:40:51 +08:00

201 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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