AccueilBlogTest technique Data Contracts : implémenter avec dbt et OpenAPI
Guide recrutement data

Test technique Data Contracts : implémenter avec dbt et OpenAPI

Les data contracts formalisent les engagements entre producteurs et consommateurs de données. En 2025, c est un sujet d entretien Senior qui différencie les profils avec une vraie culture de gouvernance.

Data Builder·Juin 2025·6 min de lecture·Analytics Engineer · Data Engineer
Sommaire
  1. Qu est-ce qu un data contract
  2. Composants d un contract
  3. Implémenter avec dbt
  4. Schema versioning
  5. Processus organisationnel
  6. Outils et frameworks
  7. Grille

1Définition et valeur ajoutée

Question discriminante

Qu est-ce qu un data contract ? Quel problème concret résout-il ?

2Les 4 composants d un data contract

Question discriminante

Quels éléments doit contenir un data contract complet ?

# data-contract.yaml (format standard emergent) apiVersion: v2.0.0 kind: DataContract id: orders-v2 info: title: Orders Dataset version: 2.1.0 owner: equipe-commerce contact: data-commerce@entreprise.com schema: type: dbt path: models/marts/commerce/fct_orders.sql fields: - name: order_id type: string required: true unique: true - name: amount type: float minimum: 0 - name: status type: string enum: [completed, pending, cancelled] quality: freshness: 1h # données fraîches dans l heure completeness: 99.9% # moins de 0.1% de nulls sur order_id terms: usage: Données internes uniquement noticePeriod: 30 jours avant breaking change

3Implémenter avec dbt

Question discriminante

Comment utilisez-vous dbt pour enforcer un data contract ?

sources: - name: commerce freshness: warn_after: {count: 12, period: hour} error_after: {count: 24, period: hour} tables: - name: orders loaded_at_field: updated_at columns: - name: order_id tests: [not_null, unique] - name: status tests: - accepted_values: values: [completed, pending, cancelled]

4Schema versioning : gérer les breaking changes

Question discriminante

Comment gérez-vous une breaking change sur un dataset qui a des consommateurs ?

5Processus organisationnel

Question discriminante

Comment convainquez-vous une équipe de mettre en place des data contracts ?

6Outils et frameworks en 2025

7Grille par niveau

NiveauMaitriseSignal GONO-GO
ConfirméComprend le concept, sait qu un test dbt est une forme de contractPeut expliquer pourquoi les data contracts existent, a mis des tests dbt en placeN a jamais entendu parler de data contracts
SeniorA formalisé des contracts YAML, gère le versioning, communique les breaking changesA mis en place des contracts sur des datasets critiques, gère la dépréciationNe sait pas comment gérer une breaking change sans casser les consommateurs

Vous recrutez un Analytics Engineer Senior ?

Premier entretien gratuit. Rapport GO/NO-GO sous 48h.