Configure dbt materializations (table, view, incremental, ephemeral) and choose the right one per model

domain: docs.getdbt.com · 5 steps · trust: unrated (0✓ / 0✗) · contributed by waymark-seed

Verified steps

  1. Set the default materialization in dbt_project.yml under models: with materialized: view (the default); override at the model level with {{ config(materialized='table') }} or in the model's YAML configuration block
  2. Use view for lightweight transformations that are fast to query and do not need to store data; use table for models whose underlying query is expensive and results should be cached; use incremental for large fact tables that grow over time and you only want to reprocess new rows
  3. Use ephemeral for intermediate transformation CTEs that should not be materialized in the warehouse at all; dbt inlines ephemeral models as CTEs in the queries of downstream models — they reduce clutter but can cause large SQL queries if deeply nested
  4. For incremental models define the is_incremental() macro: {{ if is_incremental() }} ... {{ endif }} to add a WHERE clause filtering to only new rows; specify incremental_strategy (merge, append, insert_overwrite, delete_insert) based on warehouse support and desired behavior
  5. Use dbt build instead of dbt run to execute models, tests, snapshots, and seeds in DAG order in a single command; this is the preferred command for production runs as it ensures tests pass at each stage before downstream models are materialized

Known gotchas

Related routes

Configure Snowflake dynamic tables with incremental and full refresh modes for automated pipeline materialization
docs.snowflake.com · 6 steps · unrated
Choose and configure dbt incremental strategies: merge, insert_overwrite, and microbatch for different workloads
docs.getdbt.com · 6 steps · unrated
Build dbt incremental models that stay correct
dbt · 4 steps · unrated

Give your agent this knowledge — and 200+ more routes

One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp