tAmazonMysqlOutput - 6.3

Talend Components Reference Guide

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

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

Purpose

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

tAmazonMysqlOutput properties

Component family

Cloud/Amazon/MySQL

 

Basic settings

Property type

Either Built-in or Repository.

Since version 5.6, both the Built-In mode and the Repository mode are available in any of the Talend solutions.

 

 

Built-in: No property data stored centrally.

 

 

Repository: Select the repository file in which the properties are stored. The fields that follow are completed automatically using the data retrieved.

 

DB Version

MySQL 5 is available.

 

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:

None: No operation is carried out.

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

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

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

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

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

Note

The dynamic schema feature can be used in the following modes: Insert; Update; Insert or update; Update or insert; Delete.

 

Schema and Edit schema

A schema is a row description, i.e. 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.

Since version 5.6, both the Built-In mode and the Repository mode are available in any of the Talend solutions.

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

 

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.

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 specidied, 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 corrsponding 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 tAmazonMysqlOutput 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.

 

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.

Note that when parallel execution is enabled, it is not possible to use global variables to retrieve return values in a subjob.

Warning

  • The Action on table field is not available with the parallelization function. Therefore, you must use a tCreateTable component if you want to create a table.

  • When parallel execution is enabled, it is not possible to use global variables to retrieve return values in a subjob.

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.

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 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 tAmazonMysqlOutput 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 tAmazonMysqlOutput component.

Setting up the Job

  1. Drop the following components from the Palette onto the design workspace: tRowGenerator, tMap and tAmazonMySQLOutput.

  2. Connect tRowGenerator, tMap, and tAmazonMysqlOutput using the Row Main link.

Configuring the input component

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

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

  3. Click OK to close the dialog box.

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

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

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

Configuring the tMap component

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

  2. In the Schema editor panel of the Map editor, click the [+] 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.

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

  4. Click OK to close the editor.

Configuring the output component

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

  2. Set Property Type to Repository and then click the [...] 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.

  3. Click the [...] button next to the Table field and select the table to be altered, Dates in this scenario.

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

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

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

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

Job execution

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.

Setting up the Job

  • Drop tFileInputDelimited and tAmazonMysqlOutput from the Palette onto the design workspace. Connect the two components together using a Row Main link.

Configuring the input component

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

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

  3. In the File Name field, click the [...] button and browse to the source delimited file that contains the modifications to propagate in the MySQL table.

    In this example, we use the customer_update file that holds four columns: id, CustomerName, CustomerAddress and idState. Some of the data in these four columns is different from that in the MySQL table.

  4. Define the row and field separators used in the source file in the corresponding fields. If needed, set Header, Footer and Limit.

    In this example, Header is set to 1 since the first row holds the names of columns, therefore it should be ignored. Also, the number of processed lines is limited to 2000.

  5. Select Built in from the Schema list then click the [...] button next to Edit Schema to open a dialog box where you can describe the data structure of the source delimited file that you want to pass to the component that follows.

  6. Select the Key check box(es) next to the column name(s) you want to define as key column(s).

    Note

    It is necessary to define at least one column as a key column for the Job to be executed correctly. Otherwise, the Job is automatically interrupted and an error message displays on the console.

Configuring the output component

  1. In the design workspace, double-click tAmazonMysqlOutput to open its Basic settings view where you can define its properties.

  2. Click Sync columns to retrieve the schema of the preceding component. If needed, click the [...] button next to Edit schema to open a dialog box where you can check the retrieved schema.

  3. From the Property Type list, select Repository if you have already stored the connection metadata in the Metadata node in the Repository tree view. Otherwise, select Built-In to define manually the connection information.

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

  4. In the Table field, enter the name of the table to update.

  5. From the Action on table list, select the operation you want to perform, None in this example since the table already exists.

  6. From the Action on data list, select the operation you want to perform on the data, Update in this example.

Job execution

Save your Job and press F6 to execute it.