← Blog
Fondamentaux Data

DataEngineering

Pipelines, ETL, data lakes, orchestration — le métier qui rend possible tout le reste de la donnée.

10 min de lectureAirflow · Spark · dbt · Kafka
🗄️Sources
⚙️Ingestion
🔧Transform
🏛️Stockage
📊BI / ML

On parle beaucoup de Data Science et d'IA, mais derrière chaque modèle ML qui tourne en production, derrière chaque dashboard qui s'actualise chaque matin, il y a un Data Engineer. Ce métier est encore méconnu — pourtant, c'est lui qui rend possible tout le reste.

🔧
Analogie : si la donnée est de l'eau, le Data Engineer est le plombier. Il pose les tuyaux, installe les filtres, surveille la pression et s'assure que l'eau arrive propre au bon robinet — quand on en a besoin, en quantité suffisante.

Le cycle de vie de la donnée

Chaque donnée suit un chemin balisé, de la source brute à la consommation métier.

01
🗄️
Sources
APIs, BDD, fichiers, events
02
⚙️
Ingestion
Collecte batch ou streaming
03
🔧
Transformation
Nettoyage, enrichissement
04
🏛️
Stockage
Entrepôt ou lac de données
05
📊
Consommation
BI, ML, apps métier
Sources
PostgreSQLS3REST APIKafka
Ingestion
FivetranAirbyteDebeziumKafka
Transformation
dbtSparkpandasSQL
Stockage
SnowflakeBigQueryDelta LakeS3
Consommation
TableauPower BIML ModelsAPIs

ETL vs ELT

Deux philosophies pour bouger et transformer la donnée.

🗄️
Extract
Source
🔧
Transform
Serveur ETL
🏛️
Load
Entrepôt
La transformation se fait sur un serveur dédié avant le chargement. La donnée brute n'est pas conservée — seul le résultat final est stocké.
OutilsTalend, Informatica, SSIS, Pentaho
Idéal pourDonnées sensibles, volumes modérés, transformations complexes avant chargement
Donnée brute conservée ?✗ Non conservée

Data Lake vs Data Warehouse

Deux approches complémentaires pour stocker la donnée à grande échelle.

🏞️
Data Lake
Stocke tout, dans n'importe quel format
  • JSON, CSV, Parquet, images, logs — pas de contrainte de format
  • Schéma défini à la lecture (schema-on-read)
  • Très flexible, coût de stockage faible
  • Moins performant pour les requêtes analytiques complexes
S3 / GCSDelta LakeApache IcebergHudi
🏛️
Data Warehouse
Schéma strict, optimisé pour les requêtes
  • Tables bien définies, schéma imposé à l'écriture
  • Index, partitions, clustering — requêtes ultra-rapides
  • Idéal pour la BI, le reporting et les dashboards
  • Moins adapté aux formats non structurés
SnowflakeBigQueryRedshiftDatabricks SQL
Data Lakehouse : la tendance actuelle (Databricks Delta Lake, Apache Iceberg) hybride les deux approches — flexibilité du lac et performances de l'entrepôt grâce à des formats transactionnels ACID stockés sur du cloud object storage.

Les outils incontournables

🕹️Orchestration
Planifier et surveiller l'exécution des pipelines
AirflowPrefectDagster
Traitement batch
Transformer de grands volumes de données
Apache Sparkdbtpandas
📡Streaming
Ingérer et traiter les données en temps réel
KafkaFlinkSpark Streaming
🏛️Stockage
Persister et interroger la donnée à grande échelle
SnowflakeBigQueryDelta Lake
🔌Ingestion
Connecter les sources sans code (ou via CDC)
FivetranAirbyteDebezium
Qualité des données
Valider la donnée et alerter sur les anomalies
Great Expectationsdbt testsSoda

Un pipeline de bout en bout

Airflow orchestre, dbt transforme, Snowflake stocke — un trio devenu standard.

Airflow + dbt + Snowflake · Pipeline E-commerce
# DAG Airflow — pipeline quotidien E-commerce
from airflow.decorators import dag, task
from airflow.operators.bash import BashOperator
from datetime import datetime

@dag(schedule="0 6 * * *", start_date=datetime(2026, 1, 1))
def pipeline_ecommerce():

    # 1. Ingestion des commandes depuis l'API (Extract + Load)
    ingestion = BashOperator(
        task_id="ingest_orders",
        bash_command="python /jobs/ingest_orders_api.py --date {{ ds }}",
    )

    # 2. Transformation avec dbt (Transform)
    transform = BashOperator(
        task_id="dbt_run",
        bash_command="dbt run --select orders+ --vars '{date: {{ ds }}}'",
    )

    # 3. Tests de qualité automatiques
    quality = BashOperator(
        task_id="dbt_test",
        bash_command="dbt test --select orders+",
    )

    ingestion >> transform >> quality  # dépendances déclaratives

pipeline_ecommerce()
💡
dbt run --select orders+ exécute le modèle orders et tous ses descendants. Airflow orchestre le déclenchement, dbt gère les dépendances SQL entre modèles.

Compétences clés

💻
Techniques
Le socle non-négociable
Python
SQL
Spark
Docker
Git / CI
🧮
Data
La couche métier
Modélisation
Orchestration
Qualité
Streaming
Cloud (AWS/GCP)

Data Engineer vs les autres rôles

🔧
Data Engineer
Pipelines, infrastructure, fiabilité de la donnée
SparkAirflowKafkaSnowflake
📐
Analytics Engineer
Transformation SQL, modélisation, exposition aux analystes
dbtSQLLookerMetabase
🔬
Data Scientist
Analyse, statistiques, modèles ML
Pythonpandasscikit-learnnotebooks
📊
Data Analyst
Reporting, dashboards, insights métier
SQLTableauPower BIExcel
📌
En pratique : dans les petites équipes, un seul profil couvre souvent plusieurs rôles. Le titre "Data Engineer" est parfois utilisé pour des profils qui font aussi de l'Analytics Engineering (dbt) ou du MLOps. L'important est de comprendre où on se situe dans la chaîne de valeur.

Le Data Engineering est un métier d'infrastructure au service de la donnée. Il exige la rigueur de l'ingénieur logiciel appliquée aux systèmes distribués. Ce qui le rend passionnant : il est au croisement de tout — système, base de données, cloud, métier. Chaque pipeline résout un vrai problème.

Commentaires

Soyez le premier à commenter cet article.

Laisser un commentaire

Votre commentaire sera visible après validation par l'administrateur.

0/2000
© 2026 Aboubacar Camara