Transformers in Parallel
A stream is a flow of data represented by connections in the workspace. A key concept in FME is the ability to have multiple parallel streams within a workspace.
Multiple Streams
Multiple streams are useful when a user needs to process the same data but in many different ways. A workspace author can turn one stream into several, or combine several streams of data into one, as required:
Here an author is creating three data streams, each of which is processed separately then combined back into a single stream.
Creating Multiple Streams
Creating multiple data streams can occur in a number of ways. Sometimes a transformer with multiple output ports (a Tester transformer is a good illustration of this) will divide (or filter) data with several possible output streams:
Here data is divided into two streams, one of which is not connected to anything.
Additionally, a full stream of data can be duplicated by simply making multiple connections out of a single output port. In effect it creates a set of data for each connection:
Here FME reads 8 features but, because there are multiple connections, creates multiple copies of the data:
Bringing Together Multiple Streams
When multiple streams are connected to the same input port no merging takes place. The data is simply accumulated into a single stream. This is often called a union.
Here, three streams of data converge into a writer feature type:
No merging takes place; the data simply accumulates into 12 distinct features in the output dataset. Think of it as three pipes of water emptying into a single contained.
To carry out actual merging of data requires a specific transformer such as the FeatureMerger or FeatureJoiner.