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 :


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)

Comment ces rôles collaborent ?

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│  Data Engineer  │ ──▶ │  Data Scientist │ ──▶ │  Data Analyst   │
│                 │     │                 │     │                 │
│ • Collecte      │     │ • Modélisation  │     │ • Visualisation │
│ • Pipelines     │     │ • Prédictions   │     │ • Reporting     │
│ • Infrastructure│     │ • ML/AI         │     │ • Insights      │
└─────────────────┘     └─────────────────┘     └─────────────────┘
        │                                               │
        └───────────── Feedback & Besoins ◀─────────────┘

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 ?

  1. Créer des modèles prédictifs
  2. Visualiser les données dans Power BI
  3. Concevoir et maintenir des pipelines de données
  4. 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” ?

  1. Transfer
  2. Trigger
  3. Transform
  4. 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 ?

  1. ELT ne fait pas de transformation
  2. ELT transforme les données après les avoir chargées
  3. ETL est utilisé uniquement pour les fichiers CSV
  4. 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 ?

  1. Apache Kafka
  2. Apache Airflow
  3. Tableau
  4. PostgreSQL
💡 Voir la réponse

Réponse : b — Apache Airflow est un outil d’orchestration de pipelines.


❓ Q5. Le traitement batch consiste à :

  1. Traiter les données en continu
  2. Traiter les données en petits lots à la volée
  3. Traiter les données par groupe, à intervalle régulier
  4. 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 ?

  1. Une erreur dans la chaîne ETL
  2. Une combinaison hybride entre ETL et ELT
  3. Une technique de transfert via email
  4. 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 :

  1. Recharger les données sources depuis le warehouse
  2. Supprimer les données invalides dans un lac de données
  3. Pousser les données du data warehouse vers les outils métiers
  4. 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

🌐 Sites & Blogs

🎓 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.

Retour au sommet