In the Join page, you can join your current dataset with another dataset or recipe based upon information that is common to both datasets. For example, you could join together two sets of regional sales data based upon the product identifiers that they both use to track sales. In the Search panel, enter
join datasets or select from the toolbar.
- A join is a standard operation for merging the data from two different datasets. Some information on joins is provided below.
- You cannot perform joins on columns of Object or Array data type.
- A join operation is different from a union operation. In a union operation, data from one or more datasets is appended to the current dataset, assuming that the columns are identical or very similar. For more information, see Union Page.
Tip: You should perform your join operation as late as possible Depending on the types of operations you need to perform, you may need to perform joins earlier or later in your recipe steps. If your joined dataset has not been completely transformed, subsequent steps might impact the data in the dataset to which it was joined. If needed, you can modify your join after its creation. Details are below. For more information, see Optimize Job Processing.
|D s limitforbrowser|
Before You Begin
- Review your record counts. Before you specify the join, you should review your record counts and the uniqueness of your keys, which should provide an idea of the number of records you may see in the output. Note that the number of output records depends on the type of join and the matches between join keys.
- Review your join key values. If there are variations in the values in your join keys, you may end up with duplicate records in your joined dataset. Look for mismatched or missing values in your join keys, and correct if possible.
- Review the granularity of your data. If you bring together data at a lower fidelity than the source, you can end up with record matches that are not actually matching data. For example, if your timestamps are down-sampled from milliseconds to seconds as part of the join, you may have "matching" timestamps in seconds that were not matches at the millisecond level in the source data.
Step 1 - Select Objects to Join
For the current recipe loaded in the Transformer page, you can select any imported dataset, reference dataset, or recipe to join with the currently loaded data.
- Select the object to join in. To select the columns (keys) to base on the join and the type of join, click Preview.
Step 2 - Specify Join Parameters
In the preview of the new dataset, you can see how the two datasets have been joined. By By default,
|D s product|
- In a join operation, a key corresponds to a column that can be used for matching records between datasets. For example, in a list of products or sales data, the key column is likely to be some form of internal system identifier, which is consistently used across all related datasets.
- Before you accept the join, you should review the selected join keys and the type of join.
- You may also need to specify the columns to include in the joined dataset.
- As needed, you can change the object with which you are joining the first dataset. Click the Data tab, and then click click Change Data.
Specify Join Keys
To review and modify the columns used as the keys for the join, click the Join Keys tab.
The following image displays the image displays the preview of the currently configured join. It has determined that the item number (
Item_Nbr) field of Region 1 data and the item number (
ITEM_NBR) field from
REF_PROD should be used as the keys for performing the join.
Review join keys and join type
Specify Other Join Parameters
- From the drop-down, you can select the type of join to apply. For more information, see Join Types below.
- Join keys:
- To make changes to the two join keys, click the Pencil icon.
- In the left part of the panel, select the field from source 1 to use as its key. In the right, select the field from source 2.
- For more information on the other options, see Fuzzy Joins below.
To save changes, click OK.
To remove the two columns as join keys, click the Trash icon.
To add more join keys, click click Add.
NOTE: Be careful applying multiple join keys. Depending on the join type, this type of join can greatly expand the size of the generated data.
- To make changes to the two join keys, click the Pencil icon.
- Review the list of available columns, which are displayed for both sources.
- After the currently selected keys, fields from the source 1 are listed, followed by the fields of source 2.
- To modify the settings for these columns, click Edit Settings. For more information, see Join Column Settings below.
- Use the checkboxes to select the columns to include in the joined dataset.
- To add the specified join to your dataset, click Add to Recipe. The joined dataset is displayed in the Transformer page.
A cross join combines each row of the first data set with each row of the second dataset, where every combination is represented in the output. As a result, the number of total rows in the join are:
To specify a cross join, delete all join keys.
By default, matches between join keys are performed on a strict, case-sensitive matching between key values in the selected columns. In some cases, it may be useful to loosen the conditions under which matches are found.
|Ignore Case||Ignore case differences between the join key values for matching purposes.|
|Ignore Special Characters||Ignore all characters that are not alphanumeric, accented Latin characters, or whitespace, prior to testing for a match.|
|Ignore Whitespace||Ignore all whitespace characters, including spaces, tabs, carriage returns, and newlines.|
After you have joined in another set of data, subsequent changes to that data are automatically reflected in the output of the join.
NOTE: After you add your join to the recipe, if the data grid is empty, then the keys that you specified in the join may not have a match in the currently selected sample. You should revisit the keys used in your join. If the join still generates an empty grid on the new sample, you should collect a new sample. See Samples Panel.
Tip: If you must freeze the data in the dataset that you are joining in, you should create a copy of the dataset as a snapshot and join in the copy. See Dataset Details Page.
To join in the copy, edit the join and change the source that is being joined. See Fix Dependency Issues.
Join Column Settings
In the Join Column Settings dialog, you can apply prefixes to column names in the joined dataset, which can be helpful for tracking the source of a column in complex datasets. For example, you may wish to prepend each column from a dataset called,
salesRegion01 with with the prefix:
- Click the checkbox to dynamically update your selected columns in the Join page to always include all columns from the dataset.
- To save your changes, click OK.
The following types of joins are supported. For example, the following tables contains information about employees and departments.
In the above example,
DepartmentID is the key to use in both tables for any joins.
An inner join requires that key values exist in both tables for the records to appear in the results table. Records appear in the merge only if there are matches in both tables for the key values.
- All fields are included in the merged result set. Fields from the first dataset are listed first.
- The row for Mary Martin is excluded, since there is no reference in the Department table for her department identifier. The row for Accounting is excluded, since there is no reference in the Employee table for the department identifier.
- To include these rows, you either need to augment the data or perform a form of an outer join.
A null value in one table does not match a null value in another table. So, rows with null values in a join key are never included in an inner join. These values should be fixed.
Tip: An inner join can be used to eliminate rows with null values in their key fields.
Left Outer Join
A left outer join (or left join) does not require that there be matching records for each value in the key value of the source (left) table. Each row in the left table appears in the results, regardless of whether there are matches in the right table.
- In this left join, the Mary Martin row has been added to the result, since her record in the Employee table does contain an entry for the
DepartmentID. However, since there are no corresponding values in the Department table, the corresponding fields in the result table are
Right Outer Join
A right outer join (or right join) is the reverse of a left join. A right join does not require that there be matching records for each value in the key value of the secondary (right) table. Each row in the right table appears in the results, regardless of whether there are matches in the left table.
- In this right join, the Accounting entry is added. However, since there is no entry in the Employee table for the
DepartmentIDvalue, those fields are
NULLvalues in the result set.
Full Outer Join
A full outer join combines the effects of a left join and a right join. If there is a match between the key values, a row is written in the result.
- Any duplicated rows between joining from left-to-right and from right-to-left are removed from the results.
The following diagram summarizes the relationships between the types of supported joins. In each venn diagram, the area of intersection is the set of records that contain shared key values.