Introduction au Data Engineering
Bienvenue dans cette première leçon du parcours Data Engineering — From Zero to Hero.
Dans ce notebook, nous allons découvrir :
- Ce qu’est le Data Engineering
- Les différences entre Data Engineer, Data Scientist et Data Analyst
- L’architecture d’un système de données moderne
- ETL vs ELT — Quelle est la différence ?
- Les types de pipelines (batch vs streaming)
- Fondations des pipelines de données
- Panorama des outils du Data Engineer
- Soft Skills & Mindset du Data Engineer
- Quiz de fin de module
Prérequis
Avant de commencer ce parcours, il est recommandé d’avoir :
| Niveau | Compétence |
|---|---|
| ✅ Basique | Savoir utiliser un ordinateur et naviguer dans des fichiers |
| ✅ Basique | Connaître les concepts de base d’internet |
💡 Pas de panique ! Ce parcours est conçu pour les débutants. Nous couvrirons tout ce dont tu as besoin.
1. C’est quoi le Data Engineering ?
Le Data Engineering (ou ingénierie des données) est une discipline qui consiste à concevoir, construire, maintenir et optimiser les systèmes de traitement de données.
Le Data Engineer, spécialiste en gestion des données, conçoit et maintient l’infrastructure data (bases de données, entrepôts de données, lacs de données) et développe des pipelines automatisés qui extraient, transforment et chargent les données dans des systèmes adaptés.
C’est le socle technique qui garantit la qualité, la disponibilité et la sécurité des données utilisées par les Data Analysts et Data Scientists pour générer des insights et orienter les stratégies d’entreprise.
Exemples concrets en entreprise
| Entreprise | Cas d’usage Data Engineering |
|---|---|
| Netflix | Pipeline qui collecte les données de visionnage de millions d’utilisateurs pour alimenter le système de recommandation |
| Uber | Traitement en temps réel des données GPS de milliers de chauffeurs pour optimiser les trajets et les prix |
| Spotify | Agrégation des données d’écoute pour générer les playlists “Discover Weekly” personnalisées |
| Airbnb | Pipeline de données pour analyser les prix du marché et suggérer des tarifs aux hôtes |
| E-commerce | Synchronisation des stocks entre le site web, l’ERP et les entrepôts en temps réel |
2. Différences entre métiers
| Métier | Rôle Principal | Focus | Outils Clés |
|---|---|---|---|
| Data Engineer | Construire et maintenir l’infrastructure de données | Infrastructure & Pipelines | Apache Airflow, Apache Spark, Kafka, Snowflake, dbt, Python, SQL, Prefect, Docker, Kubernetes, etc… |
| Data Scientist | Extraire des insights et créer des modèles prédictifs | Modélisation & ML | Python, R, scikit-learn, TensorFlow, PyTorch, Jupyter, MLflow, Pandas, XGBoost, etc… |
| Data Analyst | Transformer les données en insights actionnables | Business Intelligence | SQL, Excel, Power BI, Tableau, Looker, Google Analytics, Python (basique) |
3. Architecture typique d’un pipeline de données moderne
Un pipeline de données moderne suit généralement ce flux :
┌─────────────────────────────────────────────────────────┐
│ 🛡️ GOUVERNANCE DATA │
│ Catalogue, Qualité, Lineage, Sécurité, RBAC, Privacy │
│ Compliance, MDM │
└─────────────────────────────────────────────────────────┘
┌──────────────────┐ ┌───────────────────────────────────────────┐
│ 📥 SOURCES │ → │ 💾 STOCKAGE │
│ API, DB, Logs, │ │ (Data Lakehouse : S3, ADLS…) │
│ CSV, IoT │ │ │
└──────────────────┘ │ BRONZE : Données brutes (Raw) │
│ - Ingérées telles quelles │
│ - Formats variés (JSON, CSV, Parquet) │
┌──────────────────────┐ │ - Pas de qualité garantie │
│ 🔄 INGESTION │ │ │
│ ETL/ELT, Streams │ │ SILVER : Données nettoyées (Clean) │
│ Airbyte, Fivetran │ │ - Normalisées, typées, dédupliquées │
└──────────────────────┘ │ - Qualité contrôlée │
│ - Jointures simples / enrichissement │
│ │
┌──────────────────────┐ │ GOLD : Données business (Curated) │
│ ⚙️ TRANSFORMATION │ │ - Modèles analytiques (Star Schema) │
│ dbt, SQL, Spark, │ │ - KPIs, métriques, tables prêtes BI │
│ Pandas, MLflow │ │ - Haute qualité et gouvernance forte │
└──────────────────────┘ └───────────────────────────────────────────┘
┌──────────────────────────────┐
│ 📊 EXPOSITION │
│ Dashboards, ML, APIs, Apps │
│ Power BI, Tableau, Looker │
│ (⚠️ Toujours à partir du GOLD)│
└──────────────────────────────┘
ETL vs ELT — Quelle est la différence ?
| Critère | ETL (Extract → Transform → Load) | ELT (Extract → Load → Transform) |
|---|---|---|
| 🔄 Ordre | Extraction → Transformation → Chargement | Extraction → Chargement → Transformation |
| 📍 Lieu de la transformation | En dehors du stockage (dans un script ou un outil) | Directement dans le data warehouse |
| ✅ Avantages | Plus de contrôle sur la transformation | Plus rapide sur des gros volumes |
| ⚠️ Inconvénients | Peut surcharger les outils intermédiaires | Besoin d’un entrepôt puissant (coûts) |
| 🛠️ Outils typiques | Informatica, Talend, scripts Python, … | dbt, Snowflake, BigQuery, … |
| 📅 Cas d’usage | Données sensibles nécessitant un pré-traitement | Analytics modernes sur le cloud |
4. Pipelines batch vs streaming
| Mode | Définition | Latence | Exemples |
|---|---|---|---|
| Batch | Traitement périodique (toutes les heures, tous les jours…) | Minutes à heures | Rapport quotidien, import CSV, agrégations nocturnes |
| Streaming | Traitement en temps réel, événement par événement | Millisecondes à secondes | Logs serveurs, capteurs IoT, transactions bancaires, détection de fraude |
Comment choisir ?
| Question | Si oui → |
|---|---|
| Les données doivent-elles être traitées immédiatement ? | Streaming |
| Le volume est-il très élevé mais la latence peu critique ? | Batch |
| Avez-vous besoin de détecter des anomalies en temps réel ? | Streaming |
| S’agit-il de rapports quotidiens/hebdomadaires ? | Batch |
Fondations des pipelines de données
Tout pipeline de données repose sur plusieurs piliers fondamentaux :
| Pilier | Description | Module associé |
|---|---|---|
| 1. Data Collecting | Comment collecter les données brutes (fichiers, API, capteurs…) | Python, APIs |
| 2. Data Ingestion | Comment les intégrer dans un système (DB, data lake…) | ETL, Airbyte |
| 3. Data Storage | Comment et où les stocker (SQL, NoSQL, S3…) | Databases, Cloud |
| 4. Data Processing | Comment les transformer, nettoyer, agréger | Python, Spark, dbt |
| 5. Data Modeling | Comment organiser les données pour l’analyse | SQL, dbt |
| 6. Data Quality & Governance | Comment garantir la fiabilité et la traçabilité | Great Expectations |
| 7. Data Orchestration | Comment automatiser les tâches et gérer les dépendances | Airflow, Prefect |
| 8. Scalabilité & Performance | Comment faire face à de gros volumes ou à la charge | Spark, Kubernetes |
| 9. Sécurité des données | Chiffrement, contrôle d’accès, audit | IAM, Vault |
| 10. DevOps pour la Data | Conteneurisation, CI/CD, monitoring | Docker, GitHub Actions |
📘 Ces concepts seront abordés progressivement dans le parcours.
5. Panorama des outils du Data Engineer
| Domaine | Outils populaires | Niveau |
|---|---|---|
| 📥 Collecte | Python, API REST, Scrapy, Kafka | Débutant → Intermédiaire |
| 🔄 Ingestion | Airbyte, Fivetran, Python scripts | Débutant |
| 💾 Stockage | PostgreSQL, Snowflake, S3, Delta Lake | Débutant → Avancé |
| ⚙️ Traitement (Batch) | Pandas, Spark, dbt, SQL | Débutant → Avancé |
| ⚡ Traitement (Streaming) | Kafka, Spark Streaming, Flink | Intermédiaire → Avancé |
| 🎼 Orchestration | Apache Airflow, Prefect, Dagster | Intermédiaire |
| 🐳 DevOps & CI/CD | Docker, GitHub Actions, Terraform | Intermédiaire |
| 📊 Monitoring | Grafana, Prometheus, ELK Stack | Intermédiaire |
Stack moderne typique (2024)
┌─────────────────────────────────────────────────────────────┐
│ STACK DATA MODERNE │
├─────────────────────────────────────────────────────────────┤
│ Orchestration │ Airflow / Prefect / Dagster │
│ Transformation │ dbt / Spark / Python │
│ Warehouse │ Snowflake / BigQuery / Redshift │
│ Ingestion │ Airbyte / Fivetran / Stitch │
│ Sources │ APIs / Databases / SaaS / Files │
└─────────────────────────────────────────────────────────────┘
6. Soft Skills & Mindset du Data Engineer
Le métier de Data Engineer n’est pas uniquement technique. Pour réussir dans ce domaine, il faut aussi développer des compétences humaines et professionnelles essentielles :
| Compétence | Description | Pourquoi c’est important |
|---|---|---|
| 📝 Documenter | Écrire une documentation claire pour son code et ses pipelines | Facilite la maintenance et l’onboarding des nouveaux membres |
| 🤝 Collaborer | Travailler avec les équipes Data Science, BI, Produit, DevOps | Les données traversent toute l’organisation |
| 🎯 Être rigoureux | Garantir la qualité, la fiabilité et la traçabilité des données | Une erreur de données peut avoir des conséquences business majeures |
| 🕵🏽♂️ Investiguer | Savoir débugger des anomalies, logs ou échecs de pipeline | Les pipelines cassent, il faut savoir pourquoi rapidement |
| 📚 Apprendre en continu | Se tenir à jour sur les nouveaux outils et pratiques | Le domaine évolue très rapidement |
| 💬 Communiquer | Expliquer des concepts techniques à des non-techniques | Alignement avec les équipes métier |
Quiz de fin de module
Réponds aux questions suivantes pour valider tes acquis 👇🏽
❓ Q1. Quel est le rôle principal d’un Data Engineer ?
- Créer des modèles prédictifs
- Visualiser les données dans Power BI
- Concevoir et maintenir des pipelines de données
- Faire des analyses statistiques dans Excel
💡 Voir la réponse
✅ Réponse : c — Le Data Engineer conçoit et maintient des pipelines de données.
❓ Q2. Dans un pipeline ETL, que signifie le “T” ?
- Transfer
- Trigger
- Transform
- Transport
💡 Voir la réponse
✅ Réponse : c — “T” signifie Transform, c’est l’étape de transformation des données.
❓ Q3. Quelle est la principale différence entre ETL et ELT ?
- ELT ne fait pas de transformation
- ELT transforme les données après les avoir chargées
- ETL est utilisé uniquement pour les fichiers CSV
- ELT est un outil comme Apache Airflow
💡 Voir la réponse
✅ Réponse : b — ELT charge d’abord les données, puis les transforme dans le data warehouse.
❓ Q4. Lequel de ces outils est utilisé pour orchestrer des pipelines ?
- Apache Kafka
- Apache Airflow
- Tableau
- PostgreSQL
💡 Voir la réponse
✅ Réponse : b — Apache Airflow est un outil d’orchestration de pipelines.
❓ Q5. Le traitement batch consiste à :
- Traiter les données en continu
- Traiter les données en petits lots à la volée
- Traiter les données par groupe, à intervalle régulier
- Traiter uniquement les données texte
💡 Voir la réponse
✅ Réponse : c — Le batch consiste à traiter les données par lots à intervalles définis.
Bonus Quiz — Nouveaux paradigmes : ETLt & Reverse ETL
❓ Q6. Que signifie ETLt ?
- Une erreur dans la chaîne ETL
- Une combinaison hybride entre ETL et ELT
- Une technique de transfert via email
- Une transformation uniquement après chargement
💡 Voir la réponse
✅ Réponse : b — ETLt correspond à : Extract → Transform (1) → Load → Transform (2).
C’est une approche hybride où une partie des transformations est faite avant le chargement, et une autre après.
❓ Q7. Le Reverse ETL est utilisé pour :
- Recharger les données sources depuis le warehouse
- Supprimer les données invalides dans un lac de données
- Pousser les données du data warehouse vers les outils métiers
- Transformer les données en reverse-engineering
💡 Voir la réponse
✅ Réponse : c — Reverse ETL consiste à extraire les données d’un data warehouse (ex. BigQuery) pour les charger dans des outils métiers comme Salesforce, Notion, Slack, etc.
📚 Ressources pour aller plus loin
📖 Lectures recommandées
- Fundamentals of Data Engineering — Joe Reis & Matt Housley
- The Data Warehouse Toolkit — Ralph Kimball
- Designing Data-Intensive Applications — Martin Kleppmann
🌐 Sites & Blogs
- Data Engineering Weekly — Newsletter hebdomadaire
- Seattle Data Guy — Chaîne YouTube
- Start Data Engineering — Tutoriels pratiques
🎓 Certifications
- Google Cloud Professional Data Engineer
- AWS Certified Data Engineer
- Databricks Certified Data Engineer
➡️ Prochaine étape
Maintenant que tu as une vue d’ensemble du Data Engineering, passons à la pratique !
👉 Module suivant : 02_bash_for_data_engineers — Maîtriser la ligne de commande
🎉 Félicitations ! Tu as terminé le premier module du parcours Data Engineering.
Comment ces rôles collaborent ?