Skip to main content

Qualité

La méga-brick Qualité enchaîne plusieurs contrôles sur les données, dans l'ordre déclaré : valider une colonne selon une règle (validate) ou détecter une correspondance de texte (match).

Elle remplace les anciennes bricks Validate Format et Match (voir Bricks héritées). La comparaison de deux flux reste une brick séparée : Compare.

EntréesSorties
in : le flux de donnéesout : le flux contrôlé

validate : valider une colonne​

Applique une règle de validation à une colonne. Selon on_fail, les lignes invalides sont marquées d'une colonne booléenne, retirées du flux ou simplement comptées dans les logs.

ParamètreTypeDéfautDescription
columnstring—Colonne à valider.
checkstringnot_nullRègle : not_null, regex, range, in_set.
patternstring—Expression régulière (pour check: regex).
min / maxnombre—Bornes incluses (pour check: range ; l'une des deux suffit).
allowed_valuesliste—Valeurs autorisées (pour check: in_set).
on_failstringflagAction : flag (colonne booléenne), remove (supprime les lignes invalides), log_only (compte dans les logs).
output_namestring<colonne>_validNom de la colonne booléenne (mode flag).
note

Pour check: range, les valeurs sont converties en numérique ; une valeur non convertible est considérée invalide. Pour regex, le motif est ancré au début de la valeur (comportement re.match).

Avant :

email
a@ex.fr
invalide

Après (check: regex, pattern: ".+@.+", on_fail: flag, output_name: email_valid) :

emailemail_valid
a@ex.frtrue
invalidefalse

Avec on_fail: remove, seule la ligne a@ex.fr resterait.

match : détecter une correspondance​

Ajoute une colonne booléenne indiquant si la valeur correspond à un motif : contient, commence par, finit par ou expression régulière.

ParamètreTypeDéfautDescription
columnstring—Colonne à tester.
patternstring—Motif recherché (requis ; sans lui, l'opération est ignorée).
modestringcontainsMode : contains, startswith, endswith, regex (motif ancré au début de la valeur, comme pour validate). En mode contains, le motif est lui aussi interprété comme une expression régulière : échappez les caractères spéciaux (., (, +…) pour une recherche littérale.
case_sensitivebooléenfalseRespecter la casse.
output_namestring<colonne>_matchNom de la colonne booléenne.

Avant :

label
Ticket urgent
RAS

Après (pattern: "urgent", mode: contains, output_name: is_urgent) :

labelis_urgent
Ticket urgenttrue
RASfalse

Bonnes pratiques​

  • Flag d'abord, remove ensuite : en développement, préférez on_fail: flag pour inspecter les lignes rejetées avant de passer à remove.
  • Routez les invalides : combinez un validate en mode flag avec la brick Route pour envoyer les lignes invalides vers un flux de rejet (fichier, notification…).
  • log_only pour la supervision : le décompte d'invalides apparaît dans les logs d'exécution sans modifier le flux, utile pour surveiller une source sans bloquer le pipeline (voir Détail d'une exécution).

Voir aussi : Bricks héritées.