Component family |
Databases/MySQL |
|
Function |
tMysqlRow is the specific |
|
Purpose |
Depending on the nature of the query and the database, tMysqlRow acts on the actual DB structure |
|
Basic settings |
Property type |
Either Built-in or Since version 5.6, both the Built-In mode and the Repository mode are |
|
|
Built-in: No property data stored |
|
|
Repository: Select the repository |
|
DB Version |
Select the MySQL version that you are using. |
|
Use an existing connection |
Select this check box and in the Component List click the NoteWhen a Job contains the parent Job and the child Job, if you need to share an existing
For an example about how to share a database connection across Job levels, see |
|
Host |
Database server IP address |
|
Port |
Listening port number of DB server. |
|
Database |
Name of the database |
|
Username and |
DB user authentication data. To enter the password, click the […] button next to the |
|
Schema and Edit |
A schema is a row description. It defines the number of fields to be processed and passed on Since version 5.6, both the Built-In mode and the Repository mode are |
|
|
Built-In: You create and store the schema locally for this |
|
|
Repository: You have already created the schema and When the schema to be reused has default values that are integers or functions, ensure that For more details, see https://help.talend.com/display/KB/Verifying+default+values+in+a+retrieved+schema. |
Click Edit schema to make changes to the schema. If the
|
||
|
Table Name |
Name of the table to be processed. |
|
Query type |
Either Built-in or Since version 5.6, both the Built-In mode and the Repository mode are |
|
|
Built-in: Fill in manually the |
|
|
Repository: Select the relevant |
|
Guess |
Click the Guess Query button to |
|
Query |
Enter your DB query paying particularly attention to properly |
|
Die on error |
This check box is selected by default. Clear the check box to skip |
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. WarningIf you use the component’s own DB configuration, your data source connection will be This check box is not available when the Use an existing |
|
Advanced settings |
Additional JDBC parameters |
Specify additional connection properties for the DB connection you |
|
Propagate QUERY’s recordset |
Select this check box to insert the result of the query in a NoteThis option allows the component to have a different schema |
|
Use PreparedStatement |
Select this check box if you want to query the database using a
Parameter Index: Enter the
Parameter Type: Enter the parameter
Parameter Value: Enter the NoteThis option is very useful if you need to execute the same |
|
Commit every |
Number of rows to be completed before committing batches of rows |
|
tStatCatcher Statistics |
Select this check box to collect log data at the component |
Dynamic settings |
Click the [+] button to add a row in the table and fill The Dynamic settings table is available only when the For more information on Dynamic settings and context |
|
Global Variables |
QUERY: the SQL query statement being processed. This is a ERROR_MESSAGE: the error message generated by the A Flow variable functions during the execution of a component while an After variable To fill up a field or expression with a variable, press Ctrl + For further information about variables, see Talend Studio |
|
Usage |
This component offers the flexibility of the DB query and covers |
|
Log4j |
The activity of this component can be logged using the log4j feature. For more information on this feature, see Talend Studio User 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. |
This scenario describes a four-component job that removes a table index, applies a
select insert action onto a table then regenerates the index.
-
Select and drop the following components onto the design workspace:
tMysqlRow (x2), tRowGenerator, and tMysqlOutput. -
Link the first tMysqlRow to tRowGenerator using an OnComponentOk connection.
-
Link tRowGenerator to tMysqlOutput using a Row > Main
connection. -
Link tRowGenerator to the second
tMysqlRow using an OnSubjobOk connection.
-
Select the tMysqlRow to fill in the DB
Basic settings. -
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.
-
Propagate the properties and schema details onto the other components of
the Job.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. -
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> -
Select the second tMysqlRow component,
check the DB properties and schema. -
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. -
Select the tMysqlOutput component and
fill in the DB connection properties either from the Repository or
manually the DB connection details are specific for this use
only. The table to be fed is named:
comprehensive. -
The schema should be automatically inherited from the data flow coming
from the tLogRow. Edit the schema to check
its structure and check that it corresponds to the schema expected on the DB
table specified.The Action on table is
None and the Action on
data is Insert.No additional Columns is required for this job.
-
Press Ctrl+S to save the Job.
-
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.
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 sent as a parameter. Note that
PreparedStatement object can also be used in avoiding SQL injection.
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.
-
In the Repository, expand the Metadata and File
delimited nodes. -
Select the metadata which corresponds to the client file and slide the
metadata onto the workspace. Here, we are using the
customers metadata. -
Double-click tFileInputDelimited in the
[Components] dialog box to add
tFileInputDelimited to the workspace,
with the relevant fields filled by the metadata file. -
Drop tMysqlRow, tParseRecordSet and tFileOutputDelimited onto the workspace.
-
Link tFileInputDelimited to tMysqlRow using a Row > Main
connection. -
Link tMysqlRow to tParseRecordSet using a Row
> Main connection. -
Link tParseRecordSet to tFileOutputDelimited using a Row > Main
connection.
-
Double-click tFileInputDelimited to open
its Basic settings view. -
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. -
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.From the Palette, select the tMysqlRow, tParseRecordSet and tFileOutputDelimited components and drop them onto the
workspace. -
Double click tMysqlRow to set its
properties in the Basic settings tab of the
Component view. -
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. -
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. -
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. -
Click Advanced settings to set the
components advanced properties. -
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.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.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.In the Parameter Type cell, enter the
type of parameter. Here, the parameter is a whole number, hence, select
Int from the list.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".
-
Double click tParseRecordSet to set its
properties in the Basic settings tab of the
Component view. -
From the Prev. Comp. Column list, select
the preceding components column for analysis. In this example, select
LabelStateRecordSet.Click on the Sync columns button to
retrieve the schema from the preceding component. The Attribute table is automatically completed with the schema
columns.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“. -
Double click tFileOutputDelimited to set
its properties in the Basic settings tab of
the Component view. -
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.
In this scenario, a flow generated by tFixedFlowInput
is combined with a flow from the Mysql database. The source flow contains id and age fields while
the Mysql table contains id and name. We want to retrieve the age data of the source flow and combine it with the id and name records from
the Mysql table based on id matching. One thing that
is worth noting is that the input schema is different from the output one at tMysqlRow in the Job.
-
Drop tFixedFlowInput, tMysqlRow, tParseRecordSet and tLogRow
onto the workspace. -
Rename tFixedFlowInput as source_flow, tMysqlRow as insert_recordset, tParseRecordSet as parse_recordset and tLogRow
as show_combined_flow. -
Link tFixedFlowInput to tMysqlRow using a Row > Main
connection. -
Link tMysqlRow to tParseRecordSet using a Row
> Main connection. -
Link tParseRecordSet to tLogRow using a Row > Main
connection.
-
Double-click tFixedFlowInput to open its
Basic settings view. -
Select Use Inline Content (delimited
file) in the Mode
area.In the Content field, enter the data to
be transferred:121;302;20 -
Double-click the […] button next to
Edit schema to open the schema editor.Click the [+] button to add two columns,
namely id and age, with the type of Integer.Click Ok to close the editor.
-
Double-click tMysqlRow to open its
Basic settings view. -
In the Host and Port fields, enter the connection details.
In the Database field, enter the database
name.In the Username and Password fields, enter the authentication details.
In the Query field, enter the SQL query
to retrieve the id and name data from the Mysql table employee:"select id, name from employee
.
WHERE id=?"The question mark, “
?
“, represents the parameter to be set in
the Advanced settings tab. -
Click the […] button next to Edit schema to open the schema editor.
-
Click the [+] button to add two columns
in the right part, namely recordset and
age, with the type of Object and Integer. Note that recordset is intended to hold the query results of the Mysql
table, namely the id and name fields.Click OK to close the editor.
-
Click the Advanced settings tab for
further setup. -
Select the Propagate QUERY’s recordset
check box and choose recordset from the
use column list to insert the query
results in that column.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 line.
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.In the Parameter Type cell, enter the
type of parameter. Here, the parameter is an integer. Hence, select
Int from the list.In the Parameter Value cell, enter the
parameter value. Here, we want to retrieve the id and name from the
employee table based on the id value from the source flow. Hence, enter
row3.id. -
Double-click tParseRecordSet to open its
Basic settings view.From the Prev. Comp. Column list, select
the column to parse, namely recordset. -
Click the […] button next to Edit schema to open the schema editor.
Click the [+] button to add three columns
in the right part, namely id, name and age, with the type of Integer, String and Integer. Note that the id and name fields are
intended to hold the parsed data of recordset.Click OK to close the editor.
In the Attribute table, in the Value fields which correspond to id and name,
enter the name of the column in the Mysql table to be retrieved, namely
“id” and “name”. -
Double-click tLogRow to open its
Basic settings view.In the Mode area, select Table (print values in cells of a table for
better display.