tMemorizeRows - 6.1

Composants Talend Open Studio Guide de référence

EnrichVersion
6.1
EnrichProdName
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for Data Quality
Talend Open Studio for ESB
Talend Open Studio for MDM
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Propriétés du tMemorizeRows

Famille du composant

Misc

 

Fonction

Le composant tMemorizeRows mémorise temporairement une collection de données entrantes en séquence ligne par ligne et instancie cette collection en indexant chaque ligne mémorisée à partir de 0. Le nombre maximum de lignes à mémoriser à un moment donné est défini dans la vue Basic settings.

Objectif

Le tMemorizeRows mémorise une séquence de lignes passant dans ce composant et permet au(x) composant(s) suivant(s) d'effectuer des opérations sur les lignes mémorisées, selon vos besoins.

 

Schema et Edit schema

Un schéma est une description de lignes, il définit le nombre de champs qui sont traités et passés au composant suivant. Le schéma est soit local (Built-in) soit distant dans le Repository.

Depuis la version 5.6, les modes Built-In et Repository sont disponibles dans toutes les solutions de Talend.

Cliquez sur Edit schema pour modifier le schéma. Si le schéma est en mode Repository, trois options sont disponibles :

  • View schema : sélectionnez cette option afin de voir le schéma.

  • Change to Built-In property : sélectionnez cette option pour passer le schéma en mode Built-In et effectuer des modifications locales.

  • Update repository connection : sélectionnez cette option afin de modifier le schéma stocké dans le référentiel et décider de propager ou non les modifications à tous les Jobs. Si vous souhaitez propager les modifications uniquement au Job courant, sélectionnez No et sélectionnez à nouveau la métadonnée du schéma dans la fenêtre [Repository Content].

Cliquez sur Sync columns pour récupérer le schéma du composant précédent.

 

 

Built-in : Le schéma est créé et conservé pour ce composant seulement. Voir également le Guide utilisateur du Studio Talend.

 

 

Repository : Le schéma existe déjà et est stocké dans le Repository. Ainsi, il peut être réutilisé. Voir également le Guide utilisateur du Studio Talend.

 

Row count to memorize

Saisissez le nom de lignes à définir.

 

Columns to memorize

Sélectionnez les colonnes à mémoriser du schéma d'entrée.

Advanced settings

tStatCatcher Statistics

Cochez cette case pour collecter les données de log au niveau du composant.

Utilisation

Ce composant peut être utilisé en tant qu'étape intermédiaire dans un flux de données ou comme dernière étape avant de lancer un sous-job.

Note: Vous pouvez utiliser la variable globale NB_LINE_ROWS afin de récupérer la valeur renseignée dans le champ Row count to memorize du composant tMemorizeRows.

Connections

Liens de sortie (de composant à un autre) :

Row : Main.

Trigger : Run if, On Component Ok, On Component Error.

Liens d'entrée (d'un autre composant à celui-ci) :

Row : Main.

Pour plus d'informations concernant les connexions, consultez le Guide utilisateur du Studio Talend.

Global Variables

NB_LINE_ROWS : nombre de lignes mémorisées. Cette variable est une variable After et retourne un nombre entier.

ERROR_MESSAGE : message d'erreur généré par le composant lorsqu'une erreur survient. Cette variable est une variable After et retourne une chaîne de caractères. Cette variable fonctionne uniquement si la case Die on error est décochée, si le composant a cette option.

Une variable Flow fonctionne durant l'exécution d'un composant. Une variable After fonctionne après l'exécution d'un composant.

Pour renseigner un champ ou une expression à l'aide d'une variable, appuyez sur les touches Ctrl+Espace pour accéder à la liste des variables. A partir de cette liste, vous pouvez choisir la variable que vous souhaitez utiliser.

Pour plus d'informations concernant les variables, consultez le Guide utilisateur du Studio Talend.

Scénario : Compter le nombre d'occurrences de différents âges

Ce scénario a pour objectif de compter le nombre d'âges différents se trouvant dans un groupe de 12 clients. Dans ce scénario, les données client sont générées de manière aléatoire.

Ce Job utilise les cinq composants suivants :

  • tRowGenerator : ce composant génère 12 lignes de données client contenant les IDs, noms et âges des 12 clients.

  • tSortRow : ce composant trie les 12 lignes selon les données de l'âge.

  • tMemorizeRows : il mémorise temporairement un nombre spécifique de lignes de données entrantes à un moment donné et indexe les lignes de données mémorisées.

  • tJavaFlex : ce composant compare la valeur des âges dans les données mémorisées par le composant précédent, compte le nombre d'occurrences des différents âges et affiche ces âges dans la vue Run.

  • tJava : il affiche le nombre d'occurrences des différents âges.

Pour reproduire le scénario, procédez comme dans les sections suivantes.

Déposer et relier les composants

  1. Déposez les composants suivants de la Palette dans l'espace de modélisation graphique : tRowGenerator, tSortRow, tMemorizeRows, tJavaFlex et tJava.

  2. Reliez le tRowGenerator au tSortRow, à l'aide d'un lien Row > Main.

  3. Répétez l'opération pour connecter le tSortRow, le tMemorizeRows et le tJavaFlex à l'aide d'un lien Row > Main.

  4. Connectez le tRowGenerator au tJava à l'aide d'un lien Trigger > OnSubjobOk.

Configurer les composants

Configurer le composant tRowGenerator

  1. Double-cliquez sur le composant tRowGenerator afin d'ouvrir son éditeur.

  2. Dans cet éditeur, cliquez trois fois sur le bouton [+] pour ajouter trois colonnes, que vous nommerez : id, name, age.

  3. Dans la colonne Type, sélectionnez Integer pour les colonnes id et age.

  4. Dans la colonne Length, saisissez 50 pour la colonne name.

  5. Dans la colonne Functions, sélectionnez random pour id et age, puis sélectionnez getFirstName pour name.

  6. Dans le champ Number of Rows for RowGenerator, saisissez 12.

  7. Dans la colonne Column, cliquez sur age afin d'ouvrir sa vue Function parameters dans la partie inférieure de l'éditeur.

    Dans la colonne Value de la vue Function parameters, saisissez l'âge minimum et l'âge maximum à générer pour les 12 clients. Dans cet exemple, saisissez respectivement 10 et 25.

Configurer le composant tSortRow

  1. Double-cliquez sur le tSortRow afin d'ouvrir sa vue Component.

  2. Dans le tableau Criteria, cliquez sur le bouton [+] afin d'ajouter une ligne.

  3. Dans la colonne Schema column, sélectionnez la colonne de données sur laquelle vous souhaitez baser le tri. Dans cet exemple, sélectionnez age, puisque les âges seront comparés et comptés.

  4. Dans la colonne Sort num or alpha, sélectionnez le type de tri. Dans cet exemple, comme age est un entier (integer), sélectionnez num, pour numérique.

  5. Dans la colonne Order asc or desc, sélectionnez desc comme ordre de tri.

Configurer le composant tMemorizeRows

  1. Double-cliquez sur le composant tMemorizeRows afin d'ouvrir sa vue Component.

  2. Dans le champ Row count to memorize, saisissez le nombre maximum de lignes à mémoriser à un moment donné. Puisque vous devez comparer les âges de deux clients à chaque fois, saisissez 2.

    Ce composant mémorise deux lignes au maximum à un moment donné et indexe toujours la nouvelle ligne entrante comme 0 et la ligne précédente comme 1.

  3. Dans la colonne Memorize du tableau Columns to memorize, cochez la (les) case(s) de la (des) colonne(s) à mémoriser. Dans cet exemple, cochez la case correspondant à la colonne age.

Configurer les composants tJavaFlex et tJava

  1. Double-cliquez sur le tJavaFlex afin d'ouvrir sa vue Component.

  2. Dans la zone Start code, saisissez le code Java qui sera appelé durant la phase d'initialisation. Dans cet exemple, saisissez int count=0; afin de déclarer une variable count et de lui assigner la valeur 0.

  3. Dans la zone Main code, saisissez le code Java à appliquer à chaque ligne du flux de données. Dans ce scénario, saisissez :

    if(!age_tMemorizeRows_1[0].equals(age_tMemorizeRows_1[1]))
    {
    count++;
    }
    System.out.println(age_tMemorizeRows_1[0]);
    

    Ce code compare les deux âges mémorisés à chaque fois par le tMemorizeRows et compte un changement à chaque fois que des âges différents sont trouvés. Ce code affiche également les âges indexés comme 0 par le tMemorizeRows.

  4. Dans la zone End code, saisissez le code qui sera appelé durant la phase de fermeture. Dans cet exemple, saisissez globalMap.put("count", count); afin d'écrire le résultat du compte.

  5. Double-cliquez sur le tJava afin d'ouvrir sa vue Component.

  6. Dans la zone Code, saisissez le code System.out.println("Different ages: "+globalMap.get("count")); afin de récupérer le résultat du compte.

Sauvegarder et exécuter le Job

  1. Appuyez sur les touches Ctrl+S pour sauvegarder votre Job.

  2. Appuyez sur F6 afin d'exécuter le Job, ou cliquez sur le bouton Run de la vue Run.

Dans la console, vous pouvez constater qu'il y a dix âges différents dans le groupe des 12 clients.