TableNormalization Transform

Normalization transposes column-based data into row-based data with key-value pairs. This allows the arrangement of a relational model (with measures in various columns) into an OLAP model (with one measure in each row, and the measure name as a key). The column names from the data source are the measure coordinates in the resulting table. A column with the measure values from the source is created with name indicated in “Field name” (default: #value). Normalization can be done by any dimension in the Upload Wizard.

The parameters for TableDenormalization transform are similar to those of TableAggregation.

Note: when the input is coming dynamically from the source or transform, but the "Field name" is left empty, the name of the source column/ function is used for the field name. When the target is manually defined as constant, then the name "constant" is chosen instead of the value from the "Input" field. Adding more than one constant column results in error, because there would be two columns with the name "constant."

Ignore empty values

If the data source of a TableNormalization transform contains a huge amount of 0 values in the key figure columns, this may lead to a very high number of rows. These rows can be filtered during the normalization process with the option Ignore empty values. If set, this will increase the performance and, in the case of additional aggregation, also reduce the memory used.

Note that for high data volume, the performance of TableNormalization is better if no aggregation is done (aggregation = ”none”).

Examples

Example tables

Two example tables

 

Updated October 9, 2025