MetaPivot converts every incoming record into several output records, each one representing a single field from the input.
|Component||Same input metadata||Sorted inputs||Inputs||Outputs||Java||CTL||Auto-propagated metadata|
|Input||0||For input data records||Any1|
|Output||0||For transformed data records||Any2|
MetaPivot does not propagate metadata.
MetaPivot has a metadata template on its output port.
When working with MetaPivot, you have to use a fixed format of the output metadata.
The metadata fields represent particular data types. Field names
and data types have to be
set exactly as follows (otherwise unexpected
|recordNo||long||the serial number of a record (outputs can be later grouped by this) - fields of the same record share the same number|
|fieldNo||integer||the current field number: 0...n-1 where n is the number of fields in the input metadata|
|fieldName||string||name of the field as it appears on the input|
|fieldType||string||the field type, e.g. |
|valueBoolean||boolean||the boolean value of the field|
|valueByte||byte||the byte value of the field|
|valueDate||date||the date value of the field|
|valueDecimal||decimal||the decimal value of the field|
|valueInteger||integer||the integer value of the field|
|valueLong||long||the long value of the field|
|valueNumber||number||the number value of the field|
|valueString||string||the string value of the field|
MetaPivot has no transformation-affecting attributes.
On its single input port, MetaPivot receives data that does not have to be sorted. Each field of the input record is written as a new line on the output. The metadata represent data types and are restricted to a fixed format, see Details All in all, MetaPivot can be used to effectively transform your records to a neat data-dependent structure.
Unlike Normalizer, which MetaPivot is derived from, no transformation is defined. MetaPivot always does the same transformation: it takes the input records and "rotates them" thus turning input columns to output rows.
The total number of output records produced by MetaPivot equals to (number of input records) * (number of input fields).
You may have noticed some of the fields only make the output look better
arranged. That is true - if you needed to omit
them for whatever reasons, you can do it. The only three fields that
do not have to be included in the output metadata are:
Convert records with metadata fields
doejohn|Doe |John smithel|Smith|Elisabeth ...
into lines having each field value on a separate line:
username |doejohn surname |John firstname|Doe username |smithel surname |Elisabeth firstname|Smith ...
Place the component into a graph and connect edges. The component does not need to be set up.
Note: You need Reformat to exclude unnecessary output fields.