Maitriser les pipelines de donnees, ETL, Spark, Kafka et l'ecosysteme big data pour orchestrer les flux de donnees en entreprise.
Description du métier
Le Data Engineer est le bâtisseur de l'infrastructure des données en entreprise. Son rôle consiste à concevoir, construire et maintenir les pipelines qui collectent, transforment et livrent la donnée aux équipes analytiques, aux Data Scientists et aux applications métier.
Contrairement au Data Scientist qui exploite la donnée, le Data Engineer la prépare et l'achemine. Il garantit la disponibilité, la fiabilité et la qualité des données à grande échelle.
Ses missions au quotidien :
- Concevoir et développer des pipelines ETL/ELT (Extract, Transform, Load)
- Ingérer des flux de données en temps réel (streaming) ou en batch
- Modéliser les entrepôts de données (Data Warehouse, Data Lake, Data Lakehouse)
- Assurer la qualité et la cohérence des données (data quality, data lineage)
- Optimiser les performances des requêtes SQL à grande échelle
- Orchestrer les workflows de données avec des outils comme Apache Airflow
- Collaborer avec les Data Scientists pour rendre les modèles ML productionnables
Compétences techniques essentielles
Python — le langage central
Python est le langage de référence du Data Engineer. Il sert à écrire les pipelines, interagir avec les APIs de données, et manipuler les datasets.
# Exemple de pipeline ETL simple avec pandas et SQLAlchemy
import pandas as pd
from sqlalchemy import create_engine
# Extract : lecture depuis un CSV source
df = pd.read_csv('raw_sales_2026.csv')
# Transform : nettoyage et enrichissement
df['date'] = pd.to_datetime(df['date'])
df = df.dropna(subset=['customer_id', 'amount'])
df['revenue_eur'] = df['amount'] * df['exchange_rate']
df['year_month'] = df['date'].dt.to_period('M').astype(str)
# Load : écriture dans PostgreSQL
engine = create_engine('postgresql://user:pass@host/datawarehouse')
df.to_sql('sales_cleaned', engine, if_exists='replace', index=False)
print(f"{len(df)} lignes chargées avec succès.")
Apache Spark — traitement distribué
Spark est incontournable dès que les volumes de données dépassent ce qu'une machine unique peut traiter. Il permet le traitement parallèle sur des clusters.
# PySpark : traitement distribué d'un dataset de plusieurs Go
from pyspark.sql import SparkSession
from pyspark.sql.functions import col, sum, avg, window
spark = SparkSession.builder.appName("SalesAnalysis").getOrCreate()
# Lecture depuis HDFS ou S3
df = spark.read.parquet("s3://my-data-lake/sales/2026/")
# Agrégation distribuée
result = (
df
.filter(col("status") == "completed")
.groupBy("region", "product_category")
.agg(
sum("revenue").alias("total_revenue"),
avg("order_value").alias("avg_order")
)
.orderBy(col("total_revenue").desc())
)
result.write.mode("overwrite").parquet("s3://my-data-lake/aggregated/sales_by_region/")
spark.stop()
Apache Kafka — streaming temps réel
Kafka est la plateforme de streaming distribuée qui permet d'ingérer des millions d'événements par seconde. Le Data Engineer l'utilise pour construire des architectures event-driven.
# Producteur Kafka en Python
from kafka import KafkaProducer
import json, time
producer = KafkaProducer(
bootstrap_servers=['kafka:9092'],
value_serializer=lambda v: json.dumps(v).encode('utf-8')
)
# Envoi d'événements de clics utilisateur
for i in range(1000):
event = {
"user_id": f"u_{i}",
"action": "product_view",
"product_id": f"p_{i % 50}",
"timestamp": time.time()
}
producer.send('user-events', value=event)
producer.flush()
print("1000 événements envoyés vers Kafka")
SQL avancé et modélisation
La maîtrise du SQL avancé (fenêtres, CTE, partitionnement) est indispensable pour optimiser les requêtes sur des entrepôts comme BigQuery, Redshift ou Snowflake.
-- Calcul du revenu cumulé mensuel par région (window function)
WITH monthly_sales AS (
SELECT
region,
DATE_TRUNC('month', order_date) AS month,
SUM(revenue) AS monthly_revenue
FROM orders
WHERE status = 'completed'
GROUP BY 1, 2
)
SELECT
region,
month,
monthly_revenue,
SUM(monthly_revenue) OVER (
PARTITION BY region
ORDER BY month
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
) AS cumulative_revenue
FROM monthly_sales
ORDER BY region, month;
Outils et stack Data
L'écosystème Data est riche. Voici les outils incontournables organisés par domaine :
Orchestration :
- Apache Airflow — orchestrateur de workflows DAG, standard de l'industrie
- Prefect — alternative moderne, Python-native, plus facile à prendre en main
- Dagster — orienté assets, très bon pour la data observability
Stockage et entrepôts :
- Amazon Redshift / Google BigQuery / Snowflake — Data Warehouses cloud OLAP
- Apache Hudi / Delta Lake / Apache Iceberg — formats Data Lakehouse
- PostgreSQL / MySQL — bases transactionnelles (sources)
- MongoDB / Cassandra — stockage NoSQL pour données non structurées
Ingestion et streaming :
- Apache Kafka — streaming distribué haute performance
- Apache Flink — traitement de flux stateful en temps réel
- Airbyte / Fivetran — outils ELT no-code/low-code pour connecteurs sources
- Debezium — CDC (Change Data Capture) pour répliquer les changements DB
Traitement et transformation :
- Apache Spark / PySpark — traitement distribué batch et streaming
- dbt — transformation SQL versionnable et testable
- Pandas / Polars — manipulation de données en mémoire
Salaire et marché de l'emploi
Le Data Engineer est l'un des profils les plus recherchés sur le marché tech en 2026. La demande est largement supérieure à l'offre.
| Expérience | Salaire brut annuel (France) | Salaire brut annuel (Paris) |
|---|---|---|
| Junior (0–2 ans) | 40 000 – 52 000 € | 46 000 – 58 000 € |
| Confirmé (3–5 ans) | 54 000 – 70 000 € | 62 000 – 80 000 € |
| Senior (6+ ans) | 72 000 – 95 000 € | 80 000 – 110 000 € |
| Staff / Principal | 95 000 – 130 000 € | 700 – 1 000 €/jour TJM |
- Tension forte sur le marché : les entreprises peinent à recruter des profils qualifiés
- Le remote est quasi systématique pour ce profil
- Les certifications cloud (AWS, GCP) valorisent significativement le profil
- Le freelance est très accessible dès 3 ans d'expérience (TJM 600–1000 €)
- Les secteurs finance, e-commerce et santé offrent les meilleures rémunérations
Évolution de carrière
Le Data Engineer dispose de plusieurs trajectoires d'évolution selon ses appétences :
- Senior Data Engineer — maîtrise des architectures complexes, référent technique
- Staff / Principal Data Engineer — influence sur la stratégie data de l'entreprise
- Data Architect — conception d'architectures data globales (Lake, Warehouse, Mesh)
- Head of Data / Data Engineering Manager — management d'équipes data
- MLOps Engineer — spécialisation sur la mise en production des modèles ML
- Data Platform Engineer — construction des plateformes internes de données