These components have both input and output ports. They serve to put together the records with potentially different metadata according to the specified key and the specified transformation.
The first input port is called master (driver), the other(s) are called slave(s).
They can join the records incoming through two input ports (ApproximativeJoin), or at least two input ports (ExtHashJoin, ExtMergeJoin, and RelationalJoin). The others can also join the records incoming through a single input port with those from lookup table (LookupJoin) or database table (DBJoin). In them, their slave data records are considered to be incoming through a virtual second input port.
Three of these Joiners require that incoming data are sorted: ApproximativeJoin, ExtMergeJoin, and RelationalJoin.
Unlike all of the other Joiners, RelationalJoin joins data records based on the non-equality conditions. All the others require that key fields on which they are joined have the same values so that these records may be joined.
ApproximativeJoin, DBJoin, and LookupJoin have optional output ports also for nonmatched master data records. ApproximativeJoin has optional output ports for nonmatched both master and slave data records.
Metadata cannot be propagated through these components. You must first select the right metadata or create them by hand according to the desired result. Only then you can define the transformation. For some of the output edges you can also select the metadata on the input, but neither these metadata can be propagated through the component.
These components use a transformations that are described in the section concerning transformers. See Defining Transformations for detailed information about how transformation should be defined. All of the transformations in Joiners use common transformation template (CTL Templates for Joiners) and common Java interface (Java Interfaces for Joiners).
Here we present a brief overview of links to these options:
Here we present an overview of all Joiners:
Table 50.1. Joiners Comparison
Component | Same input metadata | Sorted inputs | Slave inputs | Outputs | Output for drivers without slave | Output for slaves without driver | Joining based on equality |
---|---|---|---|---|---|---|---|
ApproximativeJoin | 1 | 2-4 | |||||
ExtHashJoin | 1-n | 1 | |||||
ExtMergeJoin | 1-n | 1 | |||||
LookupJoin | 1 (virtual) | 1-2 | |||||
DBJoin | 1 (virtual) | 1-2 | |||||
RelationalJoin | 1 | 1 |