Join
Operation name
Join
Function overview
Joins the two input data.
Data model
The data model of this component is table model type.
For more details on input/output schema, refer to Table model type .
Properties
Basic settings
Item name |
Required/Optional |
Use of variables |
Description |
Remarks |
---|---|---|---|---|
Name |
Required |
Not available |
Enter a name that is used on the script canvas. |
|
Input data (LEFT) |
Required |
Not available |
Select a component on the script canvas. |
|
Input data (RIGHT) |
Required |
Not available |
Select a component on the script canvas. |
|
Required settings
Item name |
Required/Optional |
Use of variables |
Description |
Remarks |
---|---|---|---|---|
Operation type |
Required |
Not available |
Select a type of operation.
|
|
Join key configuration |
Required |
- |
Specify the columns to be used as keys for the Join operation. Each row can be operated with the following buttons:
|
|
Join key configuration/Input data (LEFT) |
Required |
Not available |
Select the column name of Input Data(LEFT) to be used as a key. |
|
Join key configuration/Input data (RIGHT) |
Required |
Not available |
Select the column name of Input data (RIGHT) to be used as a key. |
|
Output settings
Item name |
Required/Optional |
Use of variables |
Description |
Remarks |
---|---|---|---|---|
Configure output manually |
Optional |
Not available |
Select whether or not to manually set columns to be output.
|
|
Output target configuration |
Optional |
- |
Specify columns to be output. Each row can be operated with the following buttons:
|
|
Output target configuration/Data source |
Required |
Not available |
Select a data source of the output target column.
|
|
Output target configuration/Column name |
Required |
Not available |
Select the name of a column to be output. The column names corresponding to the value specified in Output target/Data source are displayed as choices.
|
|
Comment
Item name |
Required/Optional |
Use of variables |
Description |
Remarks |
---|---|---|---|---|
Comment |
Optional |
Not available |
You can write a short description of this connector. |
|
Schemas
Input schema
Same as the schema of input source component.
Output schema
The number of columns varies depending on the settings for Output Settings.
For schema structure, refer to Table model type .
Loading schema in Mapper
The output schema is loaded automatically while the input schema needs to be loaded manually.
Specify the schema of the data to be loaded.
For details, refer to Edit Schema.
Mass data processing
Mass data processing isn't supported.
Parallel Stream Processing
PSP isn't supported.
Available component variables
Component variable name |
Description |
Remarks |
---|---|---|
message_category |
When an error occurs, the category of the message code corresponding to the error is stored. |
|
message_code |
When an error occurs, the code of the message code corresponding to the error is stored. |
|
message_level |
When an error occurs, the severity of the message code corresponding to the error is stored. |
|
error_type |
When an error occurs, the error type is stored. |
|
error_message |
When an error occurs, the error message is stored. |
|
error_trace |
When an error occurs, the trace information for the error is stored. |
|
Modifying schema of input source component
-
When the schema of the component specified in Input data (LEFT) or Input data (RIGHT) is modified, to reflect those changes to the Join operation, open the property setting dialog of the Join operation and click Finish button.
-
When the schema structure of the component specified in Input data (LEFT) or Input data (RIGHT) is modified (such as changes to the order of the schema elements, or deletion of schema elements), settings for Join key configuration/Input data (LEFT), Join key configuration/Input data (RIGHT), and Output target configuration/Column name must be modified accordingly.
The reason is that the Join operation keeps the information of columns by their positions in the order (indices) rather than by their names.
Null and empty strings
-
When there's a null value for the value of the column which is specified in Join key configuration, the null will be processed as a join key value.
-
When there's an empty string for the value of the column which is specified in Join key configuration, the behavior of the operation depends on the data type of the other specified column.
-
An empty string will be treated as a join key value when the columns are both of String type.
-
An error occurs when one of the column is of String type and the other is not.
-
Item description
Item name |
Description |
---|---|
INNER JOIN (default) |
For both tables of Input data (LEFT) and Input data (RIGHT), records are retrieved only if the key values are matched. |
LEFT OUTER JOIN |
For the table of Input data (LEFT), all records are retrieved. For the table of Input data (RIGHT), records are retrieved only if the key values are matched. |
RIGHT OUTER JOIN |
For the table of Input data (RIGHT), all records are retrieved. For the table of Input data (LEFT), records are retrieved only if the key values are matched. |
Example: Join the below two tables "Products" and "Sales" using "Product number" as a key.
Products |
Sales |
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
-
In case of INNER JOIN (default)
Product no.
Product name
Order amount
1
Product A
10
2
Product B
30
-
In case of LEFT OUTER JOIN
Product no.
Product name
Order amount
1
Product A
10
2
Product B
30
4
Product D
-
In case of RIGHT OUTER JOIN
Product no.
Product name
Order amount
1
Product A
10
2
Product B
30
3
50
Joining columns with different data types
If the data types of the columns specified as the join key are different, the following data type conversion is performed.
Conversion of data types
Data type of the column of Input data (LEFT) |
Data type of the column of Input data (RIGHT) |
||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
byte |
short |
int |
long |
float |
double |
BigDecimal |
boolean |
String |
Date |
|
|
byte |
― |
short |
int |
long |
BigDecimal |
BigDecimal |
BigDecimal |
× |
byte |
× |
× |
short |
short |
― |
int |
long |
BigDecimal |
BigDecimal |
BigDecimal |
× |
short |
× |
× |
int |
int |
int |
― |
long |
BigDecimal |
BigDecimal |
BigDecimal |
× |
int |
× |
× |
long |
long |
long |
long |
― |
BigDecimal |
BigDecimal |
BigDecimal |
× |
long |
× |
× |
float |
BigDecimal |
BigDecimal |
BigDecimal |
BigDecimal |
― |
BigDecimal |
BigDecimal |
× |
BigDecimal |
× |
× |
double |
BigDecimal |
BigDecimal |
BigDecimal |
BigDecimal |
BigDecimal |
― |
BigDecimal |
× |
BigDecimal |
× |
× |
BigDecimal |
BigDecimal |
BigDecimal |
BigDecimal |
BigDecimal |
BigDecimal |
BigDecimal |
― |
× |
BigDecimal |
× |
× |
boolean |
× |
× |
× |
× |
× |
× |
× |
― |
boolean |
× |
× |
String |
byte |
short |
int |
long |
BigDecimal |
BigDecimal |
BigDecimal |
boolean |
― |
× |
× |
Date |
× |
× |
× |
× |
× |
× |
× |
× |
× |
× |
× |
byte[] |
× |
× |
× |
× |
× |
× |
× |
× |
× |
× |
× |
-
How to read the table
Symbol or text
Description
<Internal data type>
Data type conversion to <Internal data type> is performed.
―
No conversion is performed because they have the same data type.
×
Joining columns of specified data types isn't supported.
-
The internal data type char is treated as String.
-
When converting String to boolean, "true" will be converted to true and strings other than "true" will be converted to false.
-
Multi-thread processing is supported.
= Remarks =For the specification limits on multi-thread processing, refer to Specification limitations.
-
When specifying Join key configuration and Output target configuration, the output schema of input source component must be configured.
For components that require manual schema settings, load schemas with Mapper.
-
The order of the result data of the Join operation isn't ensured.
-
Even when mass data processing is performed by the input source component, data is temporarily held in the memory during the execution of the Join operation.
Therefore, when the data amount is huge, OutOfMemoryError may occur even with mass data processing enabled.
Exception name |
Cause |
Solution |
---|---|---|
InputDataNotFoundException |
Input data isn't specified. |
Specify Input data or draw a data flow. |
InvalidInputTypeException |
Input data isn't table model type. |
Check whether the component specified in Input data is table model type. |
InvalidPropertyConfigurationException Value is not specified in [<property name>]. |
A value isn't specified in <property name>. |
Specify <property name>. |
InvalidPropertyConfigurationException Value is not specified in [<property name2>] of the row [<row number>] in [<property name1>]. |
A value isn't specified in <property name2>. |
Specify <property name2>. |
InvalidPropertyConfigurationException The value specified in the row [<row number>] of <property name> is duplicated. |
The value specified in <property name> is duplicated. |
Check whether the value specified in <property name> is appropriate. |
InvalidPropertyConfigurationException The value specified in <property name2> of the row [<row number>] of [<property name1>] is duplicated. |
The value specified in <property name2> is duplicated. |
Check whether the value specified in <property name2> is appropriate. |
ConversionFailedException Column value of <input data> cannot be processed as specified join key. |
The contents of <input data> contain some values that can't be processed as per the specification in Join key configuration. |
Check whether the contents of <input data> are compatible with the specification in Join key configuration, or whether any empty string is contained. |