Short Description |
Ports |
Metadata |
MetaPivot Attributes |
Details |
Examples |
See also |
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 |
---|---|---|---|---|---|---|---|
MetaPivot | - | 1 | 1 |
Port type | Number | Required | Description | 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 it's output port.
Important | |
---|---|
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
|
Field Name | Type | Description |
---|---|---|
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 appeared on the input |
fieldType | string | the field type, e.g. "string", "date", "decimal" |
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 do 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: recordNo
,
fieldNo
and fieldType
.
Convert records with metadata fields username
, surname
and firstname
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. There is nothing to be set up.
Note: You need Reformat to exclude unnecessary output fields.