August 17, 2023

tAmazonMysqlRow – Docs for ESB 5.x

tAmazonMysqlRow

tAmazonMysqlRow_icon32_white.png

tAmazonMysqlRow properties

Component family

Cloud/Amazon/MySQL

 

Function

tAmazonMysqlRow is the specific
component for this database query. It executes the SQL query stated
in the specified database. The row suffix means the component
implements a flow in the job design although it doesn’t provide
output.

Purpose

Depending on the nature of the query and the database, tAmazonMysqlRow acts on the actual DB
structure or on the data (although without handling data). The
SQLBuilder tool helps you write easily your SQL statements.

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.

 

Schema and Edit
Schema

A schema is a row description, that is to say, 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.

 

 

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 https://help.talend.com/display/KB/Verifying+default+values+in+a+retrieved+schema.

 

Table Name

Name of the table to be processed.

 

Query 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: Fill in manually the
query statement or build it graphically using SQLBuilder

 

 

Repository: Select the relevant
query stored in the Repository. The Query field gets accordingly
filled in.

 

Guess
Query

Click the Guess Query button to
generate the query which corresponds to your table schema in the
Query field.

 

Query

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

 

Die on error

This check box is selected by default. Clear the check box to skip
the row on error and complete the process for error-free rows. If
needed, you can retrieve the rows on 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
.

 

Propagate QUERY’s recordset

Select this check box to insert the result of the query in a
COLUMN of the current flow. Select this column from the use column list.

Note

This option allows the component to have a different schema
from that of the preceding component. Moreover, the column that
holds the QUERY’s recordset should be set to the type of
Object and this component
is usually followed by tParseRecordSet.

 

Use PreparedStatement

Select this check box if you want to query the database using a
PreparedStatement. In the Set
PreparedStatement Parameter
table, define the
parameters represented by “?” in the SQL instruction of the
Query field in the Basic Settings tab.

Parameter Index: Enter the
parameter position in the SQL instruction.

Parameter Type: Enter the parameter
type.

Parameter Value: Enter the
parameter value.

Note

This option is very useful if you need to exe­cute the same
query several times. Performance levels are increased

 

Commit every

Number of rows to be completed before committing batches of rows
together into the DB. This option ensures transaction quality (but
not rollback) and above all better performance on executions.

 

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 more information on Dynamic settings and context
variables, see Talend Studio User Guide.

Global Variables

QUERY: the SQL 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 offers the flexibility of the DB query and covers
all possible SQL queries.

Log4j

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: Removing and regenerating a MySQL table index

This scenario describes a four-component job that removes a table index, applies a
select insert action onto a table then regenerates the index.

use_case_tamazonmysqlrow_1.png

Setting up the Job

  1. Select and drop the following components onto the design workspace:
    tAmazonMysqlRow (x2), tRowGenerator, and tAmazonMysqlOutput.

  2. Connect tRowGenerator to tAmazonMysqlOutput.

  3. Using a OnComponentOk connections, link
    the first tAmazonMysqlRow to tRowGenerator and tRowGenerator to the second tAmazonMysqlRow.

Configuring the tAmazonMysqlRow component

  1. Select the tAmazonMysqlRow to fill in
    the DB Basic settings.

  2. In Property type as well in Schema, select the relevant DB entry in the
    list.

    The DB connection details and the table schema are accordingly filled in.

  3. Propagate the properties and schema details onto the other components of
    the Job.

  4. The query being stored in the Metadata
    area of the Repository, you can also select
    Repository in the Query type field and the relevant query entry.

  5. If you didn’t store your query in the Repository, type in the following SQL statement to alter the
    database entries: drop index <index_name> on <table_name>

  6. Select the second tAmazonMysqlRow
    component, check the DB properties and schema.

  7. Type in the SQL statement to recreate an index on the table using the
    following statement: create index <index_name> on <table_name>
    (<column_name>)

    The tRowGenerator component is used to
    generate automatically the columns to be added to the DB output table
    defined.

Configuring the output component

  1. Select the tAmazonMysqlOutput component
    and fill in the DB connection properties> either from the
    Repository, or manually for this specific use only
    . The table
    to be fed is named: comprehensive.

  2. The schema should be automatically inherited from the data flow coming
    from the tRowGenerator. Edit the schema to
    check its structure and check that it corresponds to the schema expected on
    the DB table specified.

  3. The Action on table is
    None and the Action on
    data
    is Insert.

Job execution

Press F6 to run the job.

If you manage to watch the action on DB data, you can notice that the index is
dropped at the start of the job and recreated at the end of the insert
action.

Related topics: tDBSQLRow properties.

Scenario 2: Using PreparedStatement objects to query data

This scenario describes a four component job which allows you to link a table column
with a client file. The MySQL table contains a list of all the American States along
with the State ID, while the file contains the customer information including the ID of
the State in which they live. We want to retrieve the name of the State for each client,
using an SQL query. In order to process a large volume of data quickly, we use a
PreparedStatement object which means that the query is executed only once rather than
against each row in turn. Then each row is sentas a parameter.

For this scenario, we use a file and a database for which we have already stored the
connection and properties in the Rerpository metadata. For further information
concerning the creation of metadata in delimited files, the creation of database
connection metadata and the usage of metadata, see Talend Studio User
Guide
.

use_case_tamazonmysqlrow_2.png

Configuring the input component

  1. In the Repository, expand the Metadata and File
    delimited
    nodes. Select the metadata which corresponds to the
    client file you want to use in the Job.

    Here, we are using the customers metadata.

  2. Slide the metadata onto the workspace and double-click tFileInputDelimited in the [Components] dialog box so that the tFileInputDelimited component is created with the parameters
    already set.

    Use_Case_tMySQLRow2_2.png
  3. In the Schema list, select Built-in so that you can modify the component’s
    schema. Then click on […] next to the
    Edit schema field to add a column into
    which the name of the State will be inserted.

    Use_Case_tMySQLRow2_3.png
  4. Click on the [+] button to add a column
    to the schema. Rename this column LabelStateRecordSet
    and select Object from the Type list. Click OK to save your modifications.

  5. From the Palette, select the tAmazonMysqlRow, tParseRecordSet and tFileOutputDelimited components and drop them onto the
    workspace. Connect the four components using Row > Main type
    links.

Setting up the DB connection

  1. Double-click tAmazonMysqlRow to set its
    properties in the Basic settings tab of the
    Component view.

    use_case_tamazonmysqlrow_3.png
  2. In the Property Type list,
    select Repository and click on the
    […] button to select a database
    connection from the metadata in the Repository. The DB
    Version
    , Host, Port, Database,
    Username and Password fields are completed automatically. If you are
    using the Built-in mode, complete these
    fields manually.

  3. From the Schema list, select Built-in to set the schema properties manually
    and add the LabelStateRecordSet column, or click
    directly on the Sync columns button to
    retrieve the schemma from the preceding component.

  4. In the Query field, enter the SQL query
    you want to use. Here, we want to retrieve the names of the American States
    from the LabelState column of the MySQL table,
    us_state:

    The question mark, “?“, represents the parameter to be set in
    the Advanced settings tab.

Configuring the Advanced settings of tAmazonMysqlRow

  1. Click Advanced settings to set the
    component’s advanced properties.

    use_case_tamazonmysqlrow_4.png
  2. Select the Propagate QUERY’s recordset
    check box and select the LabelStateRecordSet column
    from the use column list to insert the
    query results in that column.

  3. Select the Use PreparedStatement check
    box and define the parameter used in the query in the Set PreparedStatement Parameters table. Click on the
    [+] button to add a parameter.

  4. In the Parameter Index cell, enter the
    parameter position in the SQL instruction. Enter “1” as
    we are only using one parameter in this example.

  5. In the Parameter Type cell, enter the
    type of parameter. Here, the parameter is a whole number, hence, select
    Int from the list.

  6. In the Parameter Value cell, enter the
    parameter value. Here, we want to retrieve the name of the State based on
    the State ID for every client in the input file. Hence, enter
    row1.idState".

Configuring the tParseRecordSet component

  1. Double-click tParseRecordSet to set its
    properties in the Basic settings tab of the
    Component view.

    Use_Case_tMySQLRow2_6.png
  2. From the Prev. Comp. Column list, select
    the preceding components column for analysis. In this example, select
    LabelStateRecordSet.

  3. Click on the Sync columns button to
    retrieve the schema from the preceding component. The Attribute table is automatically completed with the schema
    columns.

  4. In the Attribute table, in the Value field which corresponds to the
    LabelStateRecordSet, enter the name of the column
    containing the State names to be retrieved and matched with each client,
    within double quotation marks. In this example, enter
    LabelState“.

Configuring the output component

  1. Double-click tFileOutputDelimited to set
    its properties in the Basic settings tab of
    the Component view.

    Use_Case_tMySQLRow2_7.png
  2. In the File Name field, enter the access
    path and name of the output file. Click Sync
    columns
    to retrieve the schema from the preceding component.

Job execution

Save your Job and press F6 to run it.

Use_Case_tMySQLRow2_8.png

A column containing the name of the American State corrresponding to each client
is added to the file.


Related scenarios

For a related scenario, see:


Document get from Talend https://help.talend.com
Thank you for watching.
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x