Créer des tests singuliers

dbt intermédiaire

Mike Metzger

Data Engineer

Qu'est-ce qu'un test singulier ?

  • Test de données personnalisé
  • Écrit comme une requête SQL
    • Doit retourner les lignes en échec
  • Défini comme fichier .sql dans les répertoires tests

Image d'un test

1 Photo par Antoine Dautry sur Unsplash
dbt intermédiaire

Exemple de test singulier

  • Créez un test pour vérifier :
    • order_total >= subtotal
select *
from order
where order_total < subtotal
  • Rappel : nous voulons les lignes qui échouent. Si des lignes sont renvoyées, le test échoue.
  • Enregistrez le fichier sous assert_order_total_gte_subtotal.sql

Schéma de la table order

dbt intermédiaire

Test singulier avec Jinja

  • On peut utiliser Jinja dans nos tests
    • Fonction ref
    • D'autres au besoin
  • dbt remplace la sortie au moment de l'exécution du test
    • Relancez le projet si votre profil dbt change
select *
from {{ ref('order') }}
where order_total < subtotal
dbt intermédiaire

Débogage des tests

  • Utilisez un éditeur SQL pour créer la requête initiale
  • Placez la requête dans le bon fichier
  • Donnez un nom unique au test
  • Utilisez l'option dbt test --select <testname>
  • Vérifiez les erreurs et mettez à jour au besoin
dbt intermédiaire

Passons à la pratique !

dbt intermédiaire

Preparing Video For Download...