Actions
Les actions sont des composants pass-through (1 entrée → 1 sortie) : le DataFrame ressort inchangé, l'action est un effet de bord : alerter, valider, capturer, marquer. Elles s'intercalent n'importe où sur un flux sans le modifier, ce qui en fait l'outil naturel du contrôle qualité en cours de pipeline.
| Composant | Effet | Bloquant ? |
|---|---|---|
Alerte (a_alert) | Envoie une notification conditionnelle | Non |
Assertion (a_assert) | Vérifie des invariants sur le flux | Oui, plante si violé |
Instantané (a_snapshot) | Sauvegarde l'état du flux dans un storage | Non |
Étiqueter l'exécution (a_tag) | Pose un tag sur l'exécution (monitoring) | Non |
Alerte
Alerte envoie une notification (mail SMTP, Slack ou webhook, selon la connexion référencée) quand une condition est satisfaite par le flux, sans interrompre le pipeline.
| Paramètre | Défaut | Description |
|---|---|---|
connection_id | — | Connexion de notification, SMTP ou webhook (requis). |
trigger_condition | — | Condition pandas (query string), ex. errors > 0. Vide = toujours alerter. |
min_matches | 1 | Nombre minimum de lignes satisfaisant la condition pour déclencher l'alerte. |
subject | [Fluhoms] Alerte pipeline | Sujet du message, variables ${run.id} et ${prj.X} supportées. |
body | Alerte déclenchée : {n} ligne(s)… | Corps du message (markdown), variables runtime + {n} = nombre de lignes en correspondance. |
severity | warning | Niveau : info, warning ou error (préfixe le sujet des mails ; transmis dans la charge utile des webhooks). |
L'envoi est best-effort : un échec d'envoi (ou une condition invalide) est loggué mais ne fait jamais échouer le pipeline.
Cas d'usage : signaler un seuil dépassé (montant > plafond), un volume
anormal, des rejets de validation, tout en laissant le flux continuer.
Assertion
Assertion vérifie des invariants sur le flux et fait échouer le pipeline si l'un d'eux est violé ; toutes les violations sont listées dans l'erreur. Si tout passe, le flux ressort inchangé.
| Paramètre | Défaut | Description |
|---|---|---|
min_rows | 0 | Échoue si le flux compte moins de lignes (0 = pas de vérification). |
max_rows | 0 | Échoue si le flux compte plus de lignes (0 = pas de vérification). |
required_columns | [] | Échoue si l'une de ces colonnes est absente. |
no_null_columns | [] | Échoue si l'une de ces colonnes contient des valeurs nulles. |
unique_columns | [] | Échoue si l'une de ces colonnes contient des doublons. |
assert_expression | — | Expression pandas (df.eval) qui doit être vraie pour toutes les lignes, ex. age >= 0 and montant <= plafond. L'erreur indique le nombre de lignes en échec. |
Cas d'usage : garde-fou avant un chargement en production, pour bloquer le pipeline plutôt que d'écrire des données incomplètes ou incohérentes.
Instantané
Instantané sauvegarde l'état courant du DataFrame dans une connexion storage, pour le debug, l'audit ou le rejeu.
| Paramètre | Défaut | Description |
|---|---|---|
connection_id | — | Connexion storage de destination (requis). |
filename | snapshot_${run.id}.parquet | Nom du fichier ; la variable ${run.id} produit un fichier par exécution. |
file_format | parquet | Format de sérialisation : parquet (recommandé), csv ou json. |
include_index | false | Sauvegarde aussi l'index du DataFrame. |
Cas d'usage : capturer le flux juste avant une transformation délicate pour comparer avant/après, ou archiver l'état reçu d'une source à chaque exécution.
Étiqueter l'exécution
Étiqueter l'exécution pose un tag (nom + valeur optionnelle) sur
l'exécution courante, sous la forme d'une ligne de log normalisée
TAG nom=valeur, retrouvable dans les logs du
détail d'exécution.
| Paramètre | Défaut | Description |
|---|---|---|
tag_name | — | Identifiant du tag, ex. high-volume, failed-validation (requis). |
tag_value | — | Valeur associée, variables {nb_rows} (nombre de lignes) et ${run.id} supportées. |
condition | — | Condition pandas : le tag n'est posé que si au moins une ligne la satisfait (vide = toujours). |
Cas d'usage : marquer les exécutions qui sont passées par une branche
donnée après un Route, ou signaler
un état (high-volume si {nb_rows} dépasse un seuil) pour retrouver ensuite
ces exécutions en recherchant le tag dans leurs logs.
Pour bloquer un flux invalide, utilisez Assertion (le pipeline échoue). Pour notifier sans bloquer, utilisez Alerte. Les deux se combinent : une Alerte en amont pour prévenir, une Assertion en aval comme garde-fou.
Pour un pipeline complet de contrôle qualité combinant ces actions avec la méga-brick Qualité, suivez le tutoriel Surveiller la qualité des données.