Set materialized='incremental' and incremental_strategy='microbatch' in the model config block; microbatch is available in dbt 1.9+ and requires a supported warehouse adapter
Declare event_time pointing to the timestamp column that defines the batch boundary and begin indicating the earliest date to process
Define batch_size as 'hour', 'day', or another supported granularity; dbt will automatically split historical backfills into batches of this size
Write the model SQL to filter only on the current batch window using {{ model.config.event_time }} implicitly; dbt injects the batch filter automatically — avoid adding manual is_incremental() blocks for the time filter
Run dbt run --select my_microbatch_model to process only the current batch window in production, or dbt run --full-refresh to reprocess all batches from begin
Monitor batch progress in the dbt logs; each batch logs its start and end timestamp so you can identify slow batches or gaps
Known gotchas
Microbatch strategy is warehouse-dependent; not all adapters support it in dbt 1.9 — check the adapter release notes before relying on it in production
The event_time column must be monotonically increasing and trusted; if late-arriving events populate past batch windows after those batches have been committed, microbatch will not automatically reprocess them
Mixing microbatch with other incremental_strategy approaches in the same project requires careful adapter version management; upgrading the adapter may change which strategies are available
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