Streams are a key modelling components in PhixFlow.
Streams are configured through the Stream properties. Streams are connected to other modelling objects via pipes; see Pipe properties.
There are several types of stream:
Calculate Stream
Calculate streams are the most basic stream type in PhixFlow. An output record will be produced for each input record.
Merge Stream
Merge streams combine sets of input data. In each input pipe a grouping is defined, and an output record is produced for each key value combination that is produced by this grouping applied across all inputs.
Aggregate Stream
Aggregate streams aggregate input data. In the input pipe a grouping is defined, and an output record is produced for each key value combination that is produced by the grouping.
Simple aggregations are better performed using aggregate pipes.
Aggregate streams are functionally identical to merge streams, but by convention, when there is only one input, an Aggregate Stream is used - this displays as a on the model view. Often this helps to clarify the purpose of the stream in the model.
Cartesian Stream
Cartesian streams perform a cartesian join across all inputs. Although this can be useful in some cases, mostly it is easier and simpler to multiply output records with either an output multiplier - which can be configured for any stream type - or to use a multiplier pipe.
CalculateBySet Stream
Calculate by Set streams are like calculate streams in that an output record is produced for each input record. But in addition a grouping can be configured on the input pipe which allows, for each record processed, related rows to be included in calculations.