Comparaison
Comparaison (t_compare) compare deux flux ligne à ligne, sur la base
d'une clé, et identifie les différences : lignes ajoutées,
supprimées, modifiées ou inchangées. C'est la brique de base d'une
détection de changements (change data capture).
| Ports | |
|---|---|
| Entrées | Exactement 2 flux (in) : le premier branché = la source (référence, « ancien ») ; le second = la cible (« nouveau ») |
| Sorties | + (ajouts), - (suppressions), ~ (modifications), = (inchangées), all (tout, avec flag), toutes optionnelles |
Paramètres
| Paramètre | Requis | Description |
|---|---|---|
key_columns | Oui | Colonnes qui identifient une ligne (doivent exister dans les deux flux). |
compare_columns | Non | Colonnes comparées pour détecter les modifications (vide = toutes sauf clés et colonnes ignorées). |
ignore_columns | Non | Colonnes exclues de la comparaison (ex. updated_at). |
flag_column | Non | Nom de la colonne de flag sur la sortie all (défaut : _change_type). |
Classification
| Cas | Sortie | Contenu |
|---|---|---|
| Clé présente seulement dans la cible | + (Added) | La ligne de la cible |
| Clé présente seulement dans la source | - (Deleted) | La ligne de la source |
| Clé commune, au moins une colonne comparée diffère | ~ (Modified) | La version cible de la ligne |
| Clé commune, aucune différence | = (Unchanged) | La version cible de la ligne |
Deux valeurs nulles sont considérées égales (une ligne ne passe pas en « modifiée » parce qu'un champ est null des deux côtés).
Choisir ses sorties
Seules les sorties branchées sont alimentées : connectez uniquement celles dont vous avez besoin. Typiquement :
+vers unINSERT,~vers unUPDATE,-vers unDELETE(pattern de synchronisation incrémentale) ;allvers un rapport : toutes les lignes empilées, avec la colonne_change_typevalantadded,deleted,modifiedouunchanged.
Sur les sorties séparées (+, -, ~, =), la colonne de flag n'est pas
ajoutée : elle n'apparaît que sur all.