Skip to content

Repository files navigation

Stack Overflow 2025 – Technology ETL Pipeline

Pipeline ETL automatisé pour extraire, transformer et charger les données du Stack Overflow Developer Survey 2025 vers Supabase, orchestré par Apache Airflow.

📊 Données sources

Les données proviennent du sondage officiel Stack Overflow 2025 :

Téléchargement : Stack Overflow Developer Survey 2025

Fichier requis : survey_results_public.csv (à placer dans le dossier data/)

🚀 Démarrage rapide

1. Prérequis

  • Docker & Docker Compose
  • Les données CSV dans data/survey_results_public.csv

2. Configuration

Créer un fichier .env à la racine avec tes identifiants Supabase :

SUPABASE_URL=https://<ton-projet>.supabase.co
SUPABASE_SERVICE_KEY=<ta-clé-service>

3. Lancer l'environnement

# Initialiser Airflow
docker compose up airflow-init

# Démarrer les services
docker compose up -d

4. Accéder à Airflow

Ouvre ton navigateur : http://localhost:8080

  • Username : admin
  • Password : admin

5. Exécuter le pipeline

  1. Dans l'UI Airflow, active le DAG stackoverflow_most_popular_technologies
  2. Clique sur Trigger DAG pour lancer l'exécution

Le pipeline va :

  • ✅ Extraire les données du CSV
  • ✅ Calculer les statistiques par technologie et segment
  • ✅ Charger les résultats dans Supabase

📁 Structure du projet

.
├── dags/
│   └── stackoverflow_most_popular_dag.py   # DAG Airflow
├── data/
│   └── survey_results_public.csv           # Données source (non versionnées)
├── outputs/                                 # CSV générés (non versionnés)
├── main.py                                  # Code ETL (extract/transform/load)
├── docker-compose.yml                       # Configuration Docker
├── Dockerfile                               # Image Airflow + dépendances
└── requirements.txt                         # Dépendances Python

🔄 Planification automatique

Pour exécuter le pipeline quotidiennement, modifier dans dags/stackoverflow_most_popular_dag.py :

schedule_interval="@daily"  # au lieu de None

Puis redémarrer le scheduler :

docker compose restart airflow-scheduler

📊 Données produites

Les résultats sont stockés dans Supabase, table most_popular_technologies :

Colonne Description
year Année du sondage (2025)
chart_name Catégorie (languages, databases, cloud, etc.)
technology Nom de la technologie
segment Segment de répondants
percentage Pourcentage d'utilisation
category Type (language, database, cloud, etc.)

🛑 Arrêter l'environnement

docker compose down

📝 Notes

  • Les fichiers CSV volumineux sont ignorés par Git (.gitignore)
  • Le fichier .env ne doit jamais être commité
  • Les données sont montées dans le conteneur via Docker volumes

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages