AccueilBlogTest technique Analytics Engineer
Tests prêts à l'emploi

Test technique Analytics Engineer : dbt + SQL + modélisation (cas complet)

Ce test évalue l'Analytics Engineer sur son cœur de métier : transformer une donnée brute en une couche analytique fiable, testée et documentée. On donne des sources brutes et on demande une modélisation dbt complète. Corrigé et grille inclus — c'est le test le plus proche de votre offre.

Data Builder·Juillet 2025·12 min de lecture·Test métier complet · Analytics Engineer · cas complet

Le fil rouge : la rigueur. On ne juge pas seulement un SQL qui sort le bon chiffre, mais une architecture en couches, des tests de non-régression et de la documentation. C'est ce qui sépare l'analytics engineer du profil « SQL déguisé ».

1Le brief et les sources

La consigne

« À partir de ces sources brutes, construis une couche analytique fiable du CA par pays. »

On fournit deux sources brutes non nettoyées. Le candidat doit livrer une modélisation dbt complète : staging, mart, tests et un minimum de documentation.

raw.commandes(id, client_id, montant, date_commande, statut) -- non nettoyee raw.clients(id, pays, date_inscription) -- non nettoyee

    2Le corrigé — modélisation en couches

    La consigne

    Staging pour nettoyer, mart pour la logique métier.

    Un bon candidat isole le nettoyage de chaque source en staging, puis compose la logique métier en mart avec ref(). C'est la structure attendue d'un projet dbt mûr.

    -- staging/stg_commandes.sql SELECT id, client_id, montant FROM {{ source('raw','commandes') }} WHERE statut = 'payee' -- marts/ca_par_pays.sql SELECT cl.pays, SUM(co.montant) AS ca FROM {{ ref('stg_commandes') }} co JOIN {{ ref('stg_clients') }} cl ON cl.id = co.client_id GROUP BY cl.pays
    • Un modèle stg_ par source (nettoyage isolé).
    • Un mart qui compose via ref() (CA par pays).
    • Filtre métier explicite (commandes payées).

    3Le corrigé — tests et documentation

    La consigne

    La rigueur qui fait la valeur de l'analytics engineer.

    La partie décisive : le candidat ajoute des tests (unicité, non-nul, cohérence) et documente. Sans cela, c'est du SQL, pas de l'analytics engineering.

    # marts/schema.yml models: - name: ca_par_pays description: "CA des commandes payees, agrege par pays." columns: - name: pays tests: [not_null] - name: ca tests: [not_null]
    • Tests sur les clés et les colonnes critiques.
    • Documentation minimale des modèles et colonnes.
    • Le candidat explique comment il garantit la non-régression aval.

    Signal d'alerte : le vrai marqueur : le candidat ajoute des tests et de la documentation spontanément, sans qu'on ait à le demander. C'est exactement ce qui distingue un analytics engineer d'un profil qui « fait du SQL ». Sans tests, la note plafonne.

    4Grille par niveau

    NiveauMaîtrise attendueSignal GONO-GO
    JuniorÉcrit le SQL de transformationSort le bon résultatUn seul modèle, table en dur
    ConfirméStructure en staging/martCompose proprement avec ref()N'ajoute aucun test
    SeniorAjoute tests et documentationGarantit la non-régression avalModélise sans tester
    LeadDéfinit conventions et CILivre une couche fiable et réutilisableConfond dbt et écrire du SQL

    Vous recrutez un profil data ?

    Data Builder mène l'entretien technique et vous livre un rapport clair et détaillé sous 24h. Premier entretien offert.

    Tester gratuitementRéserver un appel