Data engineering, notes de référence

Notes de data engineering en français, du plus général (stockage, modélisation, cohérence) au plus spécifique (lakehouse, dbt, gouvernance des données). Chaque note commence par un résumé, indique ses prérequis et renvoie à ses sources pour les affirmations les plus datées ou discutées. Point d’entrée : 00-Index/MOC Data Engineering.md, qui propose un ordre de lecture et un parcours par question. Le vocabulaire est défini dans 00-Index/Glossaire data engineering.md.

Les termes techniques sont gardés en anglais quand le métier les emploie tels quels (row group, partition pruning, object storage, manifest, watermark).

Public

Des personnes qui connaissent le SQL et veulent comprendre le « pourquoi » derrière les outils : analystes qui passent à l’ingénierie, ingénieurs qui reprennent les bases, équipes qui choisissent une architecture.

Organisation

DossierContenu
00-IndexCarte du vault, glossaire
01-Data-ModelingCohérence, normalisation, modèle dimensionnel, SCD
02-Data-ArchitectureMédaillon, idempotence, CDC, lakehouse, observabilité
03-dbtdbt, incrémental, monitoring, journal d’exécution
04-SQL-PatternsMotifs SQL
05-GouvernanceData mesh, data product, data contract
06-TestsScript de validation des exemples BigQuery

Niveaux et statuts

ÉtiquetteSens
backtobasicNotion de base ; les prérequis internes sont listés en tête de note
appliqueMise en pratique, décision d’architecture, ou notion qui suppose plusieurs bases
avanceGouvernance, organisation, ou sujet très spécialisé
StatutSens
consolidéRelu et confronté à des sources. Les éléments datés (versions, statuts de produits, prix) et le code non exécuté sur son moteur sont signalés dans la note
référence-périssableAnnexe qui vieillit vite (catalogue de modèles d’un package, définitions et points de vue)

La date updated est celle de la dernière révision éditoriale, pas d’une vérification de chaque fait.

Ce que ce vault couvre

Stockage et formats (OLTP et OLAP, colonnes, Parquet) ; cohérence (ACID, BASE) ; normalisation ; modèles Inmon, Kimball et Data Vault, schéma en étoile, SCD ; médaillon ; idempotence et backfill ; change data capture ; lakehouse (concepts, écosystème, maintenance, choix, une mise en œuvre sur Scaleway) ; dbt (bases, incrémental, lakehouse, monitoring BigQuery, journal d’exécution) ; observabilité ; data mesh, data product, data contract et ODCS ; un motif SQL (UNION ALL contre UNPIVOT).

Ce qu’il ne couvre pas encore

Orchestration, traitement par lots contre flux, SQL analytique de base (jointures, fonctions de fenêtrage), partitionnement et coût d’un entrepôt, ingestion (API, fichiers, connecteurs), sécurité et vie privée, CI/CD des pipelines.

Sources et vérification

  • Les affirmations les plus datées ou discutées sont sourcées en note de bas de page, de préférence par des sources primaires (spécifications, documentation officielle, articles fondateurs). Les notes de principes ne citent pas toujours chaque source.
  • Les sources secondaires (blogs, billets d’éditeurs) sont signalées comme telles.
  • Les exemples SQL standard ont été exécutés sur DuckDB.
  • Le script 06-Tests/bigquery_validation.sql rejoue dans un dataset jetable les exemples BigQuery des notes sur les schémas, le SCD de type 2, l’idempotence, le CDC et UNPIVOT, et vérifie chaque résultat avec ASSERT. Il a été exécuté sur BigQuery le 24 octobre 2026 et tous les tests sont passés. Le script adapte les noms de tables et joue la logique des exemples, pas leur texte au caractère près. La table externe sur GCS (section 6) n’a pas été exécutée.
  • Le SQL propre à Snowflake ou à SQL Server et les modèles dbt n’ont pas été exécutés : à tester avant usage.
  • Les statuts, versions et prix changent vite : se référer à la documentation en vigueur.

Exécuter le script BigQuery

Dans un projet de test, avec la ligne de commande bq :

bq query --use_legacy_sql=false --project_id=MON_PROJET < 06-Tests/bigquery_validation.sql

ou en collant le contenu du fichier dans la console BigQuery. Le script crée un dataset bq_vault_test, vérifie chaque résultat avec ASSERT, puis supprime le dataset. Il affiche TOUS LES TESTS SONT PASSÉS en cas de succès ; sinon, le message de l’ASSERT en échec indique l’exemple à corriger. Vérifier avant que le dataset bq_vault_test n’existe pas déjà dans le projet : le script le supprime à la fin.

Auteur et méthode de rédaction

Auteur : Camille Lebrun. Les notes ont été rédigées avec l’aide de l’IA, puis relues et améliorées : l’IA a servi à rechercher les sources, à produire des premières versions et à relire ; les choix éditoriaux et la validation finale restent ceux de l’auteur.

Licence

Texte sous CC BY-SA 4.0, code (SQL, YAML, dossier 06-Tests/) sous licence MIT : voir LICENSE.md. Les citations de tiers gardent leur licence d’origine.

Avertissement

Ce contenu est informatif. Il ne constitue pas un conseil technique, juridique ou de conformité (RGPD, par exemple) : valider auprès des professionnels concernés avant de l’appliquer.

Ce vault n’est affilié à aucun des éditeurs ou projets cités (dbt Labs, Snowflake, Google, Databricks, Scaleway, ClickHouse, projets de la fondation Apache, entre autres). Les noms de produits et de marques sont cités à titre informatif et appartiennent à leurs propriétaires.

Signaler une erreur

Une correction, une source plus récente ou un exemple qui ne fonctionne pas : à signaler à l’auteur, avec le nom de la note et la citation concernée.