dbt Fundamentals
Back to Building a Real dbt Project

Materializations — view, table, incremental, ephemeral

The four built-in materializations and the cost model behind picking each. FIND_VIDEO: search 'dbt materializations table view incremental' — recommended channel: dbt Labs. Aim for 11 min or under.

21 minutesVideo LessonPDF notes
🎯 Free Guest Mode: You are learning for free. Sign in to save your completion progress and quiz answers.
Loading progress...

Key moments

  1. Refresh Strategies — Differentiates full refresh rebuilds from incremental append and merge strategies.
  2. Materialization Overview — Lists dbt materialization types and frames table, view, and incremental targets.
  3. Table Materialization — Explains physical table creation using CTAS statements and verifies Snowflake persistence.
  4. View Materialization — Demonstrates defining database views that execute SQL queries at read time.
  5. Incremental Initial Run — Details how the first incremental execution builds the base target table via CTAS.
  6. Append Strategy — Demonstrates how subsequent incremental runs append new source records without updating old rows.
  7. Merge Strategy — Explains configuring unique_key to perform atomic updates and inserts on modified data.
  8. Advanced Strategies — Explores merge update column restrictions and the delete+insert alternative pattern.
PDF notes

Frequently asked questions

What happens if an incremental model is run for the first time?

dbt performs a full refresh using a CTAS statement because the target table does not yet exist.

Can table materialization perform an incremental update?

No, table materializations always perform a complete rebuild via full refresh and do not support incremental logic.

How does dbt handle incremental updates if no unique_key is configured?

dbt defaults to an append-only strategy, inserting all incoming records from the temporary table and causing duplicates if IDs overlap.

Why would I use the delete+insert strategy instead of merge?

Some warehouses process deletes followed by bulk inserts more efficiently than complex row-by-row MERGE evaluations on large datasets.

How was this lesson?

Your feedback helps us refine explanations and catch bugs.