Utilisation de l'itération avec un flux de données intégré

Les paramètres d'itération indiquent la manière dont un flux de données intégré doit traiter les enregistrements entrants. Par défaut, un flux de données intégré traite individuellement chaque enregistrement, exactement comme le ferait tout autre stage du flux de données. En revanche, si vous utilisez l'itération, vous pouvez traiter des groupes d'enregistrements ensemble, ce qui peut s'avérer utile lorsque, par exemple, vous effectuez des comparaisons ou des calculs en fonction de groupes d'enregistrements et non de l'ensemble des données d'entrée. Vous pouvez également utiliser l'itération pour appliquer des options de stage en fonction des données de chaque enregistrement.

Il existe deux types d'itération : l'itération par enregistrement et l'itération par groupe. Dans l'itération par enregistrement, un flux de données intégré traite un enregistrement à la fois et le résultat est envoyé au stage suivant du flux de données intégré. L'itération par enregistrement s'avère utile si vous souhaitez définir des options de stage par enregistrement à l'aide de valeurs de champ.

Dans l'itération par groupe, les enregistrements sont regroupés par un champ clé et le flux de données intégré traite chaque groupe. Tous les enregistrements d'un groupe sont traités en une itération, puis le groupe est écrit dans le stage suivant du flux de données intégré. Utilisez l'itération par groupe pour traiter des groupes d'enregistrements associés, ainsi que pour définir des options de stage à utiliser lors du traitement du groupe d'enregistrements. Par exemple, vous souhaitez peut-être regrouper des enregistrements par ID client pour pouvoir analyser les enregistrements de chaque client, pour déterminer, par exemple, le magasin dans lequel chaque client se rend le plus souvent.

Si vous utilisez l'itération, vous devez tenir compte de son impact sur les performances. À chaque lancement d'une nouvelle itération, l'initialisation du flux de données intégré requiert davantage de mémoire. Ce besoin accru en mémoire peut être considérable, en particulier si vous disposez de flux de données intégrés au sein d'autres flux de données intégrés. Par exemple, si un flux de données intégré effectue 1 000 itérations et qu'il contient un autre flux de données qui lui aussi effectue 1 000 itérations, le nombre total d'itérations est de 1 000 000. L'utilisation de l'itération par enregistrement a un impact plus important sur les performances, car chaque enregistrement déclenche une nouvelle itération.

  1. Créez un flux de données intégré contenant le ou les stages que vous souhaitez utiliser pour l'itération.
    Remarque : Il existe certaines limitations quant aux éléments susceptibles d'être inclus dans des flux de données intégrés dont l'option d'itération est activée :
    • Le stage Stream Combiner ne peut pas être le premier stage d'un flux de données intégré dont l'option d'itération est activée.
    • Le flux de données intégré ne peut pas contenir de récepteur écrivant dans un fichier figurant sur le client. Les récepteurs placés à l'intérieur d'un flux de données intégré doivent écrire dans un fichier figurant sur le serveur Spectrum™ Technology Platform ou sur un serveur de fichiers.
  2. Double-cliquez sur l'icône de flux de données intégré.
  3. Cochez la case Activer l'itération.
  4. S'il existe plusieurs canaux d'entrée connectés au flux de données intégré, utilisez le champ Port pour sélectionner le port dont vous souhaitez utiliser les enregistrements pour l'itération.

    Par exemple, imaginons que vous disposiez de deux ports d'entrée, A et B, et que vous décidiez d'effectuer une itération à chaque modification d'un champ clé. Si vous décidez d'utiliser le port B pour l'itération, le flux de données intégré lance une nouvelle itération à chaque modification d'un champ clé des enregistrements du port B. Tous les enregistrements de l'autre port (le port A) sont lus dans le flux de données intégré, mis en cache et utilisés à chaque itération.

  5. Sélectionnez le type d'itération à effectuer.
    Répéter chaque fois qu'un champ clé change
    Dans ce type d'itération, le flux de données intégré traite des groupes d'enregistrements dont un ou plusieurs champs contiennent la même valeur. Lorsque le flux de données intégré termine le traitement du groupe d'enregistrements, il est réinitialisé et commence le traitement d'un nouveau groupe d'enregistrements. Utilisez ce type d'itération pour créer des flux de données intégrés qui traitent des groupes d'enregistrements, puis qui émettent chaque groupe d'enregistrements séparément.
    Conseil : Si vous optez pour ce type d'itération, vous pouvez améliorer les performances en plaçant un stage Sorter devant le flux de données intégré et en triant les données en fonction du champ clé.
    Répéter par enregistrement
    Dans ce type d'itération, le flux de données intégré traite un enregistrement à la fois. Chaque fois que le flux de données intégré termine le traitement d'un enregistrement, le résultat est envoyé à la sortie et un nouvel enregistrement est traité. Les flux de données intégrés qui effectuent des itérations par enregistrement gèrent chaque enregistrement comme une nouvelle exécution de flux de données.
  6. Si vous sélectionnez Répéter chaque fois qu'un champ clé change, cochez la case Ignorer la casse lors de la comparaison de valeurs pour ignorer les différences de casse lors de l'évaluation de valeurs de champ clé pour déterminer des groupes d'enregistrements.
  7. Indiquez un ou plusieurs champs clés.
    1. Cliquez sur Ajouter.
    2. Sélectionnez le champ à utiliser comme champ clé.
    3. Pour utiliser la valeur du champ pour définir une option de stage au sein du flux de données intégré, indiquez le nom de l'option de votre choix.
    4. Cliquez sur OK.
    5. Si nécessaire, ajoutez des champs clés supplémentaires.

      Si vous sélectionnez plusieurs champs clés et l'option Répéter chaque fois qu'un champ clé change, pour que les enregistrements soient regroupés, ils doivent contenir la même valeur dans tous les champs clés.