tFileOutputDelimited - 6.3

Talend Components Reference Guide

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
Data Governance
Data Quality and Preparation
Design and Development
EnrichPlatform
Talend Studio

Function

tFileOutputDelimited outputs data to a delimited file.

Purpose

This component writes a delimited file that holds data organized according to the defined schema.

Depending on the Talend solution you are using, this component can be used in one, some or all of the following Job frameworks:

tFileOutputDelimited properties

Component family

File/Output

 

Basic settings

Property type

Either Built-In or Repository.

 

 

Built-In: No property data stored centrally.

 

 

Repository: Select the repository file where the properties are stored.

 

Use Output Stream

Select this check box process the data flow of interest. Once you have selected it, the Output Stream field displays and you can type in the data flow of interest.

The data flow to be processed must be added to the flow in order for this component to fetch these data via the corresponding representative variable.

This variable could be already pre-defined in your Studio or provided by the context or the components you are using along with this component; otherwise, you could define it manually and use it according to the design of your Job, for example, using tJava or tJavaFlex.

In order to avoid the inconvenience of hand writing, you could select the variable of interest from the auto-completion list (Ctrl+Space) to fill the current field on condition that this variable has been properly defined.

For further information about how to use a stream, see Scenario 2: Reading data from a remote file in streaming mode.

 

File name

Name or path to the output file and/or the variable to be used.

This field becomes unavailable once you have selected the Use Output Stream check box.

For further information about how to define and use a variable in a Job, see Talend Studio User Guide.

 

Row Separator

Enter the separator used to identify the end of a row.

 

Field Separator

Enter character, string or regular expression to separate fields for the transferred data.

 

Append

Select this check box to add the new rows at the end of the file.

 

Include Header

Select this check box to include the column header to the file.

 

Compress as zip file

Select this check box to compress the output file in zip format.

 

Schema and Edit schema

A schema is a row description. It defines the number of fields (columns) to be processed and passed on to the next component. The schema is either Built-In or stored remotely in the Repository.

Click Edit schema to make changes to the schema. If the current schema is of the Repository type, three options are available:

  • View schema: choose this option to view the schema only.

  • Change to built-in property: choose this option to change the schema to Built-in for local changes.

  • Update repository connection: choose this option to change the schema stored in the repository and decide whether to propagate the changes to all the Jobs upon completion. If you just want to propagate the changes to the current Job, you can select No upon completion and choose this schema metadata again in the [Repository Content] window.

This component offers the advantage of the dynamic schema feature. This allows you to retrieve unknown columns from source files or to copy batches of columns from a source without mapping each column individually. For further information about dynamic schemas, see Talend Studio User Guide.

This dynamic schema feature is designed for the purpose of retrieving unknown columns of a table and is recommended to be used for this purpose only; it is not recommended for the use of creating tables.

 

 

Built-In: You create and store the schema locally for this component only. Related topic: see Talend Studio User Guide.

 

 

Repository: You have already created the schema and stored it in the Repository. You can reuse it in various projects and Job designs. Related topic: see Talend Studio User Guide.

 

Sync columns

Click to synchronize the output file schema with the input file schema. The Sync function only displays once the Row connection is linked with the output component.

Advanced settings

Advanced separator (for numbers)

Select this check box to change the separator used for numbers. By default, the thousands separator is a comma (,) and the decimal separator is a period (.).

Thousands separator: define separators for thousands.

Decimal separator: define separators for decimals.

 

CSV options

Select this check box to include CSV specific parameters such as Escape char and Text enclosure.

 

Create directory if not exists

This check box is selected by default. It creates the directory that holds the output delimited file, if it does not already exist.

 

Split output in several files

In case of very big output files, select this check box to divide the output delimited file into several files.

Rows in each output file: set the number of lines in each of the output files.

 

Custom the flush buffer size

Select this check box to define the number of lines to write before emptying the buffer.

Row Number: set the number of lines to write.

 

Output in row mode

Select this check box to ensure atomicity of the flush so that each row of data can remain consistent as a set and incomplete rows of data are never written to a file.

This check box is mostly useful when using this component in the multi-thread situation.

 

Encoding

Select the encoding from the list or select Custom and define it manually. This field is compulsory for database data handling.

 

Don't generate empty file

Select this check box if you do not want to generate empty files.

 

tStatCatcher Statistics

Select this check box to gather the Job processing metadata at a Job level as well as at each component level.

Global Variables

NB_LINE: the number of rows read by an input component or transferred to an output component. This is an After variable and it returns an integer.

FILE_NAME: the name of the file being processed. This is a Flow variable and it returns a string.

ERROR_MESSAGE: the error message generated by the component when an error occurs. This is an After variable and it returns a string. This variable functions only if the Die on error check box is cleared, if the component has this check box.

A Flow variable functions during the execution of a component while an After variable functions after the execution of the component.

To fill up a field or expression with a variable, press Ctrl + Space to access the variable list and choose the variable to use from it.

For further information about variables, see Talend Studio User Guide.

Usage

Use this component to write a delimited file and separate fields using a field separator value.

Log4j

If you are using a subscription-based version of the Studio, the activity of this component can be logged using the log4j feature. For more information on this feature, see Talend Studio User Guide.

For more information on the log4j logging levels, see the Apache documentation at http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html.

Limitation

Due to license incompatibility, one or more JARs required to use this component are not provided. You can install the missing JARs for this particular component by clicking the Install button on the Component tab view. You can also find out and add all missing JARs easily on the Modules tab in the Integration perspective of your studio. For details, see the article Installing External Modules on Talend Help Center (https://help.talend.com) how to configure the Studio in the Talend Installation Guide.

Scenario 1: Writing data in a delimited file

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.

Dropping and linking components

  1. 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.

  2. 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.

  3. Drop a tMap component and a tFileOutputDelimited component from the Palette to the design workspace.

  4. Link the components together using Row > Main connections.

Configuring the components

Configuring the input component

  1. Double-click tFileInputDelimited to open its Basic settings view. All its property fields are automatically filled in because you defined your input file locally.

  2. 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.

  3. Click the [...] button next to the File Name field and browse to the input file, customer.csv in this example.

    Warning

    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.

  4. In the Row Separators and Field Separators fields, enter respectively "\n" and ";" as line and field separators.

  5. 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.

  6. 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

  1. In the design workspace, double-click tMap to open its editor.

  2. In the tMap editor, click on top of the panel to the right to open the [Add a new output table] dialog box.

  3. Enter a name for the table you want to create, row2 in this example.

  4. Click OK to validate your changes and close the dialog box.

  5. 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

  6. 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.

  7. Click OK to save your changes and close the editor.

Configuring the output component

  1. In the design workspace, double-click tFileOutputDelimited to open its Basic settings view and define the component properties.

  2. In the Property Type field, set the type to Built-in and fill in the fields that follow manually.

  3. 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.

  4. In the Row Separator and Field Separator fields, set "\n" and ";" respectively as row and field separators.

  5. Select the Include Header check box if you want to output columns headers as well.

  6. 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.

Saving and executing the Job

  1. Press Ctrl+S to save your Job.

  2. 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 5: Writing dynamic columns from a MySQL database to an output file.

Scenario 2: Utilizing Output Stream to save filtered data to a local file

Based on the preceding scenario, this scenario saves the filtered data to a local file using output stream.

Dropping and linking components

  1. Drop tJava from the Palette to the design workspace.

  2. Connect tJava to tFileInputDelimited using a Trigger > On Subjob OK connection.

Configuring the components

  1. Double-click tJava to open its Basic settings view.