For the complete documentation index, see llms.txt. This page is also available as Markdown.

Model Materializations

Covers dbt's model materialization strategies, including table, view, incremental, and ephemeral, and how to configure materializations at the project and individual model level.

Materializations are strategies that determine how dbt™ persists your models in the data warehouse. Think of them as different ways to store and update your transformed data.

Available Materialization Types

Type
Description
Best For

A saved query that runs on-demand

Simple transformations, real-time data needs

A physically stored copy of your data

BI tools, complex queries, frequent access

A table that updates only new/changed data

Large datasets, frequent updates

Code that's injected into dependent models

Large datasets, frequent updates

If you don't specify a materialization, dbt™ will create your model as a view by default.


Configuring Materializations

You can configure materializations in two ways:

1. Project Level (dbt_project.yml)

dbt_project.yml
models:
  your_project:
    finance:
      +materialized: table    # All finance models as tables
    staging:
      +materialized: view     # All staging models as views

2. Model Level (in .sql files)


Choosing the Right Materialization

Consider these factors when selecting a materialization:

Factor
Consideration

🔄 Data Freshness

How current does the data need to be?

⚡ Query Performance

How current does the data need to be?

📊 Data Volume

How much data are you transforming?

💰 Resource Cost

What are your compute/storage constraints?


Learn more about each materialization type in their dedicated documentation pages:

Last updated

Was this helpful?