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

tMysqlOutput writes, updates, makes changes or suppresses entries in a database.

Purpose

tMysqlOutput executes the action defined on the table and/or on the data contained in the table, based on the flow incoming from the preceding component in the Job.

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

 

DB Version

Select the MySQL version you are using.

 

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.

 

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.

 

Table

Name of the table to be written. Note that only one table can be written at a time

 

Action on table

On the table defined, you can perform one of the following operations:

Default: No operation is carried out.

Drop and create a table: The table is removed and created again.

Create a table: The table does not exist and gets created.

Create a table if not exists: The table is created if it does not exist.

Drop a table if exists and create: The table is removed if it already exists and created again.

Clear a table: The table content is deleted.

Truncate table: The table content is quickly deleted. However, you will not be able to rollback the operation.

 

Action on data

On the data of the table defined, you can perform:

Insert: Add new entries to the table. If duplicates are found, the job stops.

Update: Make changes to existing entries.

Insert or update: Insert a new record. If the record with the given reference already exists, an update would be made.

Update or insert: Update the record with the given reference. If the record does not exist, a new record would be inserted.

Delete: Remove entries corresponding to the input flow.

Replace: Add new entries to the table. If an old row in the table has the same value as a new row for a PRIMARY KEY or a UNIQUE index, the old row is deleted before the new row is inserted.

Insert or update on duplicate key or unique index: Add entries if the inserted value does not exist or update entries if the inserted value already exists and there is a risk of violating a unique index or primary key.

Insert Ignore: Add only new rows to prevent duplicate key errors.

Warning

You must specify at least one column as a primary key on which the Update and Delete operations are based. You can do that by clicking Edit Schema and selecting the check box(es) next to the column(s) you want to set as primary key(s). For an advanced use, click the Advanced settings view where you can simultaneously define primary keys for the update and delete operations. To do that: Select the Use field options check box and then in the Key in update column, select the check boxes next to the column name on which you want to base the update operation. Do the same in the Key in delete column for the deletion operation.

 

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.

When the schema to be reused has default values that are integers or functions, ensure that these default values are not enclosed within quotation marks. If they are, you must remove the quotation marks manually.

For more details, see the article Verifying default values in a retrieved schema on Talend Help Center (https://help.talend.com).

  

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.

 

Die on error

This check box is selected by default. Clear the check box to skip the row in error and complete the process for error-free rows. If needed, you can retrieve the rows in error via a Row > Rejects link.

  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

You can press Ctrl+Space to access a list of predefined global variables.

 

Extend Insert

Select this check box to carry out a bulk insert of a defined set of lines instead of inserting lines one by one. The gain in system performance is considerable.

Number of rows per insert: enter the number of rows to be inserted per operation. Note that the higher the value specified, the lower performance levels shall be due to the increase in memory demands.

Note

This option is not compatible with the Reject link. You should therefore clear the check box if you are using a Row > Rejects link with this component.

Warning

If you are using this component with tMysqlLastInsertID, ensure that the Extend Insert check box in Advanced Settings is not selected. Extend Insert allows for batch loading, however, if the check box is selected, only the ID of the last line of the last batch will be returned.

 

Use Batch

Select this check box to activate the batch mode for data processing.

Note

This check box is available only when you have selected, the Update or the Delete option in the Action on data field.

 

Batch Size

Specify the number of records to be processed in each batch..

This field appears only when the Use batch mode check box is selected.

 

Commit every

Number of rows to be included in the batch before it is committed to the DB. This option ensures transaction quality (but not rollback) and, above all, a higher performance level.

 

Additional Columns

This option is not available if you have just created the DB table (even if you delete it beforehand). This option allows you to call SQL functions to perform actions on columns, provided that these are not insert, update or delete actions, or actions that require pre-processing.

 

 

Name: Type in the name of the schema column to be altered or inserted.

 

 

SQL expression: Type in the SQL statement to be executed in order to alter or insert the data in the corresponding column.

 

 

Position: Select Before, Replace or After, depending on the action to be performed on the reference column.

 

 

Reference column: Type in a reference column that tMySqlOutput can use to locate or replace the new column, or the column to be modified.

 

Use field options

Select this check box to customize a request, particularly if multiple actions are being carried out on the data.

 

Use Hint Options

Select this check box to activate the hint configuration area which helps you optimize a query's execution. In this area, parameters are:

- HINT: specify the hint you need, using the syntax /*+ */.

- POSITION: specify where you put the hint in a SQL statement.

- SQL STMT: select the SQL statement you need to use.

 

Enable debug mode

Select this check box to display each step involved in the process of writing data in the database.

 

Use duplicate key update mode insert

Updates the values of the columns specified, in the event of duplicate primary keys.:

Column: Between double quotation marks, enter the name of the column to be updated.

Value: Enter the action you want to carry out on the column.

Note

To use this option you must first of all select the Insert mode in the Action on data list found in the Basic Settings view.

 

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 read by an input component or transferred to an output component. This is an After variable and it returns an integer.

NB_LINE_UPDATED: the number of rows updated. This is an After variable and it returns an integer.

NB_LINE_INSERTED: the number of rows inserted. This is an After variable and it returns an integer.

NB_LINE_DELETED: the number of rows deleted. This is an After variable and it returns an integer.

NB_LINE_REJECTED: the number of rows rejected. This is an After variable and it returns an integer.

QUERY: the query statement processed. This is an After variable and it returns a string.

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.

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

Usage

This component offers the flexibility benefit of the DB query and covers all of the SQL queries possible.

This component must be used as an output component. It allows you to carry out actions on a table or on the data of a table in a MySQL database. It also allows you to create a reject flow using a Row > Rejects link to filter data in error. For an example of tMySqlOutput in use, see Scenario 3: Retrieve data in error with a Reject link.

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: Adding a new column and altering data in a DB table

This Java scenario is a three-component job that aims at creating random data using a tRowGenerator, duplicating a column to be altered using the tMap component, and eventually altering the data to be inserted based on an SQL expression using the tMysqlOutput component.

  • Drop the following components from the Palette onto the design workspace: tRowGenerator, tMap and tMySQLOutput.

  • Connect tRowGenerator, tMap, and tMysqlOutput using the Row Main link.

  • In the design workspace, select tRowGenerator to display its Basic settings view.

  • Click the Edit schema three-dot button to define the data to pass on to the tMap component, two columns in this scenario, name and random_date.

  • Click OK to close the dialog box.

  • Click the RowGenerator Editor three-dot button to open the editor and define the data to be generated.

  • Click in the corresponding Functions fields and select a function for each of the two columns, getFirstName for the first column and getrandomDate for the second column.

  • In the Number of Rows for Rowgenerator field, enter 10 to generate ten first name rows and click Ok to close the editor.

  • Double-click the tMap component to open the Map editor. The Map editor opens displaying the input metadata of the tRowGenerator component.

  • In the Schema editor panel of the Map editor, click the plus button of the output table to add two rows and define the first as random_date and the second as random_date1.

In this scenario, we want to duplicate the random_date column and adapt the schema in order to alter the data in the output component.

  • In the Map editor, drag the random_date row from the input table to the random_date and random_date1 rows in the output table.

  • Click OK to close the editor.

  • In the design workspace, double-click the tMysqlOutput component to display its Basic settings view and set its parameters.

  • Set Property Type to Repository and then click the three-dot button to open the [Repository content] dialog box and select the correct DB connection. The connection details display automatically in the corresponding fields.

    Note

    If you have not stored the DB connection details in the Metadata entry in the Repository, select Built-in on the property type list and set the connection detail manually.

  • Click the three-dot button next to the Table field and select the table to be altered, Dates in this scenario.

  • On the Action on table list, select Drop table if exists and create, select Insert on the Action on data list.

  • If needed, click Sync columns to synchronize with the columns coming from the tMap component.

  • Click the Advanced settings tab to display the corresponding view and set the advanced parameters.

  • In the Additional Columns area, set the alteration to be performed on columns.

    In this scenario, the One_month_later column replaces random_date_1. Also, the data itself gets altered using an SQL expression that adds one month to the randomly picked-up date of the random_date_1 column. ex: 2007-08-12 becomes 2007-09-12.

    -Enter One_Month_Later in the Name cell.

    -In the SQL expression cell, enter the relevant addition script to be performed, "adddate(Random_date, interval 1 month)" in this scenario.

    -Select Replace on the Position list.

    -Enter Random_date1 on the Reference column list.

Note

For this job we duplicated the random_date_1 column in the DB table before replacing one instance of it with the One_Month_Later column. The aim of this workaround was to be able to view upfront the modification performed.

  • Save your job and press F6 to execute it.

The new One_month_later column replaces the random_date1 column in the DB table and adds one month to each of the randomly generated dates.

Related topic: see tDBOutput properties.

Scenario 2: Updating data in a database table

This Java scenario describes a two-component Job that updates data in a MySQL table according to that in a delimited file.

  • Drop tFileInputDelimited and tMysqlOutput from the Palette onto the design workspace.

  • Connect the two components together using a Row Main link.

  • Double-click tFileInputDelimited to display its Basic settings view and define the component properties.

  • From the Property Type list, select Repository if you have already stored the metadata of the delimited file in the Metadata node in the Repository tree view. Otherwise, select Built-In to define manually the metadata of the delimited file.

    For more information about storing metadata, see Talend Studio User Guide.