Definition
ETL (Extract, Transform, Load) est un processus fondamental du data engineering qui consiste a extraire des donnees de sources diverses, les transformer pour les nettoyer et les enrichir, puis les charger dans un systeme cible (data warehouse, data lake).
C'est le mecanisme qui alimente les plateformes d'analyse de donnees et de business intelligence.
Les 3 etapes
1. Extract (Extraction)
Recuperer les donnees brutes depuis les sources :
- Bases de donnees : 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 preparer les donnees :
- Nettoyage : doublons, valeurs manquantes, formats inconsistants
- Enrichissement : jointures avec d'autres sources, geocodage, categorisation
- Agregation : calculs, moyennes, totaux
- Normalisation : conversion de devises, fuseaux horaires, unites
- Validation : regles metier, contraintes d'integrite
3. Load (Chargement)
Inserer les donnees transformees dans le systeme cible :
- Full load : recharger toutes les donnees (simple mais lent)
- Incremental load : charger uniquement les nouvelles donnees / modifications
- Upsert : inserer ou mettre a jour selon l'existence
ETL vs ELT
| ETL | ELT | |
|---|---|---|
| Transformation | Avant le chargement (serveur ETL) | Apres le chargement (dans le data warehouse) |
| Performance | Limitee par le serveur ETL | Puissance du DW (BigQuery, Snowflake) |
| Complexite | Pipeline plus complexe | Plus simple, transformation en SQL |
| Tendance | Approche classique | Approche moderne (recommandee) |
L'ELT est devenu le standard grace a la puissance des data warehouses modernes (BigQuery, Snowflake) qui executent les transformations SQL bien plus rapidement qu'un serveur intermediaire.
Outils populaires
Extraction & chargement
- Fivetran : connecteurs pre-construits, zero maintenance
- Airbyte : open source, 300+ connecteurs
- Stitch : simple, integration Talend
Transformation (le "T")
- dbt (data build tool) : transformations en SQL, tests, documentation
- Apache Spark : traitement distribue a grande echelle
- Pandas : transformation Python pour volumes moyens
Orchestration
- Apache Airflow : DAGs Python, standard de l'industrie
- Prefect : alternative moderne a Airflow
- Dagster : data-aware orchestration
Exemple de pipeline ELT moderne
Sources → Airbyte → Data Lake (S3/GCS) → dbt → Data Warehouse (BigQuery) → Dashboard (Metabase)