Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ /
Atlas Architecture Center
/ / /

リアルタイム分析を活用した航空運航の高度化

強力なリアルタイム分析により航空運航業務を変革。インテリジェントなデータ監視を通じてコストを削減し、遅延を最小限に抑え、業務効率を向上。

ユースケース: 分析IoTモダナイゼーションシングルビュー

業種: 製造 & モビリティ

製品およびツール: MongoDB AtlasAggregation PipelineTime Series CollectionsChange Streams

パートナー: Google Cloud 、Vercel

MongoDB のリアルタイムフライト管理ソリューションにより、航空会社はコストのかかるフライト遅延を事前対応的に管理・軽減できます。影響について俯瞰的に見ると、2019 年だけでも、フライトの遅延により、ヨーロッパの航空会社は 1 フライト、1 時間あたり平均 €4,320 のコストを負担しています。インテリジェントなデータ処理と即時応答を活用することで、このソリューションはリアルタイムのモニタリング、予測インサイト、最適化されたリソース配分を提供します。MongoDB の柔軟な document model と時系列コレクションを基盤に構築され、シミュレーションには FastAPI、メッセージングには GCP PubSub、高度な分析には Vertex AI、サーバーレスのイベント駆動型処理には Google Cloud Functions を使用したイベント駆動型アーキテクチャを活用することで、このソリューションは運用の中断を最小限に抑える包括的なアプローチを提供します。

イベント駆動型アーキテクチャの構成要素

図1。イベント駆動型アーキテクチャの構成要素

このソリューションは以下を提供いたします。

  • 遅延の伝播の低減:リアルタイムのモニタリングと即時対応機能により、フライトスケジュールへの遅延の連鎖を防ぎます。

  • リソース配分の最適化: インテリジェントなデータ分析により、中断時にリソースを効率的に再配分できます。

  • 顧客体験の向上: 障害管理の強化により、乗客の満足度とロイヤルティの向上を実現します。

  • スケーラブルな運用: 柔軟なアーキテクチャは、増大するデータ量と運用上の要求への対応をサポートします。

  • リアルタイムの意思決定: フライトデータへの即時アクセスにより、迅速かつ情報に基づいた運用上の意思決定が可能になります。

MongoDB のリアルタイム ルート管理ソリューションは、いくつかの主要コンポーネントで構成されるイベント駆動型アーキテクチャを実装します。

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 はフロントエンド インターフェースおよび可視化で使用されます。

このアーキテクチャは、3 つの異なるデータフローを可能にします。

  • 運用データフロー(青い線): リアルタイムのフライト オペレーションを取り扱います。

  • 分析データフロー(緑のライン): ビジネス インテリジェンスを管理します。

  • 内部接続(黒線):システム統合を維持します。

イベント駆動型アーキテクチャ

図 2. イベント駆動型アーキテクチャ

このソリューションは、統合されたイベント駆動型アーキテクチャを通じてリアルタイムモニタリング、予測的なインサイト、リソース最適化機能を提供することで、特に遅延マネジメントに対処します。

前提条件

  • Node.js(v14 またはそれ以降)

  • MongoDB(ローカルまたはクラウド)

  • Next.js (v12以降)

  • Google Cloud SDK

1
  • フライトデータを柔軟なスキーマに保存します。

  • リアルタイム更新のサポート。

  • 分析のために時系列データを処理する。

  • 運航情報を維持し、以降の構成および統合ステップに必要な MongoDB の接続文字列を確実に取得できるようにします。

  • 例のモデル。

2
  • 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.
@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 キーを取得します。

3
  • リポジトリをクローンし、依存関係をインストールします。

  • 環境変数を構成します。

  • MongoDB 接続をセットアップします。

  • 開発サーバーを実行します。

4
  • 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 の汎用性を実証するものです。

  • Dr. Humza Akhtar, MongoDB

  • Rami Pinto、MongoDB

  • Sebastian Rojas Arbulu, MongoDB

戻る

RAG の請求管理

項目一覧