Scénario 2 : Parallélisation du traitement de données clients volumineuses - 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 trie 20 millions d'enregistrements clients en effectuant des exécutions parallèles.

Relier les composants

  1. Dans la perspective Integration de votre studio, créez un Job vide à partir du 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 les composants suivants de la Palette dans l'espace de modélisation graphique : tFileInputDelimited, tPartitioner, tCollector, tSortRow, tDepartitioner, tRecollector, tFileOutputDelimited.

    Le composant tFileInputDelimited (nommé test file dans cet exemple) lit les 20 millions d'enregistrements clients depuis un fichier .txt généré par le tRowGenerator.

    Pour plus d'informations concernant le composant tRowGenerator, consultez tRowGenerator.

    Pour plus d'informations concernant le renommage d'un composant, consultez le Guide utilisateur du Studio Talend.

  3. Connectez le tPartitioner au tCollector à l'aide d'un lien Trigger > Starts.

  4. Procédez de même pour connecter le tDepartitioner au tRecollector.

  5. Reliez les autres composants à l'aide d'un lien Row > Main.

Partitionner les données du flux d'entrée

Configurer le flux d'entrée

  1. Double-cliquez sur le tFileInputDelimited pour ouvrir sa vue Component.

  2. Dans le champ File name/Stream, parcourez votre système, ou saisissez le chemin d'accès au fichier stockant les enregistrements clients à lire.

  3. Cliquez sur le bouton pour ouvrir l'éditeur de schéma dans lequel créer le schéma reflétant la structure des données clients.

  4. Cliquez cinq fois sur le bouton pour ajouter cinq lignes et renommez-les : FirstName, LastName, City, Address et ZipCode.

    Dans ce scénario, laissez la valeur par défaut des types de données, String. Dans un cas d'utilisation réelle, vous pouvez modifier les types selon les données à traiter.

  5. Cliquez sur OK pour valider les modifications et acceptez la propagation proposée par la boîte de dialogue.

  6. Si nécessaire, renseignez les autres champs dans la vue Component avec les valeurs correspondant aux données à traiter. Dans ce scénario, laissez les paramètres tels qu'ils sont.

Configurer le composant tPartitioner

  1. Double-cliquez sur le tPartitioner pour ouvrir sa vue Component.

  2. Dans le champ Number of Child Threads, saisissez le nombre de process (threads) que vous souhaitez obtenir en divisant les enregistrements d'entrée. Dans cet exemple, saisissez 3 car quatre processeurs sont utilisés pour exécuter le Job.

  3. Si nécessaire, modifiez la valeur dans le champ Buffer Size afin d'adapter la capacité de la mémoire. Dans cet exemple, laissez la valeur par défaut.

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

  5. Sélectionnez toutes les lignes du schéma du composant tPartitioner à l'aide des touches Ctrl ou Maj.

    Le bouton est activé dans la barre d'outils.

  6. Cliquez sur le bouton pour copier le schéma sélectionné.

Trier les enregistrements d'entrée

Configurer le tCollector

  1. Double-cliquez sur le tCollector pour ouvrir sa vue Component.

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

  3. Appuyez sur les touches Ctrl+V pour coller le schéma du composant tPartitioner.

  4. Cliquez sur OK pour valider les modifications et acceptez la propagation proposée par la boîte de dialogue.

Configurer le tSortRow

  1. Double-cliquez sur le tSortRow pour ouvrir sa vue Component.

  2. Sous la table Criteria, cliquez trois fois sur le bouton pour ajouter trois lignes à la table.

  3. Dans la colonne Schema column, sélectionnez, pour chaque ligne, la colonne du schéma à utiliser comme critère de tri. Dans cet exemple, sélectionnez ZipCode, City et Address.

  4. Dans la colonne Sort num or alpha?, sélectionnez alpha pour les trois lignes.

  5. Dans la colonne Order asc or desc, sélectionnez asc pour les trois lignes.

  6. Si le schéma ne s'affiche pas, cliquez sur le bouton Sync columns pour récupérer le schéma du composant précédent.

  7. Cliquez sur Advanced settings pour ouvrir la vue correspondante.

  8. Cochez la case Sort on disk. Le champ Temp data directory path et la case Create temp data directory if not exist s'affichent.

  9. Dans le champ Temp data directory path, saisissez le chemin d'accès, ou parcourez votre système jusqu'au dossier dans lequel stocker les données temporaires traitées par le tSortRow. Ainsi, le tSortRow permet de traiter considérablement plus de données.

    Comme les process s'écrasent s'ils sont écrits dans le même répertoire, vous devez créer le dossier pour chaque process à traiter, via l'ID du process. Pour ce faire, vous pouvez directement utiliser la variable globale THREAD_ID du tCollector dans la vue Outline, dans ce champ. Le code correspondant est automatiquement généré, comme suit :

    ((Integer)globalMap.get("tCollector_1_THREAD_ID"))

    Le chemin d'accès se présente comme suit :

    "E:/Studio/workspace/temp"+((Integer)globalMap.get("tCollector_1_THREAD_ID")).

    Si la vue Outline ne s'affiche pas dans le studio, vous pouvez l'afficher en la sélectionnant dans la fenêtre [Show view]. Pour plus d'informations, consultez le Guide utilisateur duStudio Talend.

  10. Vérifiez que la case Create temp data directory if not exists est cochée.

Vérifier le tDepartitioner

  1. Double-cliquez sur le tDepartitioner pour ouvrir sa vue Component.

  2. Si nécessaire, modifiez les valeurs dans le champ Buffer Size pour adapter la capacité de la mémoire. Dans cet exemple, laissez la valeur par défaut.

  3. Cliquez sur le bouton à côté du champ Edit schema pour ouvrir l'éditeur de schéma, puis vérifiez que les colonnes à écrire en sortie s'affichent dans le schéma du tDepartitioner. Dans ce scénario, l'objectif est d'écrire en sortie toutes les colonnes reçues des composants précédents.

Écrire en sortie les données triées

  1. Double-cliquez sur le composant tRecollector pour ouvrir sa vue Component.

  2. Cliquez sur le bouton à côté du champ Edit schema pour ouvrir l'éditeur de schéma, puis collez le schéma du tPartitioner précédemment copié lors de la configuration du tPartitioner.

    Le schéma doit être cohérent par rapport à celui du tDepartitioner, fournissant les données au tRecollector.

  3. Cliquez sur OK pour valider les modifications et acceptez la propagation proposée par la boîte de dialogue.

  4. Dans le champ Linked Departitioner, sélectionnez le composant tDepartitioner duquel vous souhaitez que le tRecollector reçoive les données. Dans cet exemple, sélectionnez le tDepartitioner nommé tDepartitioner_1.

  5. Double-cliquez sur le tFileOutputDelimited pour ouvrir sa vue Component.

  6. Dans le champ File Name, parcourez votre système, ou saisissez le chemin d'accès au fichier dans lequel écrire les données triées. Lors de l'exécution, le fichier est créé s'il n'existe pas.

Exécuter le Job

Appuyez sur F6 pour exécuter ce Job.

Cela fait, vous pouvez vérifier le fichier contenant les données triées et les dossiers temporaires créés par le tSortRow pour trier les données sur le disque. Ces dossiers sont vidés une fois le tri effectué.