Docs 菜单
Docs 主页
/

通过实时分析改进航班运营

了解如何通过强大的实时分析实现航班运营转型。通过智能数据监控降低成本,最大限度地减少延迟并提高效率。

使用案例: 分析IoT现代化单一视图

行业: 制造与移动

产品和工具: MongoDB Atlas、聚合管道、时间序列集合、 MongoDB Change Streams

合作伙伴: Google Cloud、Next.js 、FastAPI、TensorFlow、Scikit-learn

实时航班管理解决方案使航空公司能够主动管理和缓解代价高昂的航班延误。仅在 2019,欧洲航空公司的航班延误平均每个航班每小时费用了4,320 欧元。

该解决方案利用智能数据处理和即时响应来提供实时监控、预测性见解和优化的资源分配。它使用事件驱动的架构:

  • 用于模拟的 FastAPI

  • 用于消息传递的GCP PubSub

  • 用于高级分析的 Vertex AI

  • 用于无服务器事件驱动处理的Google Cloud Functions。

该解决方案以 MongoDB 灵活的文档模型和时间序列集合为基础,提供了一种全面的方法来最大限度地减少操作中断。

事件驱动架构的组成部分

图1. 事件驱动架构的组成部分

该解决方案提供:

  • 减少延迟传播:实时监控和即时响应功能有助于防止延迟在航班计划中级联传播。

  • 优化资源分配:智能数据分析使得在突发状况下能够高效地重新分配资源。

  • 提升客户体验:更好的中断管理可提高乘客满意度和忠诚度。

  • 可扩展的操作:灵活的架构支持不断增长的数据量和操作需求。

  • 实时决策:及时访问航班数据有助于快速且有依据地做出运营决策。

实时航班管理解决方案实施了事件驱动的延迟管理架构,可提供实时监控、预测性见解和资源优化。该架构由几个关键组件组成:

1.数据生成与处理

  • FastAPI 微服务包含实时数据模拟器和路径查找器。

  • 处理静态和实时数据流的 PubSub 主题。

  • 用于处理应用程序和遥测数据的 Cloud Functions。

2.分析与成本管理

  • 用于财务影响分析的 Vertex AI 成本计算器。

  • 用于数据转换的分析数据生成器 Cloud Function。

  • 用于复杂数据处理的聚合管道。

3.数据库结构

  • MongoDB 数据库作为中心数据存储。

  • 专用集合:

    • flight_costs 追踪和分析与航班相关的集合。

    • flight_plane 用于预测建模和场景规划的模拟集合。

    • flight_realtimeCF 专为实时数据跟踪和历史分析而设计的集合(时间序列集合)。

    • flights 集合,用于全面的常规飞行信息管理。

4.集成组件

  • 使用 Change Streams 实现实时数据变更跟踪。

  • Google Maps API 用于可视化地理数据。

  • Next.js 用于前端界面和可视化。

如图 2 所示,该架构支持以下数据流:

  • 操作数据流(蓝色线条):处理实时航班运营数据。

  • 分析数据流(绿色线条):管理商业智能。

  • 内部连接(黑线):维护系统集成。

事件驱动架构

图 2. 事件驱动型架构

有关实施此解决方案的详细分步指南,包括代码示例和具体配置说明,请访问此 GitHub存储库。该解决方案提供了一个可扩展的事件驱动型架构,用于管理航班运营并最大限度地减少延误和中断。

要实现该解决方案,请按以下步骤操作:

1

安装以下依赖项:

  • Node.js(v14 或更高版本)

  • MongoDB(本地或云)

  • Next.js(v12 或更高版本)

  • Google Cloud SDK

2
  • 以灵活的模式存储航班数据。

  • 启用实时更新。

  • 处理时间序列数据以进行分析。

  • 维护运营中的航班信息,确保您获取用于后续配置和集成步骤的 MongoDB 连接字符串。

3
  • 使用 Google Cloud 的 Cloud Run 将应用程序部署为容器化服务。

  • 配置 Google Cloud 的 Cloud Build,以实现自动化部署。询问 ChatGPT

  • 为资产设置 Google Cloud 的云存储。

  • 使用 Google Cloud Pub/Sub 实现实时数据分发。

  • 实施 Google Cloud 的 Cloud Functions 以进行数据处理。该代码片段在云函数中运行。当系统发现中断时,该函数会更新从路径查找算法获得的新路径。此功能可确保最佳重新路由,从而最大限度地减少燃料消耗并降低成本。

import base64
import json
from bson import ObjectId
import os
from pymongo import MongoClient
import functions_framework
# Triggered from a message on a Cloud Pub/Sub topic.
@functions_framework.cloud_event
def postPath(cloud_event):
# Access URI in secrets
MONGO_URI = os.environ.get('MONGO_URI', "MONGO_URI is not set.")
MONGO_DATABASE = os.environ.get('MONGO_DATABASE', "MONGO_DATABASE is not set.")
MONGO_COLLECTION = os.environ.get('MONGO_COLLECTION', "MONGO_COLLECTION is not set.")
if not all([MONGO_URI, MONGO_DATABASE, MONGO_COLLECTION]):
print("Error: One or more environment variables are not set.")
return
client = MongoClient(MONGO_URI)
db = client[MONGO_DATABASE]
collection = db[MONGO_COLLECTION]
try:
# Parse the data in the message
byte_message = base64.b64decode(cloud_event.data["message"]["data"])
json_str = byte_message.decode('utf-8')
data_dict = json.loads(json_str)
print(data_dict)
# Work with the dictionary fields
flight_id = data_dict.get("flight_id")
initial_path = data_dict.get("initial_path_airps")
new_path = data_dict.get("new_path_airps")
disruption_coords = data_dict.get("disruption_coords")
# Check if all required fields are present
if not flight_id:
print("Error: flight_id is missing.")
return
if initial_path is None or new_path is None:
print("Error: One or more path fields are missing.")
return
# Find the document in the MongoDB collection and update the path field
result = collection.update_one(
{"_id": ObjectId(flight_id)},
{"$set": {
"initial_path": initial_path,
"new_path": new_path,
"disruption_coords": {
"lat": disruption_coords[0],
"long": disruption_coords[1]
}
}}
)
if result.matched_count > 0:
print("Document successfully updated.")
else:
print("No document found with the specified flight_number.")
except Exception as e:
print(f"Error updating document: {e}")
finally:
client.close()
  • 部署 Google Cloud 的 Vertex AI进行分析。确保您获得 Google Maps API密钥,以增强地理空间分析和可视化。

4
  • 克隆存储库并安装依赖项。

  • 配置环境变量。

  • 设置 MongoDB 连接。

  • 运行开发服务器。

5
  • 使用Docker将应用程序容器化。

  • 部署到 Google Cloud 的 Cloud Run,以实现自动扩展。

  • 使用 Cloud Build 配置持续部署。

  • 设置环境变量和密钥。

执行这些步骤后,您的应用应如下所示:

带有过滤器的航班管理仪表盘
点击放大

图3.带有过滤器的航班管理仪表盘

航线与成本监控
点击放大

图 4. 航线与成本监控

  • 利用灵活的模型:MongoDB 灵活的模式和时间序列集合为航班运行提供了强大的基础。这些功能启用航空公司能够高效地处理飞行前计划和遥测数据,同时适应不断变化的需求。

  • 实现实时监控:事件驱动的架构由...提供支持,可对航班中断立即做出响应。通过处理实时数据流,这种方法可帮助航空公司最大限度地减少延误,而延误的费用平均为每小时, 4320欧元。

  • 获得增强的见解:MongoDB 的聚合管道将运营航班数据转化为可行的见解,使航空公司能够优化航线和资源。 Google Cloud Vertex AI提供预测分析,帮助航空公司管理成本和延误。

  • 高效管理数据:该解决方案展示了MongoDB如何处理各种数据类型和工作负载,从实时遥测集合到分析处理。其分布式架构和变更流功能可确保一致的性能。

  • Dr. Humza Akhtar, MongoDB

  • Rami Pinto,MongoDB

  • Sebastian Rojas Arbulu, MongoDB

  • Agentic AI 驱动的联网车队事故顾问

  • 利用 MongoDB Atlas 实现卓越的预测性维护

  • 简化全球游戏管理

后退

RAG 的声明管理

在此页面上