大数据综合实训项目:设备运行状态监控与风险预测可视化大屏
第二章:技术选型与系统架构设计
一、章节定位说明
- 所属课程:大数据综合实训
- 章节性质:项目认知深化章(技术理解 + 架构认知)
- 本章关键词:
“业务需求 → 技术选型 → 系统架构”
📌 教学说明
- 本章 仍然不写具体代码
- 重点解决三个问题:
- 这些技术各自是干什么的
- 为什么不能只用一种技术
- 企业系统为什么要“分层、分工”
二、教学目标
1. 知识目标
学生能够:
- 了解 Kafka、Flink、Hive、Spark、ClickHouse、Redis、Mysql、ML 在企业中的典型角色
- 理解实时计算与离线分析在技术选型上的差异
- 说清楚一套大数据系统中各组件的分工关系
2. 能力目标
学生能够:
- 根据业务需求,选择合适的技术组件
- 从整体角度理解一个大数据系统的运行流程
- 为后续实验中的“为什么要这样做”提供理论依据
3. 素养目标
- 建立“技术服务业务”的工程思维
- 理解企业系统设计中稳定性、扩展性、性能的重要性
三、教学重点与难点
教学重点
- 技术选型的角色分工
- 实时技术与离线技术的区别
- 系统整体架构的逻辑关系
教学难点
- 把 Kafka、Flink、Spark 混为一谈
- 误以为“技术越多越高级”
- 不理解为什么要多种存储并存
四、技术选型说明(核心教学内容)
1. 为什么要进行技术选型?
企业系统不是“能跑就行”,而是要:
- 跑得稳
- 跑得快
- 能扩展
- 好维护
所以企业会把不同任务交给最合适的技术。
2. 本项目技术选型与角色分工
| 技术 | 中文名称 | 在项目中的角色(通俗说法) |
|---|---|---|
| Kafka | 消息队列 / 消息中间件 | 数据的“传送带”,负责把数据送进系统 |
| Flink | 实时计算引擎 | 实时计算的“流水线工人” |
| Hive | 数据仓库 | 存历史明细数据的“仓库” |
| Spark | 离线计算引擎 | 做历史统计分析的“统计分析员” |
| MySQL | 关系型数据库 | 实时结果存储的“业务数据库” |
| ClickHouse | 分析型数据库 | 专门给大屏查历史报表的“高速查询库” |
| Redis | 内存缓存数据库 | 实时数据的“加速缓存” |
| ML(RandomForest) | 机器学习模型 | 用历史数据“预测未来风险” |
| Vue + ECharts | 前端可视化框架 | 把数据“画出来”的展示层 |
五、系统架构设计说明(重点)
1. 系统整体思路

1️⃣ 实时计算链路
设备数据模拟程序
↓
Kafka(实时数据采集)
↓
Flink(实时窗口计算)
↓
MySQL(rt 实时结果表)
↓
Spring Boot(REST API,8080)
↓
Vue3 + ECharts(大屏展示)
↓
Nginx(80端口部署上线)2️⃣ 离线分析与预测链路
Hive(明细层数据仓库)
↓
Spark(离线统计计算)
↓
ClickHouse(分析型数据库)
↓
RandomForest(风险预测模型)
↓
ClickHouse(预测结果表)
↓
Spring Boot API
↓
大屏展示(风险占比 + 高风险Top)核心流程可以总结为:
数据产生 → 数据传输 → 数据计算 → 数据存储 → 数据展示 → 风险预测
2. 各技术在架构中的位置与作用
(1)Kafka:实时数据采集入口
- 负责接收设备实时数据
- 解耦数据产生与数据处理
- 保证数据不会丢失
👉 类比:快递中转站
(2)Flink:实时计算引擎
- 对 Kafka 中的数据进行实时计算
- 统计实时指标(在线数、告警数、趋势等)
- 计算结果可写入 Redis / ClickHouse
👉 类比:边生产边统计
(3)Hive:离线数据仓库
- 存储完整、长期的历史数据
- 作为离线分析和机器学习的数据来源
- 不追求查询速度,追求数据完整性
👉 类比:历史档案室
(4)Spark:离线分析计算
- 对 Hive 中的数据进行批量分析
- 计算日、周、月统计结果
- 分析结果写入 ClickHouse
👉 类比:定期做总结报表
(5)ClickHouse:分析型数据库
- 专门用于大屏查询
- 查询快、适合统计分析
- 不做事务,只做分析
👉 类比:查询速度极快的分析仓库
(6)MySQL:实时结果存储层
- 存储 Flink 实时计算结果(rt 库)
- 存放在线数、告警数、实时趋势等指标
- 供 Spring Boot API 查询
👉 类比:实时数据展示数据库
(7)机器学习(ML):风险预测模块
- 基于历史数据进行建模
- 输出设备风险概率
- 预测结果供大屏展示
👉 强调:本项目用模型结果,不研究算法推导
六、系统架构运行流程
设备 → Kafka → Flink → MySQL → 大屏(实时)
设备 → Kafka → Hive → Spark → ClickHouse → 大屏(历史)
Hive → ML → ClickHouse → 大屏(预测)
流程:
- 设备运行数据持续上报,首先进入 Kafka 消息队列,作为系统的数据入口和缓冲层
- Flink 从 Kafka 实时读取数据,计算在线数量、告警数量、温度趋势等核心指标
- 实时计算结果写入 MySQL 数据库,供后端接口查询和大屏实时展示
- 原始明细数据同步进入 Hive 数据仓库,进行长期存储
- Spark 从 Hive 读取历史数据,进行日统计、趋势分析等离线计算
- 离线分析结果写入 ClickHouse 分析型数据库,用于快速报表查询
- ML 模型基于 Hive 历史数据进行训练与预测,生成设备风险等级结果,并写入 ClickHouse
- 前端大屏统一调用 MySQL(实时数据)和 ClickHouse(历史与预测数据),完成可视化展示
七、本章小结
通过本章学习,我们明确了:
- 企业系统不是“一个程序解决所有问题”
- 不同技术各司其职、相互配合
- 技术选型的核心标准是:是否适合业务场景
- 后续实验中,每一步操作都有明确的“位置和意义”
八、承接下一章
下一章我们将进入 数据层设计,
重点解决一个问题:“数据到底长什么样?表怎么设计?数据怎么存?”