Convert scheduled refreshes to Snowflake-managed incremental updates
Dynamic Tables eliminate orchestration complexity. Declare your freshness requirement, Snowflake handles dependency tracking and incremental refresh automatically.
BEFORE (dbt model, full refresh every hour)
{{ config(materialized='table') }}
SELECT * FROM {{ ref('staging') }}
-- 45 min runtime × 24 runs = wasted computeAFTER (Dynamic Table)
CREATE DYNAMIC TABLE mart TARGET_LAG = '30 minutes' WAREHOUSE = TRANSFORM_WH AS SELECT * FROM staging; -- Incremental only, no Airflow
Total Candidates
6
Ready
4
Needs Review
1
Not Suitable
1
Selected Savings
$0/mo
| Model/Task | Source | Type | Current Runtime | Schedule | Readiness | Est. Savings | ||
|---|---|---|---|---|---|---|---|---|
| mart_daily_leads | dbt | table | 45 min | hourly | ready | $3,200/mo | ||
| dim_consumer | dbt | table | 23 min | daily | ready | $890/mo | ||
| fct_lead_matches | dbt | table | 67 min | hourly | ready | $5,400/mo | ||
| complex_jinja_model | dbt | table | 12 min | hourly | not suitable | - | ||
| agg_lender_performance | dbt | view | 34 min | hourly | review | $2,100/mo | ||
| int_consumer_360 | dbt | table | 28 min | daily | ready | $1,450/mo |