Skip to main content

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.

ComposantEffetBloquant ?
Alerte (a_alert)Envoie une notification conditionnelleNon
Assertion (a_assert)Vérifie des invariants sur le fluxOui, plante si violé
Instantané (a_snapshot)Sauvegarde l'état du flux dans un storageNon
É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ètreDéfautDescription
connection_id—Connexion de notification, SMTP ou webhook (requis).
trigger_condition—Condition pandas (query string), ex. errors > 0. Vide = toujours alerter.
min_matches1Nombre minimum de lignes satisfaisant la condition pour déclencher l'alerte.
subject[Fluhoms] Alerte pipelineSujet du message, variables ${run.id} et ${prj.X} supportées.
bodyAlerte déclenchée : {n} ligne(s)…Corps du message (markdown), variables runtime + {n} = nombre de lignes en correspondance.
severitywarningNiveau : 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ètreDéfautDescription
min_rows0Échoue si le flux compte moins de lignes (0 = pas de vérification).
max_rows0É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ètreDéfautDescription
connection_id—Connexion storage de destination (requis).
filenamesnapshot_${run.id}.parquetNom du fichier ; la variable ${run.id} produit un fichier par exécution.
file_formatparquetFormat de sérialisation : parquet (recommandé), csv ou json.
include_indexfalseSauvegarde 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ètreDéfautDescription
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.

Bloquer ou notifier ?

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.