Scénario 2 : Extraire le contenu d'une colonne dynamique via un tJavaRow - 6.1

Composants Talend Guide de référence

EnrichVersion
6.1
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
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
Talend Real-Time Big Data Platform
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Dans ce scénario, une colonne dynamique est créée via un composant tWriteDynamicFields. Son contenu est extrait par le code personnalisé saisi dans le tJavaRow.

Relier les composants

  1. Déposez un tFixedFlowInput, un tWriteDynamicFields, un tLogRow et un tJavaRow de la Palette dans l'espace de modélisation graphique.

  2. Reliez le tFixedFlowInput au tWriteDynamicFields à l'aide d'un lien Row > Main.

  3. Reliez le tWriteDynamicFields au tLogRow à l'aide d'un lien Row > Main.

  4. Reliez le tLogRow au tJavaRow à l'aide d'un lien Row > Main.

Configurer les composants

  1. Double-cliquez sur le tFixedFlowInput pour ouvrir sa vue Basic settings.

  2. Sélectionnez l'option Use Inline Content (delimited file) dans la zone Mode.

  3. Dans le champ Content, saisissez les données à passer au tWriteDynamicFields, par exemple :

    1;Andy;Doc
    2;Anderson;Dev
  4. Cliquez sur le bouton [...] à côté du champ Edit schema pour ouvrir l'éditeur de schéma.

  5. Cliquez trois fois sur le bouton [+] pour ajouter trois colonnes, nommées id, name et dept, de type Integer et String, respectivement.

  6. Cliquez sur OK pour valider la configuration et fermer l'éditeur.

  7. Double-cliquez sur le tWriteDynamicFields pour ouvrir sa vue Basic settings.

  8. Cliquez sur le bouton [...] correspondant à Edit schema pour ouvrir l'éditeur de schéma.

  9. Cliquez deux fois sur le bouton [+] dans le panneau de droite afin d'ajouter deux colonnes, respectivement nommées id et dynamic, de type Integer et Dynamic.

    La colonne id contient la valeur de la colonne id du tFixedFlowInput et la colonne dynamic contient les valeurs des colonnes name et dept du tFixedFlowInput.

  10. Cliquez sur OK pour valider la configuration et fermer l'éditeur.

  11. Double-cliquez sur le tLogRow pour ouvrir sa vue Basic settings.

    Sélectionnez l'option Table (print values in cells of a table), dans la zone Mode, pour un affichage optimal des résultats.

  12. Double-cliquez sur le tJavaRow pour ouvrir sa vue Basic settings.

  13. Dans le champ Code, saisissez le code Java pour extraire le contenu de la colonne dynamique dynamic :

    Dynamic columns = row3.dynamic;
     
    for (int i = 0; i < columns.getColumnCount(); i++) {  
        DynamicMetadata columnMetadata = columns.getColumnMetadata(i);  
        System.out.println(columnMetadata.getName() + ": " + 
    columns.getColumnValue(i) + "; " + columnMetadata.getType());
    } 

    La colonne dynamique dynamic du flux row3 est spécifiée pour récupérer les noms, valeurs et types des colonnes qu'elle contient.

Exécuter le Job

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

  2. Appuyez sur F6 pour l'exécuter.

    Comme affiché ci-dessus, les colonnes contenues dans la colonne dynamique ont bien été extraites.