Scénario 2 : Gérer un fichier positionnel à partir d'un schéma dynamique - 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

Ce scénario décrit un Job à quatre composants lisant des données d'un fichier positionnel, écrivant les données dans un autre fichier positionnel et remplaçant les caractères de remplissage par un espace. Les détails des colonnes du schéma ne sont pas définis dans les composants positionnels, car ces derniers tirent parti du schéma dynamique réutilisable. Le fichier d'entrée utilisé dans ce scénario se présente comme suit :

id----name--------city--------
1-----Andrews-----Paris-------
2-----Mark--------London------
3-----Marie-------Paris-------
4-----Michael-----Washington--

Déposer et relier les composants

  1. Déposez les composants suivants de la Palette dans l'espace de modélisation graphique : un tFixedFlowInput, un tSetDynamicSchema, un tFileInputPositional et un tFileOutputPositional.

  2. Reliez le tFixedFlowInput au tSetDynamicSchema à l'aide d'un lien Row > Main afin de former un sous-job. Ce sous-job va définir un schéma dynamique réutilisable.

  3. Connectez le composant tFileInputPositional au tFileOutputPositional à l'aide d'un lien Row > Main pour former le second sous-job. Ce sous-job va lire les données du fichier positionnel d'entrée et va les écrire dans un autre fichier positionnel, selon le schéma dynamique configuré dans le sous-job précédent.

  4. Connectez le tFixedFlowInput au composant tFileInputPositional à l'aide d'un lien Trigger > OnSubjobOk afin de relier les deux sous-jobs.

Configurer le premier sous-job : créer un schéma dynamique

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

  2. Cliquez sur le bouton [...] à côté du champ Edit schema pour ouvrir la boîte de dialogue [Schema].

  3. Cliquez trois fois sur le bouton [+] pour ajouter trois colonnes : ColumnName, ColumnType et ColumnLength, puis définir leur type comme String, String et Integer respectivement. Ce sont les propriétés requises dans un schéma positionnel. Cliquez sur OK pour fermer la boîte de dialogue.

  4. Sélectionnez l'option Use Inline Table, cliquez trois fois sur le bouton [+] pour ajouter trois lignes et nommez-les selon le fichier d'entrée à lire : ID, Name et City, respectivement. Définissez leur type dans le champ ColumnType : id_Interger pour la colonne ID et id_String pour les colonnes Name et City. Configurez la longueur des colonnes dans le champ ColumnLength. Notez que le nom donné aux colonnes dans cette table composera l'en-tête du fichier de sortie.

  5. Double-cliquez sur le composant tSetDynamicSchema pour ouvrir sa vue Basic settings.

  6. Cliquez sur le bouton Sync columns afin de vous assurer que la structure du schéma est bien récupérée du composant précédent.

  7. Sous la table Parameters, cliquez trois fois sur le bouton [+] pour ajouter trois lignes.

  8. Cliquez dans le champ Property de chaque ligne et sélectionnez ColumnName, Type et Length respectivement.

  9. Cliquez dans le champ Value de chaque ligne et sélectionnez ColumnName, ColumnType et ColumnLength, respectivement.

    Avec les valeurs définies dans la table du composant tFixedFlowInput récupérées, la structure suivante des données est définie dans le schéma dynamique :

    Column NameTypeLength
    IDInteger6
    NameString12
    CityString12

Configurer le second sous-job : lire et écrire les données positionnelles

  1. Double-cliquez sur le composant tFileInputPositional afin d'ouvrir sa vue Basic settings.

    Avertissement

    La fonctionnalité de schéma dynamique est supportée uniquement en mode Built-In et requiert une ligne d'en-tête dans le fichier d'entrée.

  2. Cochez la case Use existing dynamic. Dans la liste Component List qui apparaît, sélectionnez le composant tSetDynamicSchema utilisé pour créer le schéma dynamique. Dans cet exemple, un seul tSetDynamicSchema est utilisé, il est donc automatiquement sélectionné.

  3. Dans le champ File name/Stream, saisissez le chemin d'accès au fichier positionnel d'entrée ou parcourez votre système jusqu'à celui-ci, en cliquant sur le bouton [...].

  4. Renseignez les champs Header, Footer et Limit selon la structure de votre fichier d'entrée et vos besoins. Dans ce scénario, ignorez simplement la première ligne lors de la lecture du fichier d'entrée. Pour ce faire, saisissez 1 dans le champ Header et laissez les autres paramètres tels qu'ils sont.

  5. Cliquez sur le bouton [...] à côté du champ Edit schema pour ouvrir l'éditeur du schéma, ajoutez une colonne que vous nommez dyn dans cet exemple, et sélectionnez Dynamic dans la liste Type. Cliquez sur OK pour fermer la boîte de dialogue [Schema] et propager les modifications.

  6. Cochez la case Customize, saisissez '-' dans le champ Padding char et laissez les autres paramètres tels qu'ils sont.

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

  8. Cochez la case Use existing dynamic, spécifiez le chemin d'accès au fichier de sortie et cochez la case Include header.

  9. Dans le champ Padding char, saisissez ' ' afin que les caractères de remplissage soient remplacés par un espace dans le fichier de sortie.

Sauvegarder et exécuter le Job

  1. Appuyez sur les touches Ctrl+S pour sauvegarder votre Job afin que tous les paramètres soient pris en compte.

  2. Appuyez sur F6 ou cliquez sur le bouton Run de l'onglet Run pour exécuter le Job.

    Les données sont lues dans le fichier positionnel d'entrée et écrites dans le fichier positionnel de sortie. Les caractères de remplissage sont remplacés par des espaces.