Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.mantrixflow.com/llms.txt

Use this file to discover all available pages before exploring further.

The Normalisation tab is in the Destination panel (⚙️ on any Destination node). It applies column-level rules to the incoming source data before it lands in the raw staging layer that the dbt Layer reads from.

Where it fits in the pipeline

Source (public.tablename)

Normalisation  ← rename columns, exclude columns

Raw layer  (raw.public__tablename)

dbt Layer  ← SQL model on raw.public__tablename

Destination  (analytics.your_model)
Normalisation runs before the dbt Layer. Any column rename you apply here is visible in the dbt SQL using the new name, not the original source column name.

Two rule types

Rename

Map a source column to a different name in the raw layer.
Source columnRename to
customer_idcustomer_uuid
emailemail_address
first_namefname
created_atregistered_at
total_amountorder_total
In the dbt SQL you then reference the renamed name:
SELECT
    customer_uuid,   -- was customer_id in source
    email_address,   -- was email in source
    fname,           -- was first_name in source
    order_total      -- was total_amount in source
FROM {{ source('raw', 'public__customers') }}

Exclude

Drop a column entirely. It will not appear in the raw layer or downstream. Common reasons to exclude:
  • Auto-generated columns (serial_col, bigserial_col) that are meaningless in the destination
  • PII columns you do not want to land in the warehouse at all
  • Large columns (e.g. raw description TEXT) you plan to truncate in dbt instead
Excluded columns are silently omitted — no error is raised if a downstream query references them.

How to configure

  1. Click ⚙️ on the Destination node in the canvas.
  2. Click the Normalisation tab.
  3. For each source column, either:
    • Enter a new name in the Rename to field, or
    • Tick Exclude to drop the column.
  4. Columns with no rule pass through unchanged under their original name.
  5. Save the destination configuration.

Naming convention for the raw layer

MantrixFlow stores normalised rows in a raw schema using this table name pattern:
raw.{source_schema}__{table_name}
Examples:
Source tableRaw layer table
public.customersraw.public__customers
public.ordersraw.public__orders
public.order_itemsraw.public__order_items
sales.transactionsraw.sales__transactions
inventory.productsraw.inventory__products
The double underscore (__) separates schema from table name. This is the reference you use in the dbt Layer {{ source() }} call.

Real-world normalisation examples

Customers table

RuleSource columnTarget
Renamecustomer_idcustomer_uuid
Renameemailemail_address
Renamefirst_namefname
Renamelast_namelname
Renamedate_of_birthbirth_date
Excludephone
Excludemetadata— (extracted in dbt)

Orders table

RuleSource columnTarget
Renameorder_idorder_uuid
Renamecustomer_idcustomer_ref
Renameorder_numberorder_code
Renamestatusorder_status
Renametotal_amountorder_total
Excludeitems— (extracted in dbt)
Excludeshipping_address— (extracted in dbt)
Excludebilling_address— (extracted in dbt)

Numeric types table

RuleSource columnTarget
Renamesmall_int_colsmall_int_value
Renameint_colint_value
Renamebig_int_colbig_int_value
Renamedecimal_coldecimal_value
Renamenumeric_colnumeric_value
Renamereal_colreal_value
Renamedouble_coldouble_value
Renamemoney_colmoney_value
Excludeserial_col— (auto-generated)
Excludebigserial_col— (auto-generated)

When to use Normalisation vs SQL Transform node

ApproachBest for
Normalisation tabClean column naming before dbt runs; excluding columns you never want in the warehouse
SQL Transform nodeFull SQL reshaping, casts, aggregations, derived columns, filtering before the raw layer
Both togetherNormalise first, then write richer dbt logic on the clean column names
For simple pipelines where you only need column renames and basic filtering, use Normalisation + dbt Layer without a Transform node. For complex pre-processing, add a Transform node before Normalisation.