An ETL tool for Flight Radar data processing
Project description
Flight Radar Data Processing
Description
Ce projet intègre l'analyse de données de vol en temps réel en utilisant l'API FlightRadar24, Apache Spark, et un notebook Jupyter pour l'extraction, le traitement, l'analyse et la visualisation des données. Les scripts python sont utilisés pour automatiser le processus de traitement des données. Initialement, j'ai opté pour le notebook Jupyter FlightRadar.ipynb
pour son interactivité et sa facilité d'utilisation lors du développement et de l'exploration des données. Cependant, avec la nécessité de rafraîchir le processus toutes les 2 heures, j'ai choisi d'utiliser les fichiers Python (py
) pour permettre une exécution planifiée plus facile via un cron job. Étant donné que l'installation d'APScheduler pouvait être complexe, j'ai opté pour l'utilisation d'un planificateur (Scheduler
) pour maintenir la simplicité tout en automatisant le flux de travail de traitement des données. Cette approche offre une solution robuste pour garantir la mise à jour régulière des informations de vol sans nécessiter des configurations avancées d'outils complexes.
Schéma du processus du projet
Le processus du projet aérien commence par l'extraction de données en temps réel sur les vols à partir de l'API Flight Radar. Ces données sont intégrées et traitées à l'aide de Python et Spark, avec une planification automatique toutes les deux heures via APScheduler. Le traitement des données implique l'agrégation, la transformation et le nettoyage, assurant la qualité et la cohérence des informations. Les données sont ensuite stockées sous forme de fichiers plats (CSV) pour une analyse ultérieure. La phase d'analyse comprend le calcul des indicateurs de performance clés (KPIs) à partir des données nettoyées. Enfin, le projet aboutit à la visualisation des données, où des graphiques sont créés pour une interprétation visuelle des tendances et des informations essentielles sur les vols, les compagnies aériennes, les aéroports et les zones.
Fonctionnalités Principales
1. ApiFlightRadar
Objectif : Interagit avec l'API FlightRadar24 pour récupérer des données de vol en temps réel.
Méthodes clés : get_flights_data
, get_airlines_data
, get_airport_data
, get_regional_flights
.
Utilisation : Collecte et initialisation des données de vol pour un traitement ultérieur.
2. DataSchema
Composants : Flight
, Airline
, Airport
, Regional
.
Objectif : Définit la structure de données et le schéma pour différents types de données comme les vols, les compagnies aériennes, etc.
Utilisation : Utilisé dans toute l'application pour une structure de données cohérente.
3. KPIAnalytics
Objectif : Calcule divers KPI comme le plus grand nombre de vols, le vol le plus long et les temps de vol moyens.
Méthodes clés : get_most_flights
, get_longest_flight
, get_avg_distance_by_continent
.
Utilisation : Essentiel pour l'analyse de données et la génération d'aperçus.
4. LoggerManager
Objectif : Gère les logs de l'application, assurant le suivi de toutes les activités. Fonctionnalités : Niveaux de logs personnalisables et gestion des fichiers. Utilisation : Vital pour le débogage et le suivi des performances de l'application.
5. Classes de Service
Objectif : Gèrent des segments de données spécifiques et incluent des méthodes pour récupérer, traiter et sauvegarder les données. Utilisation : Centrales dans le fonctionnement de l'application pour une gestion organisée et efficace des données.
6. SparkManager
Objectif : Gère les sessions Spark et les dataframes, et fournit des fonctions pour la manipulation des données.
Méthodes clés : create_df
, clean_df
, save_df
.
Utilisation : Essentiel pour le traitement de données à grande échelle.
7. main
Fonctionnalité : Initialise et orchestre l'application, planifiant les tâches et gérant le flux de travail. Utilisation : Point d'entrée de l'application, reliant tous les composants.
FlightRadarExaltLogsFinal.ipynb (Notebook Jupyter)
- Récupération et traitement des données de vol à partir de l'API FlightRadar24.
- Configuration initiale des composants nécessaires (logger, API, session Spark).
- Nettoyage et transformation des données avec Apache Spark.
- Sauvegarde des données traitées au format CSV.
- Calcul et enregistrement des indicateurs clés de performance (KPI).
- Visualisation des données de vol pour une analyse plus intuitive.
Installation et Utilisation pour les fichiers python
- Installer les dépendances :
pip install FlightRadarAPI pyspark apscheduler
Installation et Utilisation pour jupyter notebook
- Installer les dépendances :
pip install FlightRadarAPI pyspark
Technologies Utilisées
- Python
- Apache Spark
- SQL
- FlightRadar24 API
- Jupyter Notebook
- APScheduler
- matplotlib
- seaborn
L'Architecture Médaillon
Sourcing des Données (Zone de Staging)
- Le code intègre une phase de collecte de données principalement via l'API FlightRadar24.
- La classe
ApiFlightRadar
est utilisée pour l'extraction des données. - Des méthodes sont présentes pour récupérer des données sur les vols, les compagnies aériennes, les aéroports, etc.
Traitement des Données (Zone de Transformation)
- Les classes
ServiceFlight
,ServiceAirline
,ServiceAirport
, etServiceRegional
suggèrent le traitement et la transformation des données. - Les méthodes telles que
process_flights_data
etprocess_airlines_data
indiquent une transformation des données extraites.
Chargement des Données (Zone de Présentation)
- Utilisation de
SparkManager
pour la gestion des données et la création de vues. - Les méthodes
create_view
etsave_df
sont utilisées pour la finalisation et la préparation des données pour l'analyse ou la visualisation.
Industrialisation du Code
Modularité et Organisation
- Organisation en classes distinctes avec des responsabilités spécifiques.
- Séparation des préoccupations avec des classes dédiées à l'API, au traitement des données, à la gestion des logs, etc.
Gestion des Erreurs
- Présence de blocs try-except pour la gestion des exceptions.
Logging
- Intégration d'un système de logging pour le débogage et la surveillance en production.
Extensibilité et Maintenance
- Code écrit pour faciliter l'ajout de nouvelles fonctionnalités ou la modification des existantes.
- Utilisation de classes et de méthodes spécifiques pour la maintenabilité du code.
Performance et Optimisation
- Utilisation de Spark pour traiter de grands volumes de données.
- La performance dépend de la mise en œuvre spécifique des méthodes et de l'optimisation des requêtes Spark.
Automatisation et Orchestration
- Intégration d'un scheduler (
BackgroundScheduler
) pour automatiser les tâches.
Conclusion
Le projet Flight Radar Data Processing représente une solution avancée et complète pour l'analyse et le traitement des données de vol en temps réel. Utilisant l'API FlightRadar24, Apache Spark, et un notebook Jupyter, ce projet se distingue par sa capacité à automatiser et planifier le traitement des données, rendant l'analyse des vols plus accessible et intuitive.
La modularité du code, avec des classes distinctes pour différentes fonctions, assure une maintenance et une extensibilité aisées, permettant une adaptation et une expansion continues du projet. Le système de logging intégré et la gestion des erreurs garantissent une robustesse et une fiabilité élevées, essentielles pour le traitement en temps réel.
Avec des capacités telles que le nettoyage, la transformation et la visualisation des données, ce projet offre non seulement des informations précieuses sur les tendances actuelles de l'aviation, mais sert également de plateforme pour l'exploration de données et la découverte d'insights significatifs.
Ce projet est idéal pour les analystes de données, les professionnels de l'aviation et les développeurs d'applications, offrant un cadre solide pour le traitement des données de vol et l'extraction d'informations stratégiques. Il démontre l'efficacité de la combinaison de technologies modernes telles que Python, Spark et Jupyter pour relever les défis du traitement des big data en temps réel.
En conclusion, Flight Radar Data Processing est un projet innovant qui marque un pas en avant dans le domaine de l'analyse de données de vol, offrant des capacités d'analyse avancées et une flexibilité inégalée pour les professionnels et les passionnés de l'aviation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file badr-g-flight-radar-v1-1.0.tar.gz
.
File metadata
- Download URL: badr-g-flight-radar-v1-1.0.tar.gz
- Upload date:
- Size: 276.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67d8471acfe7570efcf5d2e21fba2ad4507ca7b232bb07fb4365934c6363449e |
|
MD5 | 2950c3e3528f89d1cbda996f47185740 |
|
BLAKE2b-256 | 2767aee436d938d1116950c44e66d3b97ed553bc7fccf10ee9aaf13812e1b09f |
File details
Details for the file badr_g_flight_radar_v1-1.0-py3-none-any.whl
.
File metadata
- Download URL: badr_g_flight_radar_v1-1.0-py3-none-any.whl
- Upload date:
- Size: 102.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1baf0969e399f1e0586295c24ebd12d08d1edf440c346d956c787f004db29a7f |
|
MD5 | 31f4c2e85f7a1f69b5f6b30795724399 |
|
BLAKE2b-256 | 9b2ac8b9146e8c8a38eb40e23e28af5bbb00968ec4ae194a7be422c98686743e |