Tests de qualité (assertions)
Les tâches de type assert permettent de valider la qualité des données directement dans le pipeline. Si la requête SQL retourne au moins une ligne, la tâche échoue.
Configuration
nodes:
verif_clients_sans_email:
type: assert
sql: sql/assert_clients_sans_email.sql
description: "Aucun client ne doit manquer d'email"
needs: [clients]
tags: [qualite, daily]
Écrire la requête
La requête doit retourner les lignes en violation. Si 0 lignes → OK. Si ≥1 lignes → ÉCHEC.
-- sql/assert_clients_sans_email.sql
-- Retourne les clients sans email — la tâche échoue si des lignes sont trouvées
SELECT id_client, nom
FROM {{ params.schema }}.clients
WHERE email IS NULL OR TRIM(email) = ''
Rapport d'erreur
En cas d'échec, Noria affiche un extrait des lignes en violation :
ExecutionError: Assert 'verif_clients_sans_email' FAILED:
query returned 3 violation row(s).
Sample: [{'id_client': 42, 'nom': 'Dupont'}, ...]
Ignorer une assertion non critique
verif_optionnelle:
type: assert
sql: sql/assert_soft_rule.sql
soft_fail: true # ne bloque pas le pipeline, log seulement