Skip to main content

Data Warehouse Automation (DWA)

What you will learn about here:

Models: Structured representations of data entities and their relationships within the data warehouse. Models define how data is organised, stored, and accessed.

Mappings: Essential for transforming and integrating data from various sources into a unified model. This section covers the steps and best practices for creating and managing mappings to ensure accurate and accessible data representation.

Additional Tasks: Custom pre- and post-processing steps that run as part of the pipeline around the generated loads.

Technical Details: The technical specification of the DWA component: container setup, Python dependencies, and deployment and execution guidelines.

The DWA module has three pages in the Config UI — Models, Mappings and Additional Tasks — reachable from the DWA entry in the top navigation.

The sections below are tabs

Each heading above is a tab at the top of the page, not a section you can scroll to. The table of contents and any deep link only reach the tab that is open, so switch tabs rather than searching the page.

On the DWA → Models page (/models) you select and configure model objects, edit their attributes, define their relationships, and visualise them as an ERD.

Models are listed in a searchable sidebar; Add Object creates a new one. All changes are held locally until you press Save model.

Model configuration

    Object: The name of the model object — a specific entity or table in the data warehouse. It cannot be changed once the object exists.

    Description: A brief description of the model object. Required.

    Loading Pattern: How the object is loaded. One of transaction, dayspan, incremental, full or none.

    Object Type: Specific or Combined.

    DWA Model Properties: model configuration and the model attribute list with business key toggles

Attributes

    The Model Properties tab lists the object's attributes in a table with four columns:

    • Attribute — the unique name identifying this attribute within the model.
    • Description — a brief explanation of what the attribute represents.
    • Data Type — Varchar, Integer, Decimal, Boolean, Time, Date or Timestamp. An Other option accepts a custom type, and a non-standard saved value is detected and shown as such.
    • BK — whether the attribute is part of the business key.

    Attribute rows can be dragged to reorder, and for business keys the order sets the business key priority — each business key row is numbered. A search box and a Business Keys only filter narrow a long list.

    Attributes are added with the button below the list and removed with the trash icon on each row. Nothing takes effect until Save model is pressed.

Model relations

    The Model Relations tab manages how the selected object connects to the others.

    Add a relation by choosing the To object from a searchable dropdown and giving it a description (for example "has many", "belongs to"). The Many-to-Many toggle decides the type:

    • Many-to-Many — enable the toggle.
    • Parent-Child — leave the toggle off. This is the default, and the to object is the parent in the relationship.

    Behind the toggle sits relationRole, which records which end this object is: parent, child, or many in a many-to-many. It is not the relationship's description — the description is a separate, free-text field. Left unset, relationRole defaults to parent-child.

    Existing relations are listed below the form with their direction shown by an icon, an editable description, and a delete action. The Relation Diagram underneath draws the selected object together with everything it is related to; click an entity in the diagram to highlight its relations.

DWA Model Relations: the add-relation form, the list of existing relations and the relation diagram

Visualising a model
  • Full model ERD: Opens the entire Entity-Relationship Diagram in a modal, with a toggle for showing attributes.
  • Object visualisation: Opens the selected model object together with the objects it relates to.
  • Show SQL: Opens the SQL for the selected model.

What the model produces in the target database​

The model is not only an input to the loading logic. It is also the source of the structure and documentation that end up in the target database, which is why it is worth filling in the parts that feel optional.

What you set on the modelWhat the generator emits
The description on an object or attributeA table or column COMMENT inside the generated CREATE TABLE (Snowflake and Databricks)
The business keyA unique constraint on the core table, and a primary key on the publish table
A relationshipA foreign key, child → parent, de-duplicated
The field classification carried from the source contractA category tag, and a sensitivity tag plus, on platforms that support it, a column mask for fields flagged sensitive

Constraint generation is on by default. An empty description is therefore not a cosmetic omission — it produces an undocumented column in the warehouse that no later step will fill in.

→ What lands in the target environment