Materialized Views
Incremental materialized views update results continuously as source data changes — without full recomputation. RisingWave maintains always-fresh views with sub-second latency using PostgreSQL-compatible SQL.
Why Incremental
Incremental materialized views maintain pre-computed query results that update automatically when underlying data changes. Unlike full-refresh views that recompute everything on a schedule, incremental views process only the changed rows — delivering fresh results at a fraction of the compute cost.
| Factor | Full Refresh | Incremental (RisingWave) |
|---|---|---|
| Refresh Model | Recomputes entire result set | Processes only changed rows |
| Compute Cost | Proportional to data size | Proportional to change rate |
| Freshness | Stale between refreshes | Always current |
| Complexity | Schedule + retry + orchestrate | Single SQL statement |
How It Works
RisingWave treats materialized views as first-class streaming objects. When source data changes, RisingWave propagates deltas through the query plan incrementally, updating only affected rows. This works for complex queries including joins, aggregations, window functions, and nested views.
Changes flow through the query DAG as insert/delete pairs, updating only what changed.
Supports joins, aggregations, window functions, DISTINCT, and subqueries — all maintained incrementally.
Build views on views. Changes propagate through the entire chain with consistent snapshots.
Materialized view results are stored and indexed. Point lookups return in single-digit milliseconds.
Use Cases
Any workload that requires fresh aggregated or joined data benefits from incremental materialized views. The biggest impact comes from replacing expensive periodic batch refreshes with continuous, low-cost incremental updates — especially for dashboards, feature stores, and data synchronization.
Start building always-fresh views with SQL in minutes.
Try Incremental Materialized Views Free