+45 XP

Data contracts : le nouveau standard des accords de qualité entre équipes

Vos pipelines de données cassent. Pas à cause de bugs. Parce que personne ne s'est mis d'accord sur ce à quoi la donnée devait ressembler avant de la construire.

Le data contract est la solution, et c'est l'une des innovations de gouvernance les plus pratiques des cinq dernières années.

Le problème que les data contracts résolvent

Dans une organisation data classique, le trajet de la donnée depuis la source jusqu'au consommateur ressemble à ceci :

  1. Un ingénieur de production ajoute un nouveau champ à la réponse de l'API de checkout
  2. Il oublie (ou ignore) qu'un pipeline de données en aval dépend du schéma existant
  3. Le pipeline casse silencieusement : il traite la donnée mais produit des résultats incorrects
  4. Trois semaines plus tard, un analyste métier remarque que les chiffres de revenus semblent faux
  5. L'équipe data passe deux jours à débugger sur six systèmes pour trouver la source

Cela arrive partout, chaque semaine, dans toute organisation dotée d'une infrastructure data non triviale. Ce n'est pas un problème humain. C'est un problème d'architecture : il n'existe aucun accord formel entre les producteurs de données (les équipes d'ingénierie qui construisent les systèmes sources) et les consommateurs de données (les équipes data qui construisent les pipelines et l'analytics).

Un data contract est cet accord. Il précise :

  • Schéma : la structure de la donnée, les noms de champs, les types, le caractère nullable
  • Sémantique : ce que signifie chaque champ, les définitions métier, pas seulement les noms techniques
  • SLA de qualité : les seuils minimaux de qualité, complétude, fraîcheur, validité
  • Ownership : qui est responsable de la donnée (producteur) et qui la consomme
  • Gestion du changement : comment et quand les changements de schéma seront communiqués

Quand l'ingénieur de production ajoute ce nouveau champ, le data contract est mis à jour. Le changement déclenche des tests automatisés. Le pipeline est mis à jour avant de casser. Le dashboard de l'analyste ne voit jamais le problème.

Data Contracts: The Missing Piece of the Data Puzzle

Watch on YouTube

Vérification des acquis

1. D'après la leçon, quelle est la cause racine fondamentale du scénario de casse de pipeline décrit (un ingénieur ajoute un champ, le pipeline casse silencieusement) ?

2. Dans le contexte des data contracts, que précise l'élément « Sémantique » que le « Schéma » ne précise pas ?

3. Pourquoi la leçon recommande-t-elle de stocker un data contract sous forme de fichier YAML ou JSON dans le gestionnaire de versions (Git), aux côtés du code producteur ?

CHOIX MULTIPLES

4. Sélectionnez TOUS les éléments qu'un data contract précise habituellement, d'après la leçon.

Sélectionnez toutes les réponses correctes.

CHOIX MULTIPLES

5. Sélectionnez TOUTES les affirmations qui décrivent correctement comment un data contract empêche le scénario de casse silencieuse.

Sélectionnez toutes les réponses correctes.

Anatomie d'un data contract

Un data contract est le plus souvent un fichier YAML ou JSON stocké dans le gestionnaire de versions (Git), aux côtés du code qui produit la donnée. Un exemple simplifié préciserait :

  • contract.name : checkout_events
  • contract.owner : ecommerce-platform-team
  • contract.consumers : data-analytics-team, marketing-team
  • contract.schema : order_id (string, required), order_amount_eur (decimal, required, "Total en EUR TTC hors livraison")
  • contract.quality_sla : complétude 99,5 %, fraîcheur ≤15 min, aucune valeur order_id nulle
  • contract.change_policy : préavis de 14 jours, les breaking changes requièrent consumer_approval

Quand ce contrat est violé, que order_amount_eur contient des valeurs nulles, ou que la fraîcheur dépasse 15 minutes, une alerte se déclenche. L'équipe productrice est notifiée. Les consommateurs ne sont pas surpris par une qualité de données dégradée : ils sont notifiés de la violation.

Le programme interne de data contracts de Shopify

Shopify a déployé un programme interne de data contracts à l'échelle de toute sa plateforme data. Leur approche : tout jeu de données servi par leur plateforme data interne doit avoir un contrat. Les équipes qui consomment de la donnée sans contrat ne peuvent pas tenir les producteurs pour responsables de la qualité. Les équipes qui produisent de la donnée sans contrat ne peuvent pas prétendre que les consommateurs en aval l'utilisent correctement.

Le résultat : une réduction significative des incidents de pipeline causés par le schema drift, un modèle de responsabilité plus clair sur la qualité des données, et une analyse des causes racines plus rapide quand un problème survient.

Mettre en place des data contracts : par où commencer

N'essayez pas de tout contractualiser d'un coup. Identifiez les cinq flux de données les plus critiques pour le business, ceux dont la défaillance fait le plus mal. Contractualisez ceux-là d'abord. Servez-vous de l'expérience pour affiner votre template de contrat et votre processus de gestion du changement. Puis passez à l'échelle.

Les outils du domaine : Soda (test de contrats), Great Expectations (validation de la qualité des données), Gable.ai (plateforme de gestion de data contracts), dbt contracts (intégré à dbt pour la couche de transformation). L'outillage mûrit vite, choisissez selon l'endroit de votre stack où vous voulez faire appliquer les contrats.

À faire, tiré de cette leçon

Ces actions sont compilées dans le plan d'action du rôle.

  • Mettre en place des data contracts d'abord sur les cinq flux de données les plus critiques pour le business
Voir le plan d'action complet →

Articles liés

Les articles récents du blog qui s'appuient sur cette leçon.