Ce projet vise à orchestrer et exécuter des pipelines de données distribués dans un environnement sécurisé Sanofi. Il combine Apache Airflow pour l’orchestration, Apache Spark pour le traitement distribué, Metabase pour la visualisation, et MinIO pour le stockage objet compatible S3. Le déploiement et la gestion locale s’appuient sur Astro CLI (Astronomer), le tout packagé avec Docker et docker-compose, optimisé pour macOS via Colima.
- Apache Airflow : Orchestration des workflows et gestion des DAGs.
- Apache Spark : Traitement distribué des données.
- Metabase : Visualisation et exploration des données.
- MinIO : Stockage objet compatible S3, utilisé pour les échanges de fichiers.
- Astro CLI : Gestion locale et déploiement des environnements Airflow.
- Docker & docker-compose : Conteneurisation et orchestration des services.
- Colima : Moteur de virtualisation pour Docker sur macOS.
- Certificats Sanofi (.pem) : Sécurisation des communications et conformité.
- macOS (recommandé)
- Colima
- Docker Desktop
- Astro CLI
- Certificats Sanofi :
SanofiRootCA.pem,SanofiTechnicalCA.pem
-
Installer Colima et Docker Desktop
brew install colima colima start
-
Installer Astro CLI
curl -sSL https://install.astronomer.io | sudo bash -
Cloner le projet
git clone <repo-url> cd airflow-spark-integration
-
Placer les certificats Sanofi dans le dossier
certs/certs/SanofiRootCA.pem certs/SanofiTechnicalCA.pem -
Construire et démarrer les services
astro dev start
-
Accéder aux interfaces
- Airflow : http://localhost:8080
- Metabase : http://localhost:3000
- MinIO : http://localhost:9000
airflow-spark-integration/
├── dags/
│ └── stock_market.py
├── plugins/
├── docker-compose.yml
├── Dockerfile
├── certs/
│ ├── SanofiRootCA.pem
│ └── SanofiTechnicalCA.pem
├── .gitignore
├── README.md
└── ...
- Source : Extraction des données de marché depuis une API sécurisée.
- Traitement : Spark nettoie et agrège les données.
- Stockage : Les résultats sont déposés sur MinIO.
- Visualisation : Metabase interroge MinIO pour afficher les tableaux de bord.
- Orchestration : Airflow gère la planification et le suivi du pipeline.
- Build des images Docker
astro dev build
- Démarrer les services
astro dev start
- Arrêter les services
astro dev stop
- Afficher les logs
astro dev logs
- Accéder au shell Airflow
astro dev bash
- Erreurs SSL : Vérifiez la présence et le chemin des certificats
.pemdanscerts/. - Conflits de ports : Modifiez les ports dans
docker-compose.ymlsi nécessaires. - Certificats manquants : Téléchargez les certificats Sanofi requis ou contactez l’administrateur.
- Certificats Sanofi : Obligatoires pour toute connexion sécurisée.
- .gitignore : Les fichiers sensibles (
certs/*.pem, credentials, etc.) sont ignorés par défaut. - Conformité : Respect des politiques internes Sanofi pour le stockage et le transfert des données.
- Amine M'ZALI
Ce projet est sous licence MIT, sauf mention contraire dans des fichiers spécifiques.