Scénario : Compter le nombre d'occurrences de différents âges - 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

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.