tFileInputRegex - 6.3

Talend Open Studio for Big Data Components Reference Guide

EnrichVersion
6.3
EnrichProdName
Talend Open Studio for Big Data
task
Data Governance
Data Quality and Preparation
Design and Development
EnrichPlatform
Talend Studio

Function

Powerful feature which can replace number of other components of the File family. Requires some advanced knowledge on regular expression syntax

Purpose

Opens a file and reads it row by row to split them up into fields using regular expressions. Then sends fields as defined in the Schema to the next Job component.

tFileInputRegex properties

Component family

File/Input

 

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.

 

File Name/Stream

File name: Name of the file and/or the variable to be processed

Stream: Data flow to be processed. The data must be added to the flow so that it can be collected by the tFileInputRegex via the INPUT_STREAM variable in the autocompletion list (Ctrl+Space)

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.

 

Regex

This field can contain multiple lines. Type in your regular expressions including the subpattern matching the fields to be extracted.

Note: Antislashes need to be doubled in regexp

Warning

Regex syntax requires double quotes.

 

Header

Enter the number of rows to be skipped in the beginning of file.

 

Footer

Number of rows to be skipped at the end of the file.

 

Limit

Maximum number of rows to be processed. If Limit = 0, no row is read or processed.

 

Ignore error message for the unmatched record

Select this check box to avoid outputing error messages for records that do not match the specified regex. This check box is cleared by default.

 

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.

 

 

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.

 

Skip empty rows

Select this check box to skip the empty rows.

 

Die on error

Select this check box to stop the execution of the Job when an error occurs.

Clear the check box to skip any rows on error and complete the process for error-free rows. When errors are skipped, you can collect the rows on error using a Row > Reject link.

Advanced settings

Encoding

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

In the Map/Reduce version of tFileInputRegex, you need to select the Custom encoding check box to display this list.

 

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 processed. This is an After variable and it returns an integer.

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 read a file and separate fields contained in this file according to the defined Regex. You can also create a rejection flow using a Row > Reject link to filter the data which doesn't correspond to the type defined. For an example of how to use these two links, see Scenario 2: Extracting correct and erroneous data from an XML field in a delimited file.

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

n/a

Scenario: Regex to Positional file

The following scenario creates a two-component Job, reading data from an Input file using regular expression and outputting delimited data into an XML file.

Dropping and linking the components

  1. Drop a tFileInputRegex component from the Palette to the design workspace.

  2. Drop a tFileOutputPositional component the same way.

  3. Right-click on the tFileInputRegex component and select Row > Main. Drag this main row link onto the tFileOutputPositional component and release when the plug symbol displays.

Configuring the components

  1. Select the tFileInputRegex again so the Component view shows up, and define the properties:

  2. The Job is built-in for this scenario. Hence, the Properties are set for this station only.

  3. Fill in a path to the file in File Name field. This field is mandatory.

  4. Define the Row separator identifying the end of a row.

  5. Then define the Regular expression in order to delimit fields of a row, which are to be passed on to the next component. You can type in a regular expression using Java code, and on mutiple lines if needed.

    Warning

    Regex syntax requires double quotes.

  6. In this expression, make sure you include all subpatterns matching the fields to be extracted.

  7. In this scenario, ignore the header, footer and limit fields.

  8. Select a local (Built-in) Schema to define the data to pass on to the tFileOutputPositional component.

  9. You can load or create the schema through the Edit Schema function.

  10. Then define the second component properties:

  11. Enter the Positional file output path.

  12. Enter the Encoding standard, the output file is encoded in. Note that, for the time being, the encoding consistency verification is not supported.

  13. Select the Schema type. Click on Sync columns to automatically synchronize the schema with the Input file schema.

Saving and executing the Job

  1. Press Ctrl+S to save your Job.

  2. Now go to the Run tab, and click on Run to execute the Job.

    The file is read row by row and split up into fields based on the Regular Expression definition. You can open it using any standard file editor.