強力なリアルタイム分析機能により、移動操作を変換する方法を学びます。インテリジェントなデータモニタリングにより、コストを削減し、遅延を最小限に抑え、効率を向上させます。
ユースケース: 分析、IoT、モダナイゼーション、シングルビュー
業種: 製造 & モビリティ
製品およびツール: MongoDB Atlas、集計パイプライン、時系列コレクション、MongoDB Change Streams
パートナー: Google Cloud, Next.js, FastAPI、TENSorFlow、SC一致する
ソリューション概要
リアルタイム航空管理ソリューションにより、コストがかかる航空会社は遅延を積極的に管理および軽減できます。2019 のみの場合、移動遅延により は、1 時間あたり 1 時間あたり平均 $4,320 の遅延コスト。
このソリューションは、インテリジェントデータ処理と即座の応答を活用して、リアルタイムモニタリング、予測インサイト、最適化されたリソース割り当てを提供します。このクエリは、次の要素を含むイベント駆動型アーキテクチャを使用します。
シミュレーション用の FastAPI
メッセージング用のGCP PubSub
高度な分析のための Vertex AI
サーバーレス イベント駆動型プロセシングのための Google Cloud Functions。
MongoDB の柔軟な document model と時系列コレクションを元にビルドされたこのソリューションは、運用中断を最小限に抑えるための包括的なアプローチを提供します。
図1。イベント駆動型アーキテクチャの構成要素
このソリューションは以下を提供いたします。
遅延の伝播の低減:リアルタイムのモニタリングと即時対応機能により、フライトスケジュールへの遅延の連鎖を防ぎます。
リソース配分の最適化: インテリジェントなデータ分析により、中断時にリソースを効率的に再配分できます。
顧客体験の向上: 障害管理の強化により、乗客の満足度とロイヤルティの向上を実現します。
スケーラブルな運用: 柔軟なアーキテクチャは、増大するデータ量と運用上の要求への対応をサポートします。
リアルタイムの意思決定: フライトデータへの即時アクセスにより、迅速かつ情報に基づいた運用上の意思決定が可能になります。
参照アーキテクチャ
リアルタイムフライトマネジメントソリューションは、遅延マネジメントのためのイベント駆動型アーキテクチャを実装し、リアルタイムモニタリング、予測的インサイト、リソースの最適化を提供します。アーキテクチャは、いくつかの重要なコンポーネントで構成されています。
1. データの生成とプロセシング
FastAPI マイクロサービスによるリアルタイム データ シミュレーターおよびパス ファインダーのホスティング。
静的データストリームとリアルタイム データストリームの両方を処理する PubSub トピック。
アプリケーションとテレメトリー データを処理するための Cloud Functions。
2. 分析とコスト管理
財務影響分析のための Vertex AI コスト計算ツール
データ変換のための分析データ作成用のクラウド関数。
複雑なデータ処理のための集計パイプライン。
3. データベース構造
中央データストアとしての MongoDB データベース。
専用のコレクション:
flight_costsコレクションには、移動関連の費用を追跡および分析するための コレクションがあります。flight_plane予測モデリングとシナリオ プランニングのためのシミュレーションコレクション。flight_realtimeCFリアルタイムデータ追跡と履歴分析用に設計されたコレクション(時系列コレクション)。flights包括的な一般的なフライト情報をマネジメントするためのコレクション。
4. 統合コンポーネント
Change Streams は、リアルタイムのデータ変更に利用されます。
地理データを視覚化するための Google Maps API
Next.js はフロントエンド インターフェースおよび可視化で使用されます。
図の 2 に示すように、このアーキテクチャでは次のデータフローが可能になります。
運用データフロー(青い線): リアルタイムのフライト オペレーションを取り扱います。
分析データフロー(緑のライン): ビジネス インテリジェンスを管理します。
内部接続(黒線):システム統合を維持します。
図 2. イベント駆動型アーキテクチャ
ソリューションのビルド
コード サンプルや具体的な構成手順など、このソリューションを実装する詳細なステップ別ガイドについては、GitHubリポジトリをご覧ください。このソリューションは、航空操作を管理し、遅延や中断を最小限に抑えるためのスケーラブルなイベント駆動型アーキテクチャを提供します。
ソリューションを実装するには、次の手順に従います。
GCP サービスを構成する
Google Cloud の Cloud Run を使用して、アプリケーションをコンテナ化されたサービスとして配置します。
Google Cloud の Cloud Build を自動配置用に構成します。
Google Cloud の Cloud Storage をアセット用にセットアップします。
リアルタイムデータ配信には Google Cloud Pub/Sub を使用します。
データプロセシング用に Google 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 の柔軟なスキーマと時系列コレクションは、移動操作のための強力な基礎を提供します。これらの機能により、航空会社は要件の変化に対応できると同時に、事前計画とテレメトリ データの両方を効率的に取り扱うことができるようになります。
リアルタイムモニタリングの有効化: パブリック/サブスクライブや Cloud Functions などの MongoDB と Google Cloud サービスの統合を基盤としたイベント駆動型アーキテクチャにより、航空会社の中断に対する即座の対応が可能になります。このアプローチはリアルタイムデータストリームをプロセシングすることで、遅延を最小限に抑えるために役立ちます。これにより、1 時間あたり €4,320の平均コストがかかります。
強化されたインサイトを取得する: MongoDB の集計パイプラインは、運用航空データを実行可能なインサイトに変換し、航空会社がルートとリソースを最適化できるようにします。Google Cloud Vertex AI は、航空会社のコストと遅延の管理に役立つ予測分析を提供します。
データを効率的に取り扱う: このソリューションは、リアルタイムテレメトリのコレクションから分析プロセシングまで、MongoDBがさまざまなデータ型とワークロードをどのように取り扱うかを示します。分散されたアーキテクチャと変更ストリーム機能により、コンシステントなパフォーマンスが確保されます。
作成者
Dr. Humza Akhtar, MongoDB
Rami Pinto、MongoDB
Sebastian Rojas Arbulu, MongoDB