This scenario describes a three-component Job that extracts certain data from a file holding information about clients, customers, and then writes the extracted data in a delimited file.
In the following example, we have already stored the input schema under the Metadata node in the Repository tree view. For more information about storing schema metadata in the Repository, see Talend Studio User Guide.
In the Repository tree view, expand Metadata and File delimited in succession and then browse to your input schema, customers, and drop it on the design workspace. A dialog box displays where you can select the component type you want to use.
Click tFileInputDelimited and then OK to close the dialog box. A tFileInputDelimited component holding the name of your input schema appears on the design workspace.
Drop a tMap component and a tFileOutputDelimited component from the Palette to the design workspace.
Link the components together using Row > Main connections.
Configuring the input component
Double-click tFileInputDelimited to open its Basic settings view. All its property fields are automatically filled in because you defined your input file locally.
If you do not define your input file locally in the Repository tree view, fill in the details manually after selecting Built-in in the Property type list.
Click the [...] button next to the File Name field and browse to the input file, customer.csv in this example.
If the path of the file contains some accented characters, you will get an error message when executing your Job. For more information regarding the procedures to follow when the support of accented characters is missing, see the Talend Installation Guide.
In the Row Separators and Field Separators fields, enter respectively "\n" and ";" as line and field separators.
If needed, set the number of lines used as header and the number of lines used as footer in the corresponding fields and then set a limit for the number of processed rows.
In this example, Header is set to 6 while Footer and Limit are not set.
In the Schema field, schema is automatically set to Repository and your schema is already defined since you have stored your input file locally for this example. Otherwise, select Built-in and click the [...] button next to Edit Schema to open the [Schema] dialog box where you can define the input schema, and then click OK to close the dialog box.
Configuring the mapping component
In the design workspace, double-click tMap to open its editor.
In the tMap editor, click on top of the panel to the right to open the [Add a new output table] dialog box.
Enter a name for the table you want to create, row2 in this example.
Click OK to validate your changes and close the dialog box.
In the table to the left, row1, select the first three lines (Id, CustomerName and CustomerAddress) and drop them to the table to the right
In the Schema editor view situated in the lower left corner of the tMap editor, change the type of RegisterTime to String in the table to the right.
Click OK to save your changes and close the editor.
Configuring the output component
In the design workspace, double-click tFileOutputDelimited to open its Basic settings view and define the component properties.
In the Property Type field, set the type to Built-in and fill in the fields that follow manually.
Click the [...] button next to the File Name field and browse to the output file you want to write data in, customerselection.txt in this example.
In the Row Separator and Field Separator fields, set "\n" and ";" respectively as row and field separators.
Select the Include Header check box if you want to output columns headers as well.
Click Edit schema to open the schema dialog box and verify if the recuperated schema corresponds to the input schema. If not, click Sync Columns to recuperate the schema from the preceding component.
Press Ctrl+S to save your Job.
Press F6 or click Run on the Run tab to execute the Job.
The three specified columns Id, CustomerName and CustomerAddress are output in the defined output file.
For an example of how to use dynamic schemas with tFileOutputDelimited, see Scenario 4: Writing dynamic columns from a MySQL database to an output file.