tSchemaComplianceCheck - 6.1

Talend Components Reference Guide

EnrichVersion
6.1
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

Validates all input rows against a reference schema or check types, nullability, length of rows against reference values. The validation can be carried out in full or partly.

Purpose

Helps to ensure the data quality of any source data against a reference data source.

If you have subscribed to one of the Talend solutions with Big Data, this component is available in the following types of Jobs:

tSchemaComplianceCheck Properties

Component family

Data Quality

 

Basic settings

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

It describes the structure and nature of your data to be processed as it is.

 

 

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.

 

Check all columns from schema

Select this option to carry out all checks on all columns against the base schema.

 

Custom defined

Select this option to carry out particular checks on particular columns. When this option is selected, the Checked Columns table shows.

 

Checked Columns

In this table, define what checks are to be carried out on which columns.

 

 

Column: Displays the columns names.

 

 

Type: Select the type of data each column is supposed to contain. This validation is mandatory for all columns.

 

 

Date pattern: Define the expected date format for each column with the data type of Date.

 

 

Nullable: Select the check box in an individual column to define the column to be nullable, that is, to allow empty rows in this column to go to the output flow regardless of the base schema definition. To define all columns to be nullable, select the check box in the table header.

 

 

Undefined or empty: Select the check box in an individual column to reject empty rows in this column while the column is not nullable in the base schema definition. To carry out this verification on all the columns, select the check box in the table header.

 

 

Max length: Select the check box in an individual column to verify the data length of the column against the length definition of the base schema. To carry out this verification on all the columns, select the check box in the table header.

 

Use another schema for compliance check

Define a reference schema as you expect the data to be, in order to reject the non-compliant data.

It can be restrictive on data type, null values, and/or length.

 

Trim the excess content of column when length checking chosen and the length is greater than defined length

With any of the three modes of tSchemaComplianceCheck, select this check box to truncate the data that exceeds the length specified rather than reject it.

Note

This option is applicable only on data of String type.

Advanced settings

Use Fastest Date Check

Select this check box to perform a fast date format check using the TalendDate.isDate() method of the TalendDate system routine if Date pattern is not defined. For more information about routines, see Talend Studio User Guide.

 

Ignore TimeZone when Check Date

Select this check box to ignore the time zone setup upon date check.

Not available when the Check all columns from schema mode is selected.

 

Treat all empty string as NULL

Select this check box to treat any empty fields in any columns as null values, instead of empty strings.

By default, this check box is selected. When it is cleared, the Choose Column(s) table shows to let you select individual columns.

 

tStatCatcher Statistics

Select this check box to collect log data at the component level.

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

This component is an intermediary step in the flow allowing to exclude from the main flow the non-compliant data. This component cannot be a start component as it requires an input flow. It also requires at least one output component to gather the validated flow, and possibly a second output component for rejected data using Rejects link. For more information, see Talend Studio User Guide.

Scenario: Validating data against schema

This scenario presents a Job that checks the type, nullability and length of data from an incoming flow against a defined reference schema, and displays the validation results on the Run console.

The incoming flow comes from a simple CSV file that contains heterogeneous data including wrong data type, data exceeding the maximum length, wrong ID and null values in non-nullable columns, as shown below:

ID;Name;BirthDate;State;City
1;Dwight;06-04-2008;Delaware;Concord
2;Warren;25-10-2008;Montana
3;Benjamin;17-08-2008;Washington;Austin
4;Harry;14-04-2008;Kansas;Annapolis
5;Ulysses;2007-04-12;Michigan;Raleigh
6;James;19-08-2007;Delaware;Charleston
.7;Bill;20-04-2007;Illinois;Bismarck
8;Ulysses;04-12-2008;;Saint Paul
9;Thomas;09-05-2008;Maryland;Albany
10;Ronald;11-02-2008;Florida;Hartford

Setting up the Job

  1. Drop the following components: a tFileInputDelimited, a tSchemaComplianceCheck, and two tLogRow components from the Palette to the design workspace.

  2. Connect the tFileInputDelimited component to the tSchemaComplianceCheck component using a Row > Main connection.

  3. Connect the tSchemaComplianceCheck component to the first tLogRow component using a Row > Main connection. This output flow will gather the valid data.

  4. Connect the tSchemaComplianceCheck component to the second tLogRow component using a Row > Rejects connection. This second output flow will gather the non-compliant data. It passes two additional columns to the next component: ErrorCode and ErrorMessage. These two read-only columns provide information about the rejected data to ease error handling and troubleshooting if needed.

Configuring the components

  1. Double-click the tFileInputDelimited component to display its Basic settings view and define the basic parameters including the input file name and the number of header rows to skip.

  2. Click the [...] button next to Edit schema to describe the data structure of the input file. In this use case, the schema is made of five columns: ID, Name, BirthDate, State, and City.

  3. Fill the Length field for the Name, State and City columns with 7, 10 and 10 respectively. Then click OK to close the schema dialog box and propagate the schema.

  4. Double-click the tSchemaComplianceCheck component to display its Basic settings view, wherein you will define most of the validation parameters.

  5. Select the Custom defined option in the Mode area to perform custom defined checks.

    In this example, we use the Checked columns table to set the validation parameters. However, you can also select the Check all columns from schema check box if you want to perform all the checks (type, nullability and length) on all the columns against the base schema, or select the Use another schema for compliance check option and define a new schema as the expected structure of the data.

  6. In the Checked Columns table, define the checks to be performed. In this use case:

    - The type of the ID column should be Int.

    - The length of the Name, State and City columns should be checked.

    - The type of the BirthDate column should be Date, and the expected date pattern is dd-MM-yyyy.

    - All the columns should be checked for null values, so clear the Nullable check box for all the columns.

    Note

    To send rows containing fields exceeding the defined maximum length to the reject flow, make sure that the Trim the excess content of column when length checking chosen and the length is greater than defined length check box is cleared.

  7. In the Advanced settings view of the tSchemaComplianceCheck component, select the Treat all empty string as NULL option to sent any rows containing empty fields to the reject flow.

  8. To view the validation result in tables on the Run console, double-click each tLogRow component and select the Table option in the Basic settings view.

Executing the Job

  • Save your Job and press F6 to launch it.

    Two tables are displayed on the console, showing the valid data and rejected data respectively.

tSchemaComplianceCheck 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, tSchemaComplianceCheck, as well as the other Map/Reduce components preceding it, generates native Map/Reduce code. This section presents the specific properties of tSchemaComplianceCheck when it is used in that situation. For further information about a Talend Map/Reduce Job, see Talend Big Data Getting Started Guide.

Component family

Data Quality

 

Basic settings

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

It describes the structure and nature of your data to be processed as it is.

 

 

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.

 

Check all columns from schema

Select this option to carry out all checks on all columns against the base schema.

 

Custom defined

Select this option to carry out particular checks on particular columns. When this option is selected, the Checked Columns table shows.

 

Checked Columns

In this table, define what checks are to be carried out on which columns.

 

 

Column: Displays the columns names.

 

 

Type: Select the type of data each column is supposed to contain. This validation is mandatory for all columns.

 

 

Date pattern: Define the expected date format for each column with the data type of Date.

 

 

Nullable: Select the check box in an individual column to define the column to be nullable, that is, to allow empty rows in this column to go to the output flow regardless of the base schema definition. To define all columns to be nullable, select the check box in the table header.

 

 

Undefined or empty: Select the check box in an individual column to reject empty rows in this column while the column is not nullable in the base schema definition. To carry out this verification on all the columns, select the check box in the table header.

 

 

Max length: Select the check box in an individual column to verify the data length of the column against the length definition of the base schema. To carry out this verification on all the columns, select the check box in the table header.

 

Use another schema for compliance check

Define a reference schema as you expect the data to be, in order to reject the non-compliant data.

It can be restrictive on data type, null values, and/or length.

 

Trim the excess content of column when length checking chosen and the length is greater than defined length

With any of the three modes of tSchemaComplianceCheck, select this check box to truncate the data that exceeds the length specified rather than reject it.

Note

This option is applicable only on data of String type.

Advanced settings

Use Fastest Date Check

Select this check box to perform a fast date format check using the TalendDate.isDate() method of the TalendDate system routine if Date pattern is not defined. For more information about routines, see Talend Studio User Guide.

 

Ignore TimeZone when Check Date

Select this check box to ignore the time zone setup upon date check.

Not available when the Check all columns from schema mode is selected.

 

Treat all empty string as NULL

Select this check box to treat any empty fields in any columns as null values, instead of empty strings.

By default, this check box is selected. When it is cleared, the Choose Column(s) table shows to let you select individual columns.

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 Map/Reduce Jobs

In a Talend Map/Reduce Job, this component is used as an intermediate step and 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.

It does not support data of the Object and the List types.

For further information about a Talend Map/Reduce Job, see the sections describing how to create, convert and configure a Talend Map/Reduce Job of the Talend Big Data Getting Started Guide.

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.

Related scenarios

No scenario is available for the Map/Reduce version of this component yet.