
1) 【一句话结论】
构建多源数据整合平台,通过ETL(批处理)与实时流处理结合,统一数据标准、处理数据不一致,实现数据实时更新,为航班延误分析提供高质量数据源。
2) 【原理/概念讲解】
数据整合的核心是“统一规则、实时补货”。具体步骤包括:
3) 【对比与适用场景】
| 方案类型 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 批处理(ETL) | 定期(如每日)从源系统抽取数据,清洗、转换后加载到目标系统 | 离线处理,延迟较长(小时/天),适合历史数据分析 | 历史报表、趋势分析 | 无法处理实时数据,无法及时响应 |
| 实时流处理(如Flink) | 通过消息队列接收实时数据,流处理引擎实时处理 | 低延迟(秒级),支持实时计算 | 实时监控、预警(如天气突变导致延误) | 系统性能要求高,数据量大时压力大 |
4) 【示例】
flight_id(航班号)、airport(机场代码)、status(航班状态,如“延误”)、delay_reason_code(延误原因编码,如1=天气,2=机械)、timestamp(数据采集时间)。airport_code(机场代码)、weather_condition(天气状况,如“晴”“雨”)、wind_speed(风速,m/s)、temperature(温度,℃)、update_frequency(每5分钟更新一次)。flight_id(航班号)、scheduled_departure_time(计划起飞时间)、actual_departure_time(实际起飞时间)。def merge_flight_data(atc_data, weather_data, airline_data):
# 字段映射处理不一致
delay_reason = atc_data.get('delay_reason_code', 0)
if delay_reason == 1:
reason = "天气延误"
elif delay_reason == 2:
reason = "机械延误"
else:
reason = "未知"
# 融合数据
merged = {
"flight_id": atc_data['flight_id'],
"airport": atc_data['airport'],
"delay_reason": reason,
"weather": weather_data.get('weather_condition', '未知'),
"delay_minutes": (atc_data.get('actual_departure_time', 0) - airline_data['scheduled_departure_time']).total_seconds() / 60,
"scheduled_time": airline_data['scheduled_departure_time'],
"actual_time": airline_data['actual_departure_time']
}
return merged
# Kafka生产者发送实时数据
producer.send("flight_delay_topic", value=json.dumps(merged_data).encode('utf-8'))
# Flink消费者处理流数据
stream = env.from_source(
KafkaSource(...),
...,
...,
).map(lambda x: json.loads(x.value))
.filter(lambda x: x['delay_minutes'] > 0) # 过滤延误航班
.process(new_event_time_window(10.seconds)) # 滑动窗口统计
.map(lambda x: ...) # 计算延误原因分布
5) 【面试口播版答案】
各位面试官好,针对航班延误原因的数据整合方案,核心是构建多源数据整合平台,通过ETL(批处理)与实时流处理结合,解决数据不一致和实时性需求。首先,数据采集阶段,从空管、天气、航空公司等源系统拉取数据,比如空管API获取航班状态和延误原因编码,天气API获取实时天气(每5分钟更新),航空公司系统获取计划与实际起飞时间。然后,数据清洗与转换,统一时间格式(ISO 8601),统一字段命名(如“延误分钟数”),处理缺失值(如航班ID缺失)和异常值(如异常延误时间-10分钟,标记为错误)。接着,数据融合,通过航班ID关联多源数据,整合成统一结构(包含航班ID、机场、延误原因、天气状况、延误分钟数)。对于实时性要求,采用消息队列(Kafka)接收实时数据,流处理引擎(Flink)实时处理,确保数据延迟在5秒内,满足实时监控。最后,通过数据治理机制,建立数据标准(字段定义、数据质量规则),定期检查一致性(如字段映射表校验),处理不一致(如空管“weather_delay”与航空公司“weather related delay”通过映射表统一为“天气延误”)。这样整合后,能为延误分析提供高质量、及时的数据源。
6) 【追问清单】
7) 【常见坑/雷区】