Skip to main content

Union node

Transform

What it does​

The Union node stacks the rows from every upstream connected to its in port into one stream. Rows are not matched or merged; for that, use a Join.

When the upstreams come from different Sources, the Union waits until every Source has finished, then sends the combined rows once.

When to use​

  • Two or more sources hold the same kind of record, such as customers in Salesforce and in PostgreSQL, and one set of nodes should process them all.
  • Separate branches of the flow should come back together before one Transform and Load.

Configure​

  1. Connect every upstream
    All incoming edges land on the single in port. There is no limit, and the edges you draw are the inputs.
  2. Pick a column policy
    Select the node and press Configure in the side panel. The effect of the chosen policy shows under it. Keep Null-fill when the streams are nearly the same shape. Choose Drop to keep only shared columns, or Rename when upstreams name the same field differently.
  3. Check the columns on the next node
    The downstream field picker shows the combined columns, which confirms the Union sees every upstream.

Column policy

PolicyOutput columns
Null-fill (default)Every column from every upstream. A row without a column gets an empty value.
DropOnly the columns every upstream has.
RenameRename columns per upstream first, then null-fill whatever still differs.

Rename columns per upstream (Rename policy): each connected upstream is listed by name with its fields. Enter a New name beside a field; leave the rest blank. For an upstream whose fields are not known yet, type the Field name. Renames for an upstream you have disconnected are kept and listed separately, so you can remove them or reconnect the edge.

Added columns: source_stream, off by default. Each row then carries the name of the upstream node it came from. An unnamed node gives its node id. Turning it on adds a column to the output, so check downstream mappings.

Save keeps the dialog open, Done saves and closes it, and Cancel discards the changes since the last save. A message confirms each save.

Ports​

PortDirectionKindCardinalityNotes
inindatamanyEvery upstream edge connects here.
outoutdataoneThe combined rows.
erroroutcontroloneReceives the rows when the node fails.

Rows come out in the order the upstream edges were drawn on the canvas.

Examples​

One table from two systems.

Salesforce sends customerId, email and PostgreSQL sends customerId, region. With Null-fill, every row has all three columns:

customerIdemailregion
C1a@example.comNone
C2b@example.comNone
C3NoneEast

Same field, different names. One system calls it email, the other emailAddress. With Null-fill, both columns appear and each is half empty. Choose Rename and rename emailAddress to email for that upstream.

Know where each row came from. Turn on source_stream, then use a Router on source_stream to split the rows again later.

Troubleshooting​

SymptomCauseWhat to do
Half the values in a column are emptyThe upstreams name the same field differently.Use the Rename policy.
A rename has no effectIt is listed under an upstream that has no such field.Rename the field under the upstream that has it.
A column disappeared after a renameThe new name matched an existing column, and the renamed column replaced it.Choose a different new name, or rename the other column too.
source_stream keeps the upstream's own valuesThe rows already had a source_stream column, and it is not overwritten.Rename that column first.
Only one upstream's rows appearAn edge is missing.Check the downstream node's field list; it shows the combined columns.