強力なリアルタイム分析により航空運航業務を変革。インテリジェントなデータ監視を通じてコストを削減し、遅延を最小限に抑え、業務効率を向上。
ユースケース: 分析、IoT、モダナイゼーション、シングルビュー
業種: 製造 & モビリティ
製品およびツール: MongoDB Atlas、Aggregation Pipeline、Time Series Collections、Change Streams
パートナー: Google Cloud 、Vercel
ソリューション概要
MongoDB のリアルタイムフライト管理ソリューションにより、航空会社はコストのかかるフライト遅延を事前対応的に管理・軽減できます。影響について俯瞰的に見ると、2019 年だけでも、フライトの遅延により、ヨーロッパの航空会社は 1 フライト、1 時間あたり平均 €4,320 のコストを負担しています。インテリジェントなデータ処理と即時応答を活用することで、このソリューションはリアルタイムのモニタリング、予測インサイト、最適化されたリソース配分を提供します。MongoDB の柔軟な document model と時系列コレクションを基盤に構築され、シミュレーションには FastAPI、メッセージングには GCP PubSub、高度な分析には Vertex AI、サーバーレスのイベント駆動型処理には Google Cloud Functions を使用したイベント駆動型アーキテクチャを活用することで、このソリューションは運用の中断を最小限に抑える包括的なアプローチを提供します。
図1。イベント駆動型アーキテクチャの構成要素
このソリューションは以下を提供いたします。
遅延の伝播の低減:リアルタイムのモニタリングと即時対応機能により、フライトスケジュールへの遅延の連鎖を防ぎます。
リソース配分の最適化: インテリジェントなデータ分析により、中断時にリソースを効率的に再配分できます。
顧客体験の向上: 障害管理の強化により、乗客の満足度とロイヤルティの向上を実現します。
スケーラブルな運用: 柔軟なアーキテクチャは、増大するデータ量と運用上の要求への対応をサポートします。
リアルタイムの意思決定: フライトデータへの即時アクセスにより、迅速かつ情報に基づいた運用上の意思決定が可能になります。
参照アーキテクチャ
MongoDB のリアルタイム ルート管理ソリューションは、いくつかの主要コンポーネントで構成されるイベント駆動型アーキテクチャを実装します。
データベース構造
中央データストアとしての MongoDB データベース。
専用のコレクション:
flight_costs コレクションは、フライト関連費用を追跡および分析します。
flight_plane シミュレーションコレクションは、予測モデリングとシナリオ プランニングに使われます。
flight_realtimeCF コレクションは、リアルタイムデータの追跡と履歴分析用に設計されています(時系列コレクション)。
flights コレクションは、包括的な一般フライト情報管理のために使われます。
このアーキテクチャは、3 つの異なるデータフローを可能にします。
運用データフロー(青い線): リアルタイムのフライト オペレーションを取り扱います。
分析データフロー(緑のライン): ビジネス インテリジェンスを管理します。
内部接続(黒線):システム統合を維持します。
図 2. イベント駆動型アーキテクチャ
このソリューションは、統合されたイベント駆動型アーキテクチャを通じてリアルタイムモニタリング、予測的なインサイト、リソース最適化機能を提供することで、特に遅延マネジメントに対処します。
ソリューションを構築する
Node.js(v14 またはそれ以降)
MongoDB(ローカルまたはクラウド)
Next.js (v12以降)
Google Cloud SDK
MongoDB のセットアップ
フライトデータを柔軟なスキーマに保存します。
リアルタイム更新のサポート。
分析のために時系列データを処理する。
運航情報を維持し、以降の構成および統合ステップに必要な MongoDB の接続文字列を確実に取得できるようにします。
例のモデル。
GCPサービスを設定する
Google Cloud の Cloud Run を使用して、アプリケーションをコンテナ化されたサービスとしてデプロイします。
Google Cloud の Cloud Build を自動配置用に構成します。
Google Cloud の Cloud Storage をアセット用にセットアップします。
リアルタイムデータ配信には Google Cloud Pub/Sub を使用します。
データ処理用に Google Cloud の Cloud Functions を実装します。次のコードスニペットはクラウド関数で実行され、障害が確認された場合、パスファインダーアルゴリズムから取得した新しいパスを更新します。これにより、燃料消費とコストを最小限に抑えるために最適な再ルーティングが保証されます。
Python
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 キーを取得します。
デモアプリケーションをインストールしてローカルで実行
リポジトリをクローンし、依存関係をインストールします。
環境変数を構成します。
MongoDB 接続をセットアップします。
開発サーバーを実行します。
(任意)ソリューションのデプロイ
Docker を使用してアプリケーションをコンテナ化します。
Google Cloud の Cloud Run に配置して、自動スケーリングを行います。
継続的デプロイメントを Cloud Build で構成します。
環境変数とシークレットを設定してください。
最終的に、アプリはこのようになります。
図3。フィルターを備えたフライトマネジメントダッシュボード
図 4. フライトルートとコストのモニタリング
このソリューションは、航空会社が遅延や混乱の影響を最小限に抑えながらフライトの運用を効率的に管理できるようにする、スケーラブルなイベント駆動型アーキテクチャを提供します。
コード サンプルや具体的な構成手順など、このソリューションの実装に関する詳細なステップ別ガイドについては、 GitHubリポジトリをご覧ください。
キーポイント
MongoDB の柔軟なスキーマと時系列コレクションは、航空運用の強力な基盤を提供し、航空会社がフライト前の計画データとリアルタイムのテレメトリを効率的に取り扱いながら、柔軟なドキュメントモデルを通じて進化するニーズに適応できるようにします。
MongoDB と Google Cloud サービス(Pub/Sub、Cloud Functions)との統合により実現されるイベント駆動型アーキテクチャは、フライトの混乱に即座に対応できる体制を構築します。リアルタイムデータストリームの処理を通じて航空会社が遅延を最小限に抑えることを支援し、平均で 1 時間あたり€4,320のコストを削減できます。
MongoDB の集計パイプラインは、運用フライトデータを実行可能なインサイトに変換し、航空会社がルートとリソースを最適化できるようにします。一方、Google Cloud Vertex AI はコストと遅延管理のための予測分析を提供します。
このソリューションは、分散型アーキテクチャと変更ストリーム機能を通じて大規模でのパフォーマンスを維持しながら、リアルタイムのテレメトリ コレクションから分析処理まで、さまざまなデータ型とワークロードを処理する MongoDB の汎用性を実証するものです。
使用した技術と製品
MongoDB 開発者データ プラットフォーム
提携技術
作成者
Dr. Humza Akhtar, MongoDB
Rami Pinto、MongoDB
Sebastian Rojas Arbulu, MongoDB