Build, test and finalize a transformation

A transformation is the query that loads one Dimension or Fact table from one source system. Build it in the transformation editor: five steps take it from a table and a source system to a tested, finalized load that workflows can run.

Before you start

The transformation editor

Create the transformation

  1. In the Warehouse tree, right-click a Dimension or Fact table and choose Add Transformation; you can also click Add Transformation on the table's Transformations tab.
  2. On General, choose the Table, the Source System and the Pattern, and add a Suffix only if you need a second transformation for the same table and source system. Schedule starts off; switch it on if workflows should run the transformation. Detail: Transformation general settings, Transformation patterns and load settings.
  3. On Query, write the SELECT that reads the source system, and click Validate, or press Ctrl+Enter, until the badge reads Validated. AI drafts or changes the query. Detail: Write and validate a transformation query, Generate and fix SQL with AI.
  4. On Dependencies, click Manage Dependencies, tick the tables your query reads, choose their source systems, and save. Detail: Transformation dependencies.
  5. On Mapping, attach a source column to every target column, then save. Detail: Map transformation columns.
  6. On Validation, click Test Now. In the test dialog, check the date (it starts on yesterday) and the run parameters. When the test finishes, click Show Results, review Source Table and then Next: Target Output, and click Finalize Transformation, confirming with Finalize. Detail: Run and monitor transformation tests, Review test results and finalize a transformation.
  7. Open the Execution tab: Execute Now is available for a finalized transformation. Run it, or let its schedule do it, and follow the result in the Run Log, which lists production runs only; test runs stay on Validation. What a run writes is described on How Dimension and Fact runs write data.

What locks after the first save

What blocks a test or a finalize

Saving dependencies and the cycle check

Who can do what

ActionPermission
See transformations and their test resultsView Warehouse Objects
Create, edit, validate, map, finalize and deleteAdd/Modify Warehouse Objects
Test, run and abortExecute/Abort Warehouse Objects

If your role lacks a permission, the action is refused with a message that starts "Access denied. Required permission(s):". See Warehouse permissions and row-level security.

Questions, answered

Why is the Name field locked?

The name is generated from the table, source system, pattern and suffix, so it always describes what the transformation does. To get a different name, change the suffix in a copy, or create a new transformation.

What is the difference between Apply and Next?

Apply saves the step and keeps you on it. Next passes the step's checks and moves to the next step; if the step has unsaved changes, the Unsaved Changes dialog asks whether to save them first. On Validation, Next becomes Finish, which closes the editor.

Can I edit a transformation while a test or run is in progress?

No. While a test or run is in progress, saving changes is refused with a message that starts "Test is running for transformation", finalizing waits, and deleting is refused with "Cannot delete transformation(s) [names]: a run is in progress. Abort it first." Wait for the run to finish, or abort it, then continue.

Why did my finalized transformation become a draft again?

Any edit returns a finalized transformation to a draft: saving a step, changing the query or updating the column mapping clears the finalized state, and you test and finalize it again.

What do the messages above the steps mean?

They tell you where the transformation stands. An error strip carries the current step's error, with View details; a warning strip carries warnings; the status strip describes the state and offers Navigate to ... to open the step that needs you. On General, errors come as toasts instead of the strip.

Why can't transformations of the same table and source system be split across workflows?

They fill the same table from the same source system, so they must stay in one workflow: creating, moving or finalizing while the group is split is refused, and the message asks you to move every finalized transformation of the group together, or unfinalize the rest first. Different source systems of one table may run in different workflows.