Ce test sépare le vrai analytics engineer de celui qui « a écrit des modèles ». On donne un modèle dbt bancal (table en dur, aucun test) et on demande de le refactorer et de le tester. Ce que le candidat ajoute révèle son réflexe fiabilité. Corrigé inclus.
Le cœur du test : remplacer les tables en dur par des ref()/source() (pour le lineage) et ajouter des tests (unicité, non-nul). Un candidat qui ne teste pas fait du SQL, pas de l'analytics engineering.
« Ce modèle marche mais est fragile. Refactore-le et ajoute des tests. »
Un modèle typique de débutant : un nom de table écrit en dur (qui casse le lineage) et aucun test. Le candidat doit repérer les deux problèmes.
-- models/clients_actifs.sql (version fragile)
SELECT id, nom, pays
FROM analytics.clients -- table en dur : casse le lineage
WHERE statut = 'actif'ref/sources + tests, la vraie valeur de dbt.
Un bon candidat remplace la table en dur par une source, puis ajoute des tests dans le fichier YAML. C'est ce qui garantit que le modèle ne casse pas ce qui est en aval.
-- models/clients_actifs.sql
SELECT id, nom, pays
FROM {{ source('crm', 'clients') }} -- source declaree, lineage OK
WHERE statut = 'actif'
-- models/schema.yml
models:
- name: clients_actifs
columns:
- name: id
tests: [unique, not_null] -- garantit l'integrite
- name: pays
tests: [not_null]Signal d'alerte : le red flag : un candidat qui refactore le SQL mais n'ajoute aucun test. Sans tests, rien ne garantit qu'un changement ne cassera pas les rapports en aval — c'est exactement ce que dbt est censé apporter.
Le réflexe fiabilité, pas la syntaxe.
On note surtout la présence des tests et l'usage de ref/sources. Un candidat qui y pense spontanément a la bonne culture d'analytics engineering.
| Niveau | Maîtrise attendue | Signal GO | NO-GO |
|---|---|---|---|
| Junior | Refactore le SQL | Nettoie et clarifie le modèle | Garde un nom de table en dur |
| Confirmé | Utilise ref/sources | Reconstruit le lineage | N'ajoute aucun test |
| Senior | Ajoute des tests pertinents | Garantit la non-régression aval | Teste pour la forme, sans logique |
| Lead | Pense CI, doc, conventions | Intègre le modèle dans un pipeline fiable | Confond dbt et écrire du SQL |
Data Builder mène l'entretien technique et vous livre un rapport clair et détaillé sous 24h. Premier entretien offert.