公交公司运营信息数据仓库构建方案
需求分析
-
业务目标
数据类别 采集方式 内部业务数据 GPS定位(车辆轨迹、速度、到站时间)
票务系统(刷卡/扫码记录、票价)
调度日志(排班表、手动调度指令)
车辆状态(油耗、里程、故障码)
驾驶员信息(考勤、驾驶评分)
乘客反馈(App评价、投诉工单)车载终端、票务机、调度系统、OBD设备、移动端 外部扩展数据 路况信息(交通拥堵指数)
气象数据(降雨量、气温)
城市活动(大型赛事、节假日安排)
地理信息(站点坐标、区域人口密度)API接口、第三方平台采购、政府公开数据
数据仓库架构设计
-
分层架构
源数据层 → 操作数据存储(ODS)→ 公共维度模型层 → 轻度汇总层 → 主题数据集市层 → 应用层
-
技术选型
| 组件 | 功能说明 | 示例工具 |
|—————–|——————————————————————-|———————–|
| 数据存储 | 海量结构化/半结构化数据存储 | HDFS、Hive、ClickHouse |
| 实时处理 | 毫秒级延迟的流式计算(如车辆告警、实时客流监控) | Kafka + Flink/Spark Streaming |
| 批处理 | 离线数据清洗、聚合(如每日运营报表) | Airflow + Spark |
| 元数据管理 | 数据目录、血缘关系追踪 | Apache Atlas | -
核心数据模型
- 维度表:时间(年/月/日/时段)、线路、车辆、站点、驾驶员
- 事实表:
| 事实表名称 | 关键字段 | 用途 |
|———————-|———————————————|——————————|
| 乘车记录事实表 | 乘客ID、上车站点、下车站点、票价、刷卡时间 | 客流分析、票务收入统计 |
| 车辆状态事实表 | 车号、速度、油耗、GPS坐标、采集时间 | 运营效率监控、故障预警 |
| 能耗事实表 | 车号、行驶里程、燃油消耗、电耗、日期 | 成本分摊、节能优化 |
数据采集与存储策略
-
采集方式
相关问题与解答
Q1:公交数据仓库与传统业务系统相比,核心价值是什么?
A1:- 全局视角:打破GPS、票务、调度等系统的数据孤岛,关联分析多维度信息(如高客流线路与车辆故障率的关系)。
- 历史深度:支持跨年对比(如同比去年同月客流变化),发现长期趋势。
- 实时决策:通过流批一体架构,既提供分钟级运营看板,又能生成季度财报。
Q2:如何处理多源异构数据的一致性问题?
A2:- 时间基准对齐:统一采用UTC时间,补偿各设备时钟偏差(如车载终端与票务机时间差>5分钟则修正)。
- 字段标准化:定义全局数据字典(如“站点名称”统一采用民政部标准地名库编码)。
- 冲突解决机制:当GPS上报到站时间与票务刷卡时间差异>30秒时,以票务时间为准并标记异常
-