Model Materializations
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
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
Configuring Materializations
You can configure materializations in two ways:
1. Project Level (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)
{{
config(
materialized='table'
)
}}
select * from ...
Choosing the Right Materialization
Consider these factors when selecting a materialization:
🔄 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?
Last updated
Was this helpful?