Définir le composant de traitement - 6.5

Guide de référence des scripts de Jobs Talend

EnrichVersion
6.5
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 Real-Time Big Data Platform
EnrichPlatform
Studio Talend
Talend CommandLine
task
Création et développement > Création de Jobs

Suivez les étapes ci-dessous pour définir un composant tMap afin qu'il :

  • effectue des conversions automatiques de types entre l'entrée et la sortie pour éviter les erreurs de compilation lors de l’exécution du Job

  • combine le prénom et le nom de chaque personne

Procédure

  1. Saisissez les fonctions et les paramètres suivants pour ajouter le composant.
    addComponent {
    	setComponentDefinition {
    		TYPE: "tMap",
    		NAME: "tMap_1",
    		POSITION: 480, 256
    	}
    }
  2. À côté de la fonction setComponentDefinition {}, saisissez la fonction setSettings {} pour définir les paramètres de mapping.

    Dans cet exemple, le type de données des colonnes id et age est String dans les schémas d'entrée et le type de données est Integer dans le schéma de sortie. Activez la fonctionnalité de conversions automatiques de types du composant et laissez les autres paramètres par défaut.

    	setSettings {
    		ENABLE_AUTO_CONVERT_TYPE : "true"
    	}
  3. À côté de la fonction setSettings {}, saisissez une fonction addSchema {} pour définir la structure de données attendue par le composant suivant.

    Dans cet exemple, le flux de sortie est appelé out et contient quatre colonnes :

    • id, de type Integer, d'une longueur de deux caractères

    • full_name, de type String

    • age, de type Integer, d'une longueur de deux caractères

    • city, de type String

    	addSchema {
    		NAME: "out",
    		CONNECTOR: "FLOW",
    		LABEL: "out"
    		addColumn {
    			NAME: "id",
    			TYPE: "id_Integer",
    			LENGTH: 2
    		}
    		addColumn {
    			NAME: "full_name",
    			TYPE: "id_String"
    		}
    		addColumn {
    			NAME: "age",
    			TYPE: "id_Integer",
    			LENGTH: 2
    		}
    		addColumn {
    			NAME: "city",
    			TYPE: "id_String"
    		}
    	}
  4. À côté de la fonction addSchema {}, saisissez la fonction addMapperData {} pour définir le mapping des données, dont l'entrée, la sortie, les tables var, les jointures et les mappings.
  5. Dans la fonction addMapperData {}, saisissez une fonction addInputTable {} pour définir la table d'entrée du flux principal d'entrée.

    Notez que la définition des colonnes doit être la même que celle du premier composant tFileInputDelimited.

    	addMapperData {
    		addInputTable {
    			NAME: "row1"
    			addColumn {
    				NAME: "id",
    				TYPE: "id_String"
    			}
    			addColumn {
    				NAME: "name",
    				TYPE: "id_String"
    			}
    			addColumn {
    				NAME: "age",
    				TYPE: "id_String"
    			}
    			addColumn {
    				NAME: "city",
    				TYPE: "id_String"
    			}
    		}
    	}
  6. Dans la fonction addMapperData {}, saisissez une fonction addInputTable {} pour définir la table d'entrée pour le flux de référence.

    Notez que la définition des colonnes doit être la même que celle du second composant tFileInputDelimited.

  7. Dans la définition pour la colonne id, saisissez le paramètre EXPRESSION: "row1.id" pour définir une jointure entre les tables d'entrée, sur la colonne id.

    Notez que cet exemple définit un Left Outer Join. Pour définir une jointure Inner Join, ajoutez le paramètre ISINNERJOIN: true dans la fonction addInputTable {}.

    		addInputTable {
    			NAME: "row2"
    			addColumn {
    				NAME: "id",
    				TYPE: "id_String"
    				EXPRESSION: "row1.id"
    			}
    			addColumn {
    				NAME: "family",
    				TYPE: "id_String"
    			}
    		}
  8. Dans la fonction addMapperData {}, saisissez une fonction addOutputTable {} et définissez la table de sortie dans cet exemple.

    Cette définition de colonnes doit être la même que celle des paramètres du schéma. Notez que le paramètre ID est requis. Toutefois ce paramètre requiert une valeur uniquement lorsque la table de sortie utilise un schéma stocké dans le Repository.

  9. Créez des mappings entre les colonnes d’entrée et de sortie en ajoutant le paramètre EXPRESSION à chaque colonne de sortie.

    Notez que la colonne full_name est une combinaison de la colonne name du principal flux d'entrée et de la colonne family du flux de référence, séparées par un espace.

    		addOutputTable {
    			ID: "",
    			NAME: "out"
    			addColumn {
    				NAME: "id",
    				TYPE: "id_Integer",
    				EXPRESSION: "row1.id"
    			}
    			addColumn {
    				NAME: "full_name",
    				TYPE: "id_String",
    				EXPRESSION: "row1.name  + \" \" + row2.family"
    			}
    			addColumn {
    				NAME: "age",
    				TYPE: "id_Integer",
    				EXPRESSION: "row1.age"
    			}
    			addColumn {
    				NAME: "city",
    				TYPE: "id_String",
    				EXPRESSION: "row1.city "
    			}
    		}
    Avertissement :

    Assurez-vous d'utiliser la barre oblique inversée (\) lorsque vous spécifiez un métacaractère.