강력한 실시간 분석 통해 비행 운영을 혁신하는 방법을 알아보세요. 지능형 데이터 모니터링 통해 비용을 절감하고, 지연을 최소화하고, 효율성 높이세요.
산업: 제조 및 모빌리티
제품 및 도구: MongoDB Atlas, 집계 파이프라인, Time Series 컬렉션, MongoDB Change Streams
파트너: Google Cloud, Next.js, FastAPI, TensorFlow, Scikit-learn
솔루션 개요
항공사는 실시간 항공편 관리 솔루션을 통해 비용이 많이 드는 항공편 지연을 사전에 관리 하고 완화할 수 있습니다. 2019 에서만 유럽 항공사가 항공편 지연으로 인해 시간당 평균 €4,320 의 비용 .
이 솔루션은 지능형 데이터 처리와 즉각적인 대응을 활용하여 실시간 모니터링, 예측 인사이트, 최적화된 리소스 할당을 제공합니다. 다음과 같은 이벤트 기반 아키텍처를 사용합니다.
시뮬레이션용 FastAPI
메시징용 GCP PubSub
고급 분석 을 위한 Vertex AI
서버리스 이벤트 기반 처리 위한 Google Cloud Functions .
MongoDB의 유연한 문서 모델 과 Time Series 컬렉션을 기반으로 구축된 이 솔루션은 운영 중단을 최소화하기 위한 포괄적인 접근 방식을 제공합니다.
그림 1. 이벤트 중심 아키텍처의 구성 요소
솔루션은 다음을 제공합니다.
지연 전파 감소: 실시간 모니터링과 즉각적인 대응 역량을 통해 비행 일정의 지연이 연쇄적으로 발생하는 것을 방지할 수 있습니다.
최적화된 리소스 할당: 지능형 데이터 분석은 장애 발생 시 리소스를 효율적으로 재할당할 수 있게 합니다.
향상된 고객 경험: 더 나은 관리가 승객 만족도와 충성도를 향상시킵니다.
확장 가능한 작업: 유연한 아키텍처는 증가하는 데이터 볼륨과 운영 요구를 지원합니다.
실시간 의사결정: 비행 데이터에 즉시 접근함으로써 신속하고 정보에 입각한 운영 결정을 내릴 수 있습니다.
참조 아키텍처
실시간 항공편 관리 솔루션은 지연 관리 위한 이벤트 중심 아키텍처를 구현하여 실시간 모니터링, 예측 인사이트 및 리소스 최적화를 제공합니다. 아키텍처는 다음과 같은 몇 가지 주요 구성 요소로 구성됩니다.
1. 데이터 생성 및 처리
실시간 데이터 시뮬레이터와 경로 찾기 기능을 갖춘 FastAPI 마이크로서비스.
정적 데이터 스트림과 실시간 데이터 스트림을 모두 처리하는 PubSub 주제.
애플리케이션 및 텔레메트리 데이터 처리를 위한 클라우드 기능
2. 분석 및 비용 관리
재무적 영향 분석을 위한 Vertex AI 비용 계산기
데이터 변환을 위한 분석 데이터 생성용 클라우드 함수.
복잡한 데이터 처리를 위한 집계 파이프라인.
3. 데이터베이스 구조
중앙 데이터 저장소로 MongoDB 데이터베이스를 사용합니다.
특수 컬렉션:
flight_costs컬렉션 통해 항공 관련 비용을 추적 하고 분석 .flight_plane예측 모델링 및 시나리오 계획을 위한 시뮬레이션 컬렉션 .flight_realtimeCF실시간 데이터 추적 및 기록 분석을 위해 설계된컬렉션 ( Time Series Collection ).flights포괄적인 일반 비행 정보 관리 위한 컬렉션 입니다.
4. 통합 구성 요소
실시간 데이터 변경을 위한 Change Streams.
지리적 데이터를 시각화하기 위한 Google Maps API.
프론트엔드 인터페이스 및 시각화를 위한 Next.js.
그림 2에 설명된 대로 이 아키텍처는 다음과 같은 데이터 흐름을 가능하게 합니다.
운영 데이터 흐름(파란색 선): 실시간 비행 작업을 처리합니다.
분석 데이터 흐름(녹색 선): 비즈니스 인텔리전스를 관리합니다.
내부 연결(검은색 선): 시스템 통합을 유지합니다.
그림 2. 이벤트 중심 아키텍처
솔루션 빌드
코드 샘플 및 특정 구성 지침을 포함하여 이 솔루션을 구현하는 자세한 단계별 가이드 보려면 이 GitHub 리포지토리 방문하세요. 이 솔루션은 항공편 운영을 관리 하고 지연 및 중단을 최소화할 수 있는 확장 가능한 이벤트 중심 아키텍처를 제공합니다.
솔루션을 구현 하려면 다음 단계를 따르세요.
GCP 서비스 구성
Google Cloud의 Cloud Run을 사용하여 애플리케이션 컨테이너화된 서비스로 배포합니다.
Google Cloud의 Cloud Build를 자동 배포를 위해 구성합니다.
자산을 위한 Google Cloud 클라우드 저장소를 설정합니다.
실시간 데이터 배포를 위해 Google Cloud Pub/Sub를 사용합니다.
데이터 처리 위해 Google Cloud의 Cloud Functions를 구현합니다. 코드 스니펫은 cloud 함수에서 실행됩니다. 시스템에서 중단을 식별하면 함수는 경로 찾기 알고리즘 에서 얻은 새 경로를 업데이트합니다. 이 기능 최적의 경로 재지정을 보장하여 연료 소비를 최소화하고 비용을 절감합니다.
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 지도 API 키를 얻어야 합니다.
이 단계를 수행하면 앱 이 다음과 같이 표시됩니다.
그림 3. 필터를 사용하는 항공편 관리 대시보드
그림 4. 비행 경로 및 비용 모니터링
주요 학습 사항
유연한 모델 활용: MongoDB의 유연한 스키마 와 time series 컬렉션은 비행 작업을 위한 강력한 기반을 제공합니다. 항공사는 이러한 기능을 활성화 비행 전 계획과 원격 측정 데이터를 모두 효율적으로 처리하다 동시에 변화하는 요구 사항에 적응할 수 있습니다.
실시간 모니터링 활성화 : Pub/Sub 및 Cloud Functions와 같은 Google Cloud 서비스와의 MongoDB 통합을 기반 항공편 중단에 즉시 대응할 수 있습니다. 이 접근 방식은 실시간 데이터 스트림을 처리 함으로써 항공사가 시간당 평균 의 비용 수 있는4 지연을320 최소화하는 데 도움이 됩니다.
향상된 인사이트 얻기: MongoDB의 집계 파이프라인은 운영 항공편 데이터를 실행 가능한 인사이트로 변환하여 항공사가 경로와 리소스를 최적화할 수 있도록 합니다. Google Cloud Vertex AI 항공사가 비용과 지연을 관리 도움이 되는 예측 분석 제공합니다.
데이터 효율적 관리: 이 솔루션은 MongoDB 실시간 원격 분석 컬렉션 부터 분석 처리 에 이르기까지 다양한 데이터 유형과 워크로드를 처리하는 방법을 보여줍니다. 분산된 아키텍처와 변경 스트림 기능은 일관적인 성능을 보장합니다.
작성자
Dr. Humza Akhtar, MongoDB
Rami Pinto, MongoDB
Sebastian Rojas Arbulu, MongoDB