Materializations determine how dbt creates models.
View: Creates a database view. No storage cost. Query runs each time.
Table: Creates a physical table. Fast queries. Full rebuild each run.
Incremental: Only processes new/changed rows. Best for large event tables.
Ephemeral: No database object. Inserted as CTE into dependent models.
The golden rule: Start with views. When queries are slow, use tables. When tables take too long to build, use incremental.
Interview tip: Always explain your materialization choice.