The transformations can be defined in the following components:
DataGenerator, Reformat, and Rollup
These components require a transformation.
You can define the transformation in Java or Clover transformation language.
In these components, different data records can be sent out through different output ports using return values of the transformation.
In order to send different records to different output ports, you must both create some mapping of the record to the corresponding output port and return the corresponding integer value.
Partition, or ParallelPartition
In the Partition, or ParallelPartition component, transformation is optional. It is required only if neither the Ranges nor the Partition key attributes are defined.
You can define the transformation in Java or Clover transformation language.
In Partition, different data records can be sent out through different output ports using return values of the transformation.
In ParallelPartition, different data records can also be sent out to different Cluster nodes (through virtual output ports) using return values of the transformation.
In order to send different records to different output ports or Cluster nodes, you must return corresponding integer value. But no mapping need to be written in this component since all of the records are sent out automatically.
DataIntersection, Denormalizer, Normalizer, ApproximativeJoin, ExtHashJoin, ExtMergeJoin, LookupJoin, DBJoin, and RelationalJoin
These components require a transformation.
You can define the transformation in Java or Clover transformation language.
CustomJavaReader, CustomJavaWriter and CustomJavaTransformer.
These components require a transformation.
You can only write it in Java.
JMSReader and JMSWriter
In these components, transformation is optional.
If any is defined, it must be written in Java.