Scénario : Effectuer une jointure dans un processus Pig sur des données concernant les conditions de circulation - 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

Le Job de ce scénario utilise deux composants tPigLoad pour lire des données concernant les conditions de circulation et les événements associés sur les routes données depuis une distribution Hadoop, effectuer une jointure et filtrer les données à l'aide du tPigMap, puis d'écrire les résultats dans cette distribution Hadoop à l'aide de deux tPigStoreResult.

La distribution Hadoop à utiliser conserve les données concernant les conditions de circulations (normale ou embouteillage) ainsi que les données concernant les événements liés, tels que des travaux, la pluie ou aucun événement. Dans cet exemple, les données à utiliser se présentent comme suit :

  1. Les données concernant les conditions de circulation sont stockées dans le répertoire /user/ychen/tpigmap/date&traffic. jam signifie qu'il y a un embouteillage, normal signifie que la circulation est normale.

    2013-01-11 00:27:53;Bayshore Freeway;jam
    2013-02-28 07:01:18;Carpinteria Avenue;jam
    2013-01-26 11:27:59;Bayshore Freeway;normal
    2013-03-07 20:48:51;South Highway;jam
    2013-02-07 07:40:10;Lindbergh Blvd;normal
    2013-01-22 17:13:55;Pacific Hwy S;normal
    2013-03-17 23:12:26;Carpinteria Avenue;normal
    2013-01-15 08:06:53;San Diego Freeway;jam
    2013-03-19 15:18:28;Monroe Street;jam
    2013-01-20 05:53:12;Newbury Road;normal
  2. Les données relatives aux événements sont stockées dans le répertoire /user/ychen/tpigmap/date&event. road work signifie qu'il y a des travaux, rain signifie qu'il pleut et no event signifie qu'il n'y a pas d'événement particulier.

    2013-01-11 00:27:53;Bayshore Freeway;road work
    2013-02-28 07:01:18;Carpinteria Avenue;rain
    2013-01-26 11:27:59;Bayshore Freeway;road work
    2013-03-07 20:48:51;South Highway;no event
    2013-02-07 07:40:10;Lindbergh Blvd;second-hand market
    2013-01-22 17:13:55;Pacific Hwy S;no event
    2013-03-17 23:12:26;Carpinteria Avenue;no event
    2013-01-15 08:06:53;San Diego Freeway;second-hand market
    2013-03-19 15:18:28;Monroe Street;road work
    2013-01-20 05:53:12;Newbury Road;no event

Pour chaque heure affichée dans les données, une ligne concernant les conditions de trafic et une ligne concernant les événements sont enregistrées. Vous devez effectuer une jointure sur les données d'une table afin de détecter facilement l'impact des événements sur le trafic routier.

Pour reproduire le scénario, assurez-vous que le Studio Talend à utiliser possède les droits de lecture écriture dans la distribution Hadoop puis procédez comme suit :

Relier les composants

  1. Dans la perspective Integration du Studio Talend, créez un Job vide nommé pigweather, par exemple, depuis le nœud Job Designs dans la vue Repository.

    Pour plus d'informations concernant la création d'un Job, consultez le Guide utilisateur du Studio Talend.

  2. Déposez deux composants tPigLoad, un tPigMap et deux tPigStoreResult de la Palette de l'espace de modélisation graphique.

    Les composants peuvent être renommés, si nécessaire. Dans ce scénario, renommez les tPigLoad traffic et event, respectivement, puisqu'ils chargent respectivement les données de la circulation et des événements correspondants. Renommez les composants tPigStoreResult normal et jam, respectivement, puisqu'ils écrivent les résultats dans la distribution Hadoop à utiliser. Pour plus d'informations concernant le renommage des composants, consultez le Guide utilisateur du Studio Talend.

  3. Cliquez-droit sur le tPigLoad nommé traffic pour le connecter au tPigMap à l'aide d'un lien Row > Pig combine, dans le menu contextuel.

  4. Répétez l'opération pour relier le tPigLoad nommé event au tPigMap également. Lorsque le deuxième lien est créé, il devient automatiquement un lien Lookup.

  5. Utilisez le lien Row > Pig combine pour connecter le tPigMap à chaque composant tPigStoreResult.

    Renommez ces liens dans la boîte de dialogue qui apparaît une fois que vous avez sélectionné le type de lien dans le menu contextuel. Dans ce scénario, nommez out le lien vers le tPigStoreResult nommé normal et reject le lien vers le composant tPigStoreResult nommé jam.

Configurer le tPigLoad

Charger les données relatives à la circulation

  1. Double-cliquez sur le tPigLoad nommé traffic pour ouvrir sa vue Component.

  2. Cliquez sur le bouton à côté du champ Edit schema pour ouvrir l'éditeur de schéma.

  3. Cliquez trois fois sur le bouton pour ajouter trois lignes et, dans la colonne Column, renommez-les respectivement date, street et traffic.

  4. Cliquez sur OK pour valider les modifications.

  5. Dans la zone Mode, sélectionnez l'option Map/Reduce, puisque le Studio Talend doit se connecter à une distribution Hadoop distante.

  6. Dans les listes Distribution et Version, sélectionnez la distribution Hadoop à utiliser. Dans cet exemple, sélectionnez Hortonworks Data Platform V1.0.0.

  7. Dans la liste Load function, sélectionnez la fonction PigStorage pour lire les données source, puisque les données sont contenues dans un fichier structuré au format UTF-8, humainement lisible.

  8. Dans les champs NameNode URI et JobTracker host, saisissez respectivement l'emplacement du nœud maître et le service du Job tracker de la distribution Hadoop à utiliser.

  9. Dans le champ Input file URI, saisissez le chemin d'accès au répertoire dans lequel sont stockées les informations relatives à la circulation. Dans cet exemple, le chemin d'accès au répertoire est /user/ychen/tpigmap/date&traffic.

  10. Dans le champ Field separator, saisissez ; ou tout autre séparateur utilisé dans les données source.

Charger les données relatives aux événements

  1. Double-cliquez sur le tPigLoad nommé event pour ouvrir sa vue Component.

  2. Cliquez sur le bouton à côté du champ Edit schema pour ouvrir l'éditeur de schéma.

  3. Cliquez trois fois sur le bouton pour ajouter trois lignes et, dans la colonne Column, renommez-les respectivement date, street et event.

  4. Cliquez sur OK pour valider les modifications.

  5. Dans la zone Mode, sélectionnez Map/Reduce.

    Puisque vous avez déjà configuré la connexion à la distribution Hadoop, dans le premier composant tPigLoad nommé traffic, le composant event réutilise cette connexion. Ainsi, la Distribution et la Version sont automatiquement sélectionnées.

  6. Dans le champ Load function, sélectionnez la fonction PigStorage pour lire les données source.

  7. Dans le champ Input file URI, saisissez le chemin d'accès au répertoire dans lequel les données relatives aux événements sont stockées. Dans cet exemple, le chemin d'accès au répertoire est "/user/ychen/tpigmap/date&event".

Configurer le tPigMap

  • Double-cliquez sur le composant tPigMap pour ouvrir sa vue Map Editor.

Créer le schéma de sortie

  1. Du côté de l'entrée (gauche) du Map Editor, chacune des tables représente l'un des flux d'entrée. La table supérieure représente le flux d'entrée principal et la table inférieure représente le flux de référence (Lookup).

    Du côté de la sortie (droite), les deux tables représentent les flux de sortie précédemment nommés out1 et reject.

    De la table du flux principal, déposez les trois colonnes dans chaque table de sortie.

  2. Du flux Lookup, déposez la colonne event dans chaque table de sortie.

    Dans la vue Schema editor, vous pouvez voir les schémas terminés des deux côtés sont terminés. Vous pouvez cliquez sur chaque table pour afficher la schéma dans cette vue.

Configurer les conditions de mapping

  1. Dans la table du flux de référence, cliquez sur le bouton pour ouvrir le panneau des paramètres.

  2. Dans la ligne Join Model, sélectionnez Left Outer Join pour vous assurer que tous les enregistrements du flux principal sont inclus dans cette jointure.

  3. Dans la table de sortie out1, cliquez sur le bouton pour afficher le champ d'expression de filtre.

  4. Saisissez

    'normal'== row1.traffic

    Cela permet au tPigMap d'écrire en sortie uniquement les enregistrements contenant le mot normal dans le flux out1.

  5. Dans la table de sortie reject, cliquez sur le bouton pour ouvrir le panneau des paramètres.

  6. Paramétrez l'option Catch Output Reject à true pour écrire en sortie les enregistrements contenant le mot jam dans le flux reject.

  7. Cliquez sur Apply puis sur OK pour valider les modifications et acceptez la propagation proposée par la boîte de dialogue qui s'ouvre.

Configurer le tPigStoreResult

  1. Double-cliquez sur le tPigStoreResult nommé normal pour ouvrir sa vue Component.

  2. Dans le champ Result file, saisissez le chemin d'accès au répertoire dans lequel écrire les résultats. Dans ce scénario, le chemin d'accès au répertoire est /user/ychen/tpigmap/traffic_normal. Ce répertoire reçoit les enregistrements normal.

  3. Cochez la case Remove result directory if exists.

  4. Dans la liste Store function, sélectionnez PigStorage pour écrire les enregistrements au format UTF-8 humainement lisible.

  5. Dans le champ Field separator, saisissez ;.

  6. Répétez les opérations pour configurer le tPigStoreResult nommé jam, mais, dans le champ Result file, saisissez le chemin d'accès au répertoire /user/ychen/tpigmap/traffic_jam.

Note

Si l'un des composants ne récupère pas son schéma via le tPigMap, une icône d'avertissement apparaît. Dans ce cas, cliquez sur le bouton Sync columns pour récupérer le schéma du composant précédent. L'icône d'avertissement disparaît.

Exécuter le Job

Appuyez sur F6 pour exécuter le Job.

Cela fait, vérifiez les résultats dans la distribution Hadoop utilisée.

Dans les enregistrements traffic_jam, vous pouvez regarder quel événement correspond à un embouteillage et dans les enregistrements traffic_normal, vous pouvez regarder dans quelles situations la circulation est normale.

Si vous souhaitez plus d'informations concernant le Job et son exécution, utilisez la console Web fournie par la distribution Hadoop que vous utilisez.

Dans le JobHistory, vous pouvez facilement trouver le statut d'exécution de votre Job Pig car il est automatiquement nommé. Son nom est le résultat de la concaténation du nom du projet contenant le Job, du nom du Job, de sa version et du libellé du premier composant tPigLoad utilisé. La convention de nommage d'un Job Pig dans le JobHistory est la suivante : ProjectName_JobNameVersion_FirstComponentName.