了解如何通过强大的实时分析实现航班运营转型。通过智能数据监控降低成本,最大限度地减少延迟并提高效率。
行业: 制造与移动
产品和工具: 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 数据库作为中心数据存储。
专用集合:
4.集成组件
使用 Change Streams 实现实时数据变更跟踪。
Google Maps API 用于可视化地理数据。
Next.js 用于前端界面和可视化。
如图 2 所示,该架构支持以下数据流:
操作数据流(蓝色线条):处理实时航班运营数据。
分析数据流(绿色线条):管理商业智能。
内部连接(黑线):维护系统集成。
图 2. 事件驱动型架构
构建解决方案
有关实施此解决方案的详细分步指南,包括代码示例和具体配置说明,请访问此 GitHub存储库。该解决方案提供了一个可扩展的事件驱动型架构,用于管理航班运营并最大限度地减少延误和中断。
要实现该解决方案,请按以下步骤操作:
配置 GCP 服务
使用 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. 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密钥,以增强地理空间分析和可视化。
执行这些步骤后,您的应用应如下所示:
图3.带有过滤器的航班管理仪表盘
图 4. 航线与成本监控
关键要点
利用灵活的模型:MongoDB 灵活的模式和时间序列集合为航班运行提供了强大的基础。这些功能启用航空公司能够高效地处理飞行前计划和遥测数据,同时适应不断变化的需求。
实现实时监控:事件驱动的架构由...提供支持,可对航班中断立即做出响应。通过处理实时数据流,这种方法可帮助航空公司最大限度地减少延误,而延误的费用平均为每小时, 4320欧元。
获得增强的见解:MongoDB 的聚合管道将运营航班数据转化为可行的见解,使航空公司能够优化航线和资源。 Google Cloud Vertex AI提供预测分析,帮助航空公司管理成本和延误。
高效管理数据:该解决方案展示了MongoDB如何处理各种数据类型和工作负载,从实时遥测集合到分析处理。其分布式架构和变更流功能可确保一致的性能。
作者
Dr. Humza Akhtar, MongoDB
Rami Pinto,MongoDB
Sebastian Rojas Arbulu, MongoDB