Record Joiner

Record Joiner effectue une opération de style SQL JOIN pour combiner les enregistrements de différents flux en fonction d'une relation entre les champs des flux. Vous pouvez utiliser Record Joiner pour joindre des enregistrements de plusieurs fichiers, plusieurs bases de données ou tout canal en amont dans le flux de données. Vous devez connecter au moins deux canaux d'entrée à Record Joiner. Les résultats de l'opération JOIN sont ensuite écrits vers un canal de sortie. Éventuellement, les enregistrements qui ne correspondent pas à la condition join peuvent être écrits dans un canal de sortie distinct.

Remarque : Avant d'utiliser Record Joiner, vous devez bien comprendre l'opération SQL JOIN. Pour plus d'informations, reportez-vous à wikipedia.org/wiki/Join_(SQL).

Définition de jointure

Option Description

Port gauche

Port dont vous souhaitez utiliser les enregistrements comme table gauche dans l'opération JOIN. Tous les autres ports d'entrée sont alors utilisés comme tables droites dans l'opération JOIN.

Remarque : La table « gauche » et la table « droite » sont des concepts SQL JOIN. Avant d'utiliser Record Joiner, vous devez bien comprendre l'opération SQL JOIN. Pour plus d'informations, reportez-vous à wikipedia.org/wiki/Join_(SQL).

Type de jointure

Type de l'opération JOIN à effectuer. L'un des éléments suivants :

Externe Gauche
Renvoie tous les enregistrements du port gauche même si aucune correspondance n'existe entre le port gauche et les autres ports. Cette option renvoie tous les enregistrements du port gauche plus tout enregistrement correspondant dans l'un des autres ports.
Complète
Renvoie tous les enregistrements de tous les ports.
Interne
Renvoie uniquement les enregistrements présentant une correspondance entre le port gauche et l'autre port. Par exemple, si vous avez quatre sources d'entrée et que le port 1 est le port gauche, une jointure interne renverra les enregistrements ayant des champs correspondants entre port 1 et port 2, port 1 et port 3, et port 1 et port 4.

Joindre les champs

Le ou les champs du port gauche doivent correspondre aux données contenues dans un champ d'un autre port afin de joindre les enregistrements.

Remarque : Seuls les champs dotés d'un type de données chaîne, entier, date ou datetime peuvent être utilisés comme champs de jointure.

Données du port gauche triées

Détermine si les enregistrements dans le port gauche sont déjà triés par le champ indiqué dans Joindre les champs. Si les enregistrements sont déjà triés, vous pouvez améliorer les performances en cochant cette case. Si vous ne cochez pas cette case, Record Joiner triera les enregistrements en fonction du champ indiqué dans Joindre les champs avant d'effectuer l'opération de jointure.

Si vous avez indiqué plusieurs champs de jointure, les enregistrements doivent être triés dans l'ordre des champs répertoriés dans Joindre les champs. Par exemple, si vous disposez de deux champs de jointure :

  • Montant
  • Région

Les enregistrements doivent être triés tout d'abord par le champ Montant, puis par le champ Région.

Important : Si vous sélectionnez cette option mais que les enregistrements ne sont pas triés, vous obtiendrez des résultats incorrects de Record Joiner. Ne sélectionnez cette option que si vous êtes sûr que les enregistrements dans le port gauche sont déjà triés.

Définitions de jointure

Décrit les conditions de jointure qui seront utilisées pour déterminer si un enregistrement du port gauche doit être joint à un enregistrement d'un des autres ports. Par exemple :

port1.Name = port2.Name

Cela indique que si la valeur dans le champ Name d'un enregistrement de port1 correspond à la valeur dans le champ Nom d'un enregistrement de port2, les deux enregistrements seront joints.

Pour modifier une condition de jointure, cliquez sur Modifier. Sélectionnez un champ du port droit dont les données doivent correspondre aux données dans le champ Join du port gauche pour joindre les enregistrements. Pour modifier le champ du port gauche, cliquez sur Cancel et modifiez-le dans le champ Join Fields. Si les enregistrements dans le port droit sont triés par le champ de jointure, cochez la case Données du port droit triées. Vous pouvez améliorer les performances en cochant cette case.

Important : Si vous sélectionnez Données du port droit triées mais que les enregistrements ne sont pas triées, vous obtiendrez des résultats incorrects de Record Joiner. Ne sélectionnez cette option que si vous êtes sûr que les enregistrements dans le port droit sont déjà triés.

Résolution des champs

Cet onglet indique le port dont vous souhaitez utiliser les données dans l'enregistrement joint, dans le cas où le même nom de champ existe dans plusieurs ports d'entrée. Par exemple, si vous effectuez une jointure de deux sources de données et que chaque source contient un champ nommé DateOfBirth, vous pouvez déterminer le port dont vous souhaitez utiliser les données dans le champ DateOfBirth dans l'enregistrement joint.

Si vous disposez de champs portant le même nom mais des données différentes, et que vous souhaitez préserver les données des deux champs dans l'enregistrement joint, vous devez renommer un des champs pour envoyer les données à Record Joiner. Vous pouvez utiliser le stage Transformer pour renommer les champs.

Manipulation des enregistrements qui ne sont pas joints

Pour qu'un enregistrement soit inclus dans la sortie Record Joiner, il doit remplir la condition de jointure, ou un type de jointure renvoyant les enregistrements joints et les enregistrements ne répondant pas à la condition de jointure doit être sélectionné. Par exemple, une jointure complète renverra tous les enregistrements de tous les ports d'entrée, qu'un enregistrement réponde ou non à la condition de jointure. Dans le cas d'un type de jointure qui ne renvoie pas tous les enregistrements de tous les ports, tel qu'une jointure externe gauche ou une jointure interne, seuls les enregistrements correspondant à la condition de jointure sont inclus dans la sortie Record Joiner.

Pour capturer les enregistrements qui ne sont pas inclus dans le résultat de l'opération de jointure, utilisez le port de sortie not_joined. La sortie de ce port contient tous les enregistrements non inclus dans le port de sortie régulier. Le port de sortie not_joined correspond au triangle blanc à droite du stage Record Joiner comme illustré ici :

Le champ InputPortIndex est ajouté aux enregistrements sortant de ce port. Ce champ contient le numéro du port d'entrée Record Joiner dont l'enregistrement provient. Cela vous permet d'identifier la source de l'enregistrement.