Comment se préparer à un entretien Analytics Engineer
Les entretiens pour un poste d'Analytics Engineer combinent questions techniques (SQL, dbt, architecture) et questions de contexte métier. Les recruteurs cherchent quelqu'un qui sait écrire du SQL élégant ET qui comprend pourquoi les données qu'il transforme servent les équipes métier. Voici les 15 questions les plus fréquemment posées.
Questions SQL
1. Quelle est la différence entre une window function et un GROUP BY ?
Le GROUP BY agrège les lignes et réduit le nombre de lignes en sortie. Une window function effectue un calcul sur un ensemble de lignes en relation avec la ligne courante, sans réduire le nombre de lignes. Par exemple, SUM(revenue) OVER (PARTITION BY customer_id ORDER BY date) calcule un cumul glissant par client.
2. Comment optimiser une requête SQL lente sur Snowflake ou BigQuery ?
Éviter les SELECT *, utiliser le partitionnement et le clustering pour réduire les données scannées, éviter les jointures sur des colonnes non indexées, et préférer les CTEs aux sous-requêtes imbriquées pour la lisibilité et la performance.
3. Qu'est-ce qu'une CTE et quand l'utiliser ?
Une CTE (Common Table Expression) est une sous-requête nommée définie avec WITH nom AS (...). Elle améliore la lisibilité en décomposant une requête complexe en étapes nommées. Dans dbt, les modèles SQL utilisent quasi-systématiquement des CTEs.
Questions dbt
4. Comment structurez-vous un projet dbt ?
Staging (stg_) pour le nettoyage des sources, intermediate (int_) pour les transformations métier, marts (fct_ et dim_) pour les tables analytiques finales. Chaque couche a un rôle précis et les dépendances vont dans un seul sens.
5. Quelle est la différence entre un modèle dbt en table, vue et incremental ?
Une vue est recalculée à chaque requête. Une table est recalculée entièrement à chaque run. Un modèle incremental n'ajoute que les nouvelles lignes depuis le dernier run - indispensable pour les tables volumineuses.
6. Qu'est-ce que le ref() dans dbt et pourquoi est-il important ?
{{ ref('model_name') }} crée des dépendances entre modèles. Il permet à dbt de construire un DAG et d'exécuter les modèles dans le bon ordre. Il gère aussi les noms de tables selon l'environnement (dev / prod).
7. Comment gérez-vous les tests dans dbt ?
Tests natifs (unique, not_null, accepted_values, relationships) déclarés en YAML sur chaque modèle, complétés par dbt-expectations pour les cas avancés. Les tests doivent être intégrés dans la CI/CD pour bloquer les merges en cas d'échec.
Questions d'architecture
8. Expliquez le star schema et son intérêt analytique.
Le star schema sépare faits et dimensions, simplifie les requêtes analytiques, améliore les performances et rend les données lisibles pour les Data Analysts qui interrogent directement l'entrepôt.
9. Quelle est la différence entre ELT et ETL ?
Dans l'ETL (historique), les données sont transformées avant d'être chargées. Dans l'ELT (modern data stack), les données brutes sont d'abord chargées dans le warehouse puis transformées en place - c'est ce que fait dbt.
10. Comment gérez-vous les Slowly Changing Dimensions ?
Les SCD Type 2 sont gérées avec les snapshots dbt. On définit la colonne de version et la stratégie de détection des changements ; dbt gère automatiquement les colonnes dbt_valid_from et dbt_valid_to.
Questions de contexte et soft skills (11 à 15)
Les questions 11 à 15 évaluent votre capacité à collaborer, prioriser et communiquer : comment travaillez-vous avec les Data Analysts ? Comment priorisez-vous les demandes concurrentes ? Comment documentez-vous vos modèles pour les équipes non-techniques ? Décrivez un incident de données que vous avez résolu. Comment onboardez-vous un nouveau Data Analyst sur votre warehouse ?
Ces réponses valorisent la proactivité dans la documentation, la collaboration avec les stakeholders et la pédagogie technique. Ada Formation intègre ces mises en situation dans ses projets pratiques.





