🎯 Objectif
Mettre en place une stratégie de tests ciblés, efficaces et synchronisés avec les rythmes de mise à jour des données.
🔧 Problème courant
Tu as plusieurs sources de données dans ton entrepôt :
Source | Fréquence de mise à jour |
---|---|
ERP (finance) | chaque nuit à 3h |
CRM (clients) | toutes les heures |
Web analytics | toutes les 10 minutes |
👉 Si tu lances tous tes tests après chaque run, tu perds du temps et des ressources, surtout pour les sources qui ne changent pas souvent.
✅ Solution : Layered Testing + planning par source
🔁 Layered testing (tests par couches) signifie :
Couche de test | Description |
---|---|
🔹 Source-level | Vérifie que les données brutes sont correctes (freshness , not_null , accepted_values sur les sources ) |
🔸 Staging-level | Vérifie les transformations simples (formatage, mapping, etc.) |
🔺 Business-level | Vérifie les KPIs, ratios, calculs métiers dans les modèles finaux (fct_ , mart_ , etc.) |
⏱️ Planning par source (source-specific schedules)
Tu peux configurer ton pipeline CI/CD ou orchestrateur (Airflow, dbt Cloud, Dagster…) pour :
- exécuter les tests CRM toutes les heures
- exécuter les tests ERP seulement après 3h du matin
- exécuter les tests Web toutes les 15 minutes
📁 Exemple d’organisation dans dbt Cloud ou Airflow
Schedule | Sélecteur dbt | Contenu du test |
---|---|---|
Toutes les 15 min | source:ga4 + tag:web | Tests freshness et not_null sur stg_web_events |
Toutes les heures | source:crm + tag:clients | Tests stg_clients , dim_clients |
Chaque nuit (3h30) | source:erp + tag:finance | Tests stg_factures , fct_resultats |
🔍 Avantages de cette stratégie
Bénéfice | Détail |
---|---|
🎯 Tests ciblés | Tu testes uniquement ce qui a été mis à jour |
⚡ Meilleure performance | Tu évites de lancer des centaines de tests inutilement |
🧩 Meilleure traçabilité | En cas d’erreur, tu sais quelle couche ou quelle source est en cause |
🔒 Couverture complète | Tu gardes un haut niveau de qualité sans sacrifier les performances |
✅ Résumé
En combinant des tests organisés par couches (layered) avec des plannings adaptés à chaque source, tu obtiens une stratégie de validation robuste, performante et maintenable dans dbt.
Tu testes au bon moment, au bon endroit, avec une logique claire d’impact et de responsabilité.