tMysqlInput - 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

tMysqlInput reads a database and extracts fields based on a query.

Purpose

tMysqlInput executes a DB query with a strictly defined order which must correspond to the schema definition. Then it passes on the field list to the next component via a Main row link.

tMysqlInput properties

Component family

Databases/MySQL

 

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.

 

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.

 

DB version

Select the version of the database to be used.

 

Use an existing connection

Select this check box and in the Component List click the relevant connection component to reuse the connection details you already defined.

Note

When a Job contains the parent Job and the child Job, if you need to share an existing connection between the two levels, for example, to share the connection created by the parent Job with the child Job, you have to:

  1. In the parent level, register the database connection to be shared in the Basic settings view of the connection component which creates that very database connection.

  2. In the child level, use a dedicated connection component to read that registered database connection.

For an example about how to share a database connection across Job levels, see Talend Studio User Guide.

 

Host

Database server IP address.

 

Port

Listening port number of DB server.

 

Database

Name of the database.

 

Username and Password

DB user authentication data.

To enter the password, click the [...] button next to the password field, and then in the pop-up dialog box enter the password between double quotes and click OK to save the settings.

 

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.

 

 

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.

  

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.

 

Table Name

Name of the table to be read.

 

Query type and Query

Enter your DB query paying particularly attention to properly sequence the fields in order to match the schema definition.

  Specify a data source alias

Select this check box and specify the alias of a data source created on the Talend Runtime side to use the shared connection pool defined in the data source configuration. This option works only when you deploy and run your Job in Talend Runtime. For a related use case, see Scenario 4: Retrieving data from a MySQL database using the data source on Talend Runtime side to set up the database connection.

Warning

If you use the component's own DB configuration, your data source connection will be closed at the end of the component. To prevent this from happening, use a shared DB connection with the data source alias specified.

This check box is not available when the Use an existing connection check box is selected.

Advanced settings

Additional JDBC parameters

Specify additional connection properties for the DB connection you are creating. This option is not available if you have selected the Use an existing connection check box in the Basic settings.

Note

When you need to handle data of the time-stamp type 0000-00-00 00:00:00 using this component, set the parameter as:

noDatetimeStringSync=true&zeroDa√ā¬≠teTimeBehavior=convertToNull.

 

Enable stream

Select this check box to enables streaming over buffering which allows the code to read from a large table without consuming a large amount of memory in order to optimize the performance.

This check box is available only when Mysql 4 or Mysql 5 is selected from the DB Version drop-down list.

 

Trim all the String/Char columns

Select this check box to remove leading and trailing whitespace from all the String/Char columns.

 

Trim column

Remove leading and trailing whitespace from defined columns.

Note

Clear Trim all the String/Char columns to enable Trim columns in this field.

 

tStatCatcher Statistics

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

Dynamic settings

Click the [+] button to add a row in the table and fill the Code field with a context variable to choose your database connection dynamically from multiple connections planned in your Job. This feature is useful when you need to access database tables having the same data structure but in different databases, especially when you are working in an environment where you cannot change your Job settings, for example, when your Job has to be deployed and executed independent of Talend Studio.

The Dynamic settings table is available only when the Use an existing connection check box is selected in the Basic settings view. Once a dynamic parameter is defined, the Component List box in the Basic settings view becomes unusable.

For examples on using dynamic parameters, see Scenario 3: Reading data from MySQL databases through context-based dynamic connections and Scenario: Reading data from different MySQL databases using dynamically loaded connection parameters. For more information on Dynamic settings and context variables, see Talend Studio User Guide.

Global Variables 

NB_LINE: the number of rows processed. This is an After variable and it returns an integer.

QUERY: the query statement 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

This component covers all possible SQL queries for Mysql databases.

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.

Scenario 1: Writing columns from a MySQL database to an output file

In this scenario we will read certain columns from a MySQL database, and then write them to a table in a local output file.

Dragging and dropping components and linking them together

  1. Drop tMysqlInput and tFileOutputDelimited from the Palette onto the workspace.

  2. Link tMysqlInput to tFileOutputDelimited using a Row > Main connection.

Configuring the components

  1. Double-click tMysqlInput to open its Basic Settings view in the Component tab.

  2. From the Property Type list, select Repository if you have already stored the connection to database in the Metadata node of the Repository tree view. The property fields that follow are automatically filled in.

    For more information about how to store a database connection, see Talend Studio User Guide.

    If you have not defined the database connection locally in the Repository, fill in the details manually after selecting Built-in from the Property Type list.

  3. Set the Schema as Built-in and click Edit schema to define the desired schema.

    The schema editor opens:

  4. Click the [+] button to add the rows that you will use to define the schema, four columns in this example id, first_name, city and salary.

    Under Column, click in the fields to enter the corresponding column names.

    Click the field under Type to define the type of data.

    Click OK to close the schema editor.

  5. Next to the Table Name field, click the [...] button to select the database table of interest.

    A dialog box displays a tree diagram of all the tables in the selected database:

  6. Click the table of interest and then click OK to close the dialog box.

  7. Set the Query Type as Built-In.

  8. In the Query box, enter the query required to retrieve the desired columns from the table.

  9. Double-click tFileOutputDelimited to set its Basic settings in the Component tab.

  10. Next to the File Name field, click the [...] button to browse your directory to where you want to save the output file, then enter a name for the file.

    Select the Include Header check box to retrieve the column names as well as the data.

  11. Save the Job.

Executing the Job

The results below can be found after F6 is pressed to run the Job.

As shown above, the output file is written with the desired column names and corresponding data, retrieved from the database:

Note

The Job can also be run in the Traces Debug mode, which allows you to view the rows as they are being written to the output file, in the workspace.

Scenario 2: Using context parameters when reading a table from a MySQL database

In this scenario, we will read a table from a MySQL database, using a context parameter to refer to the table name.

Dragging and dropping components and linking them together

  1. Drop tMysqlInput and tLogRow from the Palette onto the workspace.

  2. Link tMysqlInput to tLogRow using a Row > Main connection.

Configuring the components

  1. Double-click tMysqlInput to open its Basic Settings view in the Component tab.

  2. From the Property Type list, select Repository if you have already stored the connection to database in the Metadata node of the Repository tree view. The property fields that follow are automatically filled in.

    For more information about how to store a database connection, see Talend Studio User Guide.

    If you have not defined the database connection in the Repository, fill in the details manually after selecting Built-in from the Property Type list.

  3. Set the Schema as Built-In and click Edit schema to define the desired schema.

    The schema editor opens:

  4. Click the [+] button to add the rows that you will use to define the schema, seven columns in this example: id, first_name, last_name, city, state, date_of_birth and salary.

    Under Column, click the fields to enter the corresponding column names.

    Click the fields under Type to define the type of data.

    Click OK to close the schema editor.

  5. Put the cursor in the Table Name field and press F5 for context parameter setting.

    For more information about context settings, see Talend Studio User Guide.

  6. Keep the default setting in the Name field and type in the name of the database table in the Default value field, employees in this case.

  7. Click Finish to validate the setting.

    The context parameter context.TABLE automatically appears in the Table Name field.

  8. In the Query type list, select Built-In. Then, click Guess Query to get the query statement.

    In this use case, we want to read the records with the salary above 8000. Therefore, we add a Where clause and the final query statement is as follows:

    "SELECT 
      "+context.TABLE+".`id`, 
      "+context.TABLE+".`first_name`, 
      "+context.TABLE+".`last_name`, 
      "+context.TABLE+".`city`, 
      "+context.TABLE+".`state`, 
      "+context.TABLE+".`date_of_birth`, 
      "+context.TABLE+".`salary`
    FROM "+context.TABLE+"
    WHERE
      "+context.TABLE+".`salary` > 8000"
  9. Double-click tLogRow to set its Basic Settings in the Component tab.