tPartitioner - 6.3

Composants Talend Guide de référence

EnrichVersion
6.3
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

Avertissement

Ce composant est disponible dans la Palette dans la perspective Integration du Studio Talend si vous avez souscrit à l'une des solutions Talend Platform ou Big Data.

Notez que le Studio Talend permet l'implémentation automatique de la parallélisation à travers le Job sans l'utilisation de composants de parallélisation. Cette approche est recommandée. Pour plus d'informations, consultez la section décrivant l'activation de la parallélisation de flux de données du Guide utilisateur du Studio Talend. Cependant, si vous souhaitez comprendre comment utiliser ces composants de parallélisation, gardez à l'esprit que ces composants fonctionnent ensemble en étroite relation pour accomplir des exécutions parallèles de processus donnés. Le composant tPartitioner divise les enregistrements d'entrée en un nombre spécifique de process. Le tCollector envoie ces process aux composants suivants. Le tDepartitioner regroupe les sorties des process parallèles traités. Le composant tRecollector capture la sortie d'un tDepartitioner donné et envoie les données capturées au composant suivant.

Fonction

Le composant tPartitioner divise les enregistrements d'entrée en un nombre de process que le tCollector envoie pour exécution parallèle.

Objectif

Ce composant partitionne les données d'entrée avant que le tCollector les transfère aux processus d'exécutions parallèles.

Propriétés du tPartitioner

Famille du composant

Orchestration

 

Basic settings

Schema et Edit Schema

Un schéma est une description de lignes, il définit le nombre de champs (colonnes) qui sont traités et passés au composant suivant. Le schéma est soit local (Built-In), soit distant dans le Repository.

Cliquez sur Edit schema pour modifier le schéma. Si le schéma est en mode Repository, trois options sont disponibles :

  • View schema : sélectionnez cette option afin de voir le schéma.

  • Change to Built-In property : sélectionnez cette option pour passer le schéma en mode Built-In et effectuer des modifications locales.

  • Update repository connection : sélectionnez cette option afin de modifier le schéma stocké dans le référentiel et décider de propager ou non les modifications à tous les Jobs. Si vous souhaitez propager les modifications uniquement au Job courant, cliquez sur No et sélectionnez à nouveau la métadonnée du schéma dans la fenêtre [Repository Content].

Cliquez sur le bouton Sync columns pour récupérer le schéma du composant précédent.

 

Number of Child Threads

Saisissez le nombre de process que vous souhaitez obtenir en divisant les enregistrements d'entrée.

Il est recommandé de saisir un nombre N-1 où N est le nombre total de CPU ou cœurs de la machine traitant les données.

 

Buffer Size

Saisissez le nombre de lignes à traiter avant de libérer la mémoire.

Ce nombre représente le nombre de lignes à mettre en cache pour chaque process généré.

 

Use a key hash for partitions

Cochez cette case pour utiliser le mode Hash pour répartir les enregistrements dans les process.

Une fois la case cochée, la table Key Columns s'affiche. Vous pouvez y configurer les colonnes sur lesquelles appliquer le mode Hash. En mode Hash, les enregistrements répondant aux critères sont répartis dans les mêmes process.

Si vous laissez cette case décochée le mode de répartition est Round-robin, ce qui signifie que les enregistrements sont répartis un par un dans chaque process, de manière circulaire, jusqu'à ce que le dernier enregistrement soit distribué. Ce mode ne peut garantir que les enregistrements répondant aux critères vont bien dans les mêmes process.

Advanced settings

tStatCatcher Statistics

Cochez cette case pour collecter les données de log au niveau du composant.

Utilisation

Ce composant doit être placé après le(s) composant(s) d'entrée et avant le tCollector.

Ce composant utilise, et ne peut utiliser que le lien Trigger > Start pour se connecter au tCollector.

Connections

Liens de sortie (de ce composant au composant suivant) :

Trigger : Start.

Liens d'entrée (du composant précédent à ce composant) :

Row : Main.

Pour plus d'informations concernant les connexions, consultez la section relative aux types de connexions, dans le Guide utilisateur du Studio Talend.

Global Variables

ERROR_MESSAGE : message d'erreur généré par le composant lorsqu'une erreur survient. Cette variable est une variable After et retourne une chaîne de caractères. Cette variable fonctionne uniquement si la case Die on error est décochée, si le composant a cette option.

NB_LINE : nombre de lignes traitées. Cette variable est une variable After et retourne un entier.

Une variable Flow fonctionne durant l'exécution d'un composant. Une variable After fonctionne après l'exécution d'un composant.

Pour renseigner un champ ou une expression à l'aide d'une variable, appuyez sur les touches Ctrl+Espace pour accéder à la liste des variables. A partir de cette liste, vous pouvez choisir la variable que vous souhaitez utiliser.

Pour plus d'informations concernant les variables, consultez le Guide utilisateur du Studio Talend.

Log4j

Si vous utilisez une solution Talend soumise à souscription, l'activité de ce composant peut être journalisée avec la fonctionnalité log4j. Pour plus d'informations sur cette fonctionnalité, consultez le Guide utilisateur du Studio Talend.

Pour plus d'informations sur les niveaux de logs du log4j, consultez la documentation d'Apache : http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html (en anglais).

Scénario 2 : Parallélisation du traitement de données clients volumineuses

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.