4.8 KiB
4.8 KiB
全国交通脉络数据可视化分析
📋 项目简介
基于 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. 克隆项目
git clone <your-repo-url>
cd bigdata-highway-analytics
2. 创建虚拟环境(推荐)
# Windows
python -m venv venv
venv\Scripts\activate
# Linux/macOS
python3 -m venv venv
source venv/bin/activate
3. 安装依赖包
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. 数据库配置
- 创建MySQL数据库:
CREATE DATABASE bs_jaotong CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 导入数据库结构:
mysql -u root -p bs_jaotong < db/bs_jaotong.sql
- 修改数据库连接配置(
config.py
):
class BaseConfig:
HOST = 'localhost' # 数据库主机
PORT = '3306' # 数据库端口
USERNAME = 'root' # 数据库用户名
PASSWORD = 'your_password' # 数据库密码
DATABASE = 'bs_jaotong' # 数据库名称
5. 启动应用
python app.py
📊 数据库设计
主要数据表
用户表 (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
中修改数据库连接参数:
class BaseConfig:
DIALECT = 'mysql'
DRIVER = 'pymysql'
HOST = 'localhost'
PORT = '3306'
USERNAME = 'root'
PASSWORD = 'your_password'
DATABASE = 'bs_jaotong'