Aller au contenu principal

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éesExactement 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ètreRequisDescription
key_columnsOuiColonnes qui identifient une ligne (doivent exister dans les deux flux).
compare_columnsNonColonnes comparées pour détecter les modifications (vide = toutes sauf clés et colonnes ignorées).
ignore_columnsNonColonnes exclues de la comparaison (ex. updated_at).
flag_columnNonNom de la colonne de flag sur la sortie all (défaut : _change_type).

Classification​

CasSortieContenu
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 un INSERT, ~ vers un UPDATE, - vers un DELETE (pattern de synchronisation incrémentale) ;
  • all vers un rapport : toutes les lignes empilées, avec la colonne _change_type valant added, deleted, modified ou unchanged.

Sur les sorties séparées (+, -, ~, =), la colonne de flag n'est pas ajoutée : elle n'apparaît que sur all.

astuce

Pour valider un flux (formats, doublons) plutôt que le comparer à une référence, voyez la méga-brick Qualité et les Actions Assertion / Alerte.