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

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.

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

 

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 the article Verifying default values in a retrieved schema on Talend Help Center (https://help.talend.com).

 

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

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

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

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.

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.

  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.

  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.

  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:

    "SELECT LabelState
    FROM us_state WHERE idState=?"

    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.

  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.

  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.

  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.

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: