Définition
ETL (Extract, Transform, Load) est un processus fondamental du data engineering qui consiste à extraire des données de sources diverses, les transformer pour les nettoyer et les enrichir, puis les charger dans un système cible (data warehouse, data lake).
C'est le mécanisme qui alimente les plateformes d'analyse de données et de business intelligence.
Les 3 étapes
1. Extract (Extraction)
Récupérer les données brutes depuis les sources :
- Bases de données : PostgreSQL, MySQL, MongoDB
- API : REST, GraphQL, webhooks
- Fichiers : CSV, JSON, Excel, Parquet
- SaaS : Salesforce, HubSpot, Stripe, Google Analytics
- Logs : fichiers de logs serveur, events applicatifs
2. Transform (Transformation)
Nettoyer et préparer les données :
- Nettoyage : doublons, valeurs manquantes, formats inconsistants
- Enrichissement : jointures avec d'autres sources, geocodage, categorisation
- Agrégation : calculs, moyennes, totaux
- Normalisation : conversion de devises, fuseaux horaires, unités
- Validation : règles métier, contraintes d'intégrité
3. Load (Chargement)
Insérer les données transformees dans le système cible :
- Full load : recharger toutes les données (simple mais lent)
- Incremental load : charger uniquement les nouvelles données / modifications
- Upsert : insérer ou mettre à jour selon l'existence
ETL vs ELT
| ETL | ELT | |
|---|---|---|
| Transformation | Avant le chargement (serveur ETL) | Après le chargement (dans le data warehouse) |
| Performance | Limitee par le serveur ETL | Puissance du DW (BigQuery, Snowflake) |
| Complexité | Pipeline plus complexe | Plus simple, transformation en SQL |
| Tendance | Approche classique | Approche moderne (recommandee) |
L'ELT est devenu le standard grâce à la puissance des data warehouses modernes (BigQuery, Snowflake) qui exécutent les transformations SQL bien plus rapidement qu'un serveur intermédiaire.
Outils populaires
Extraction & chargement
- Fivetran : connecteurs pre-construits, zéro maintenance
- Airbyte : open source, 300+ connecteurs
- Stitch : simple, intégration Talend
Transformation (le "T")
- dbt (data build tool) : transformations en SQL, tests, documentation
- Apache Spark : traitement distribue a grande échelle
- Pandas : transformation Python pour volumes moyens
Orchestration
- Apache Airflow : DAGs Python, standard de l'industrie
- Prefect : alternative moderne à Airflow
- Dagster : data-aware orchestration
Exemple de pipeline ELT moderne
Sources → Airbyte → Data Lake (S3/GCS) → dbt → Data Warehouse (BigQuery) → Dashboard (Metabase)