Scénario 2 : Collecter des données de votre réseau social favori

Composants Talend Open Studio Guide de référence

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

Dans ce scénario, le tFileInputJSON récupère le nœud friends d'un fichier JSON contenant les données d'un utilisateur Facebook et le tExtractJSONFields extrait les données du nœud friends afin d'obtenir des données plates en sortie.

Relier les composants

  1. Déposez les composants suivantes de la Palette dans l'espace de modélisation graphique : un tFileInputJSON, un tExtractJSONFields et un tLogRow.

  2. Reliez le tFileInputJSON au tExtractJSONFields à l'aide d'un lien Row > Main.

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

Configurer les composants

  1. Double-cliquez sur le tFileInputJSON pour afficher sa vue Basic settings.

  2. Cliquez sur Edit schema pour ouvrir l'éditeur de schéma.

    Cliquez sur le bouton [+] pour ajouter une colonne, que vous nommez friends, de type String.

    Cliquez sur OK pour fermer l'éditeur.

  3. Cliquez sur le bouton [...] pour parcourir votre système jusqu'au fichier JSON, facebook.json dans cet exemple :

    { "user": { "id": "9999912398",
                "name": "Kelly Clarkson",
                "friends": [
                     { "name": "Tom Cruise",
                       "id": "55555555555555",
                       "likes": {
                           "data": [
                                { "category": "Movie",
                                  "name": "The Shawshank Redemption",
                                  "id": "103636093053996",
                                  "created_time": "2012-11-20T15:52:07+0000"
                                },
                                { "category": "Community",
                                  "name": "Positiveretribution",
                                  "id": "471389562899413",
                                  "created_time": "2012-12-16T21:13:26+0000"
                                }
                                    ]
                                }
                     },
                     { "name": "Tom Hanks",
                       "id": "88888888888888"
                       "likes": {
                            "data": [
                                { "category": "Journalist",
                                  "name": "Janelle Wang",
                                  "id": "136009823148851",
                                  "created_time": "2013-01-01T08:22:17+0000"
                                },
                                { "category": "Tv show",
                                  "name": "Now With Alex Wagner",
                                  "id": "305948749433410",
                                  "created_time": "2012-11-20T06:14:10+0000"
                                }
                                ]
                               }
                      }
                            ]
              }
    }
    
  4. Décochez la case Read by XPath.

    Dans la table Mapping, saisissez la requête JSONPath "$.user.friends[*]", dans la colonne JSONPath query, pour la ligne friends, permettant de récupérer le nœud friends complet du fichier source.

  5. Double-cliquez sur le tExtractJSONFields pour afficher sa vue Basic settings.

  6. Cliquez sur Edit schema pour ouvrir l'éditeur de schéma.

  7. Cliquez cinq fois sur le bouton [+] dans le panneau de droite pour ajouter cinq colonnes. Nommez-les respectivement id, name, like_id, like_name et like_category. Chaque colonne contiendra les données des nœuds concernés dans le champ JSON friends.

    Cliquez sur OK pour fermer l'éditeur.

  8. Dans la boîte de dialogue [Propagate] qui s'ouvre, cliquez sur Yes pour propager le schéma aux composants suivants.

  9. Dans le champ Loop XPath query, saisissez "/likes/data".

  10. Dans la zone Mapping, saisissez les requêtes des nœuds JSON dans la colonne XPath query. Les données de ces nœuds seront extraites et passées aux colonnes du même nom, dans le schéma de sortie.

  11. Configurez la requête XPath "../../id" (interrogeant le nœud "/friends/id") pour la colonne id.

    Configurez également la requête "../../name" (interrogeant le nœud "/friends/name") pour la colonne name, ainsi que les requêtes "id" pour la colonne like_id, "name" pour la colonne like_name et "category" pour la colonne like_category.

  12. Double-cliquez sur le tLogRow pour afficher sa vue Basic settings.

  13. Dans la zone Mode, sélectionnez Table (print values in cells of a table) pour un affichage optimal des résultats.

Exécuter le Job

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

  2. Cliquez sur F6 pour exécuter le Job.

    Comme affiché ci-dessus, les données relatives aux amis de l'utilisateur Facebook Kelly Clarkson sont correctement extraites.