Je teste, tu testes, dbt test
Aujourd’hui je vous partage mon point de vue sur les tests dans dbt.
En fait, pourquoi tester ? Et quoi tester ? On a construit un pipeline ETL qui fonctionne à merveille, on a fait les check-up manuellement, les KPIs sont les bons, toutes les colonnes sont bien là, le volume est bon. Bref, tout est bon.
La question en fait se pose plus tard, car oui tout valider pendant qu’on code un KPI, ça c’est relativement simple. En fait le sujet du test intervient une fois qu’on a crée le bon KPI comme on le voulait. Plus tard, on va toucher aux sources de données, aux modèles intermédiaires, et sauf temps infini on ne pas tester manuellement l’impact que ça a sur l’ensemble des modèles du pipeline.
Et donc les tests dans dbt servent à ça, non seulement ils vont vous faciliter la vie pour contrôler la qualité ce que vous produisez pendant que vous codez, mais ils vont également contrôler automatiquement que le moindre changement ne génère pas de régression, et ce dans l’ensemble de vos modèles. Adossé à une alerte par email / slack (l’outil que vous préférez), les tests dans dbt vous seront également très utiles pour vous assurer que les données qui rentrent n’ont pas tout cassé suite à un changement de structure, de contenu etc… Bref, dbt test est vos yeux, aujourd’hui, et demain, et tout le temps que le pipeline tournera.
Cette introduction faite (oui il m’aura fallu quelques paragraphes pour induire le sujet), voici quelques exemples de tests qu’il est utile de mener.
Tests sur les sources :
- contrôler le volume en entrée
- contrôler que les champs ne sont pas vides
- contrôler la date de mise à jour d’une table
Tests sur les modèles intermédiaires :
- contrôler que les champs ne sont pas vides
- contrôler les clés et leur exhaustivité
- contrôler le volume des tables
Tests sur les marts :
- contrôler qu’un champ a toujours une valeur
- contrôler qu’un champ ne contient que certaines valeurs parmi une liste
- contrôler d’un point de vue métier que les valeurs ne sont pas aberrantes
Voici les différents packages existants pour mettre en place vos tests :
- dbt test (inclus de base dans dbt)
- dbt-utils
- dbt-expectations
- dbt-elementary
Je ne suis pas rentré dans le détail, ce sera l’objet d’un prochain article. Vous avez néanmoins avec ces informations les bases qui vous seront utiles pour automatiser vos premiers tests et assurer une qualité des données tout au long de la chaîne analytique.
Datament vôtre,
Martin

Vous cherchez un Analytics Engineer ? Vous êtes au bon endroit.
J’ai plus de 8 ans d’expérience en tant qu’Analytics Engineer.
Des clients prestigieux m’ont fait confiance :
– Carrefour
– Accor
– Facebook
– Total…