August 17, 2023

tFileOutputDelimited – Docs for ESB 5.x

tFileOutputDelimited

tFileOutputDelimited_icon32.png

tFileOutputDelimited properties

Component family

File/Output

 

Function

tFileOutputDelimited outputs data
to a delimited file.

If you have subscribed to one of the Talend solutions with Big Data, you are
able to use this component in a Talend Map/Reduce Job to generate
Map/Reduce code. For further information, see tFileOutputDelimited in Talend
Map/Reduce Jobs

Purpose

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

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. The fields that follow are
completed automatically using the data retrieved.

 

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
representattive 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 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 can create the
schema and store it locally for this component. Related topic: see
Talend Studio User
Guide
.

 

 

Repository: You have already
created and stored the schema in the Repository. You can reuse it in
various projects and Job flowcharts. 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 modify the separators used for
numbers:

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

Writes in row mode.

 

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

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 https://help.talend.com/display/KB/How+to+install+external+modules+in+the+Talend+products
or the section describing how to configure the Studio in the Talend Installation and Upgrade
Guide
.

tFileOutputDelimited in Talend
Map/Reduce Jobs

Warning

The information in this section is only for users that have subscribed to one of
the Talend solutions with Big Data and is not applicable to
Talend Open Studio for Big Data users.

In a Talend Map/Reduce Job, tFileOutputDelimited, as well as the whole Map/Reduce Job using it,
generates native Map/Reduce code. This section presents the specific properties of
tFileOutputDelimited when it is used in that
situation. For further information about a Talend Map/Reduce Job, see the Talend Big Data Getting Started Guide.

Component family

MapReduce/Output

 

Basic settings

Property type

Either Built-in or Repository.

 

 

Built-in: No property data stored
centrally.

 

 

Repository: reuse properties
stored centrally under the Hadoop
Cluster
node of the Repository tree.

The fields that come after are pre-filled in using the fetched
data.

For further information about the Hadoop
Cluster
node, see the Getting Started Guide.

 

Save_Icon.png

Click this icon to open a database connection wizard and store the database connection
parameters you set in the component Basic settings
view.

For more information about setting up and storing database connection parameters, see
Talend Studio User Guide.

 

Schema and Edit
Schema

A schema is a row description, it defines the number of fields
that will be processed and passed on to the next component. The
schema is either built-in or remote 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.

 

 

Built-in: The schema will be
created and stored locally for this component only. Related topic:
see Talend Studio User Guide.

 

 

Repository: The schema already
exists and is stored in the Repository, hence can be reused in
various projects and job flowcharts. Related topic: see
Talend Studio User
Guide
.

 

Folder

Browse to, or enter the directory in HDFS where the data you need to use is.

This path must point to a folder rather than a file, because a
Talend Map/Reduce
Job need to write in its target folder not only the final result but
also multiple part- files
generated in performing Map/Reduce computations.

Note that you need
to ensure you have properly configured the connection to the Hadoop
distribution to be used in the Hadoop
configuration
tab in the Run view.

 

Action

Select an operation for writing data:

Create: Creates a file and write
data in it.

Overwrite: Overwrites the file
existing in the directory specified in the Folder field.

 

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.

 

Include Header

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

 

Custom encoding

You may encounter encoding issues when you process the stored data. In that situation, select
this check box to display the Encoding list.

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

 

Compress the data

Select the Compress the data check box to compress the
output data.

Hadoop provides different compression formats that help reduce the space needed for
storing files and speed up data transfer. When reading a compressed file, the Studio needs
to uncompress it before being able to feed it to the input flow.

 

Merge result to single file

Select this check box to merge the final part files into a single file and put that file in a
specified directory.

Once selecting it, you need to enter the path to, or browse to the
folder you want to store the merged file in. This directory is
automatically created if it does not exist.

The following check boxes are used to manage the source and the target files:

  • Remove source dir: select this check box to remove the source
    files after the merge.

  • Override target file: select this check box to override the
    file already existing in the target location. This option does not override the
    folder.

This option is not available for a Sequence file.

Advanced settings

Advanced separator (for number)

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

This option is not available for a Sequence file.

 

CSV options

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

 

Enable parallel execution

Select this check box to perform high-speed data processing, by treating multiple data flows
simultaneously. Note that this feature depends on the database or the application ability to
handle multiple inserts in parallel as well as the number of CPU affected. In the Number of parallel executions field, either:

  • Enter the number of parallel executions desired.

  • Press Ctrl + Space and select the appropriate
    context variable from the list. For further information, see Talend Studio
    User Guide
    .

Global Variables

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

In a Talend Map/Reduce Job, it is used as an end component and requires
a transformation component as input link. The other components used along with it must be
Map/Reduce components, too. They generate native Map/Reduce code that can be executed
directly in Hadoop.

Once a Map/Reduce Job is opened in the workspace, tFileOutputDelimited as well as the
MapReduce family appears in the Palette of the Studio.

Note that in this documentation, unless otherwise explicitly stated, a scenario presents
only Standard Jobs, that is to say traditional Talend data
integration Jobs, and non Map/Reduce Jobs.

Hadoop Connection

You need to use the Hadoop Configuration tab in the
Run view to define the connection to a given Hadoop
distribution for the whole Job.

This connection is effective on a per-Job basis.

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.

Use_Case_tFileOutputDelimited9.png

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.

    Use_Case_tFileOutputDelimited1.png
  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.

    Use_Case_tFileOutputDelimited2.png
  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
    and Upgrade Guide
    of the Talend
    solution you are using.

  4. In the Row Separators and Field Separators fields, enter respectively

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

    Use_Case_tFileOutputDelimited4.png

Configuring the mapping component

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

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

    Use_Case_tFileOutputDelimited6.png
  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.

    Use_Case_tFileOutputDelimited8.png
  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.

    Use_Case_tFileOutputDelimited10.png
  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

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

    Use_Case_tFileOutputDelimited11.png

    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.

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.

use_case-tfileoutputdelimited12.png

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.

    use_case-tfileoutputdelimited13.png
  2. In the Code area, type in the following
    command:

    Note

    In this scenario, the command we use in the Code area of tJava will
    create a new folder C:/myFolder where the output
    file customerselection.txt will be saved. You can
    customize the command in accordance with actual practice.

  3. Double-click tFileOutputDelimited to open
    its Basic settings view.

    use_case-tfileoutputdelimited16.png
  4. Select Use Output Stream check box to
    enable the Output Stream field in which you
    can define the output stream using command.

    Fill in the Output Stream field with
    following command:

    Note

    You can customize the command in the Output
    Stream
    field by pressing CTRL+SPACE to
    select built-in command from the list or type in the command into
    the field manually in accordance with actual practice. In this
    scenario, the command we use in the Output
    Stream
    field will call the
    java.io.OutputStream class to output the filtered
    data stream to a local file which is defined in the Code area of tJava in this scenario.

  5. Click Sync columns to retrieve the schema
    defined in the preceding component.

  6. Leave rest of the components as they were in the previous scenario.

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.

    Use_Case_tFileOutputDelimited11.png

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.


Document get from Talend https://help.talend.com
Thank you for watching.
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x