Incremental view maintenance, democratized

Stop recomputing.
Refresh only what changed.

OpenIVM compiles SQL materialized views into incremental SQL. Inserts, updates and deletes propagate as deltas, so a refresh costs what changed, not what exists.

Built at CWI Amsterdam · SIGMOD 2024 paper

ETL costs scale with your data. They should scale with your changes.

LLMs and tools like dbt generate more queries than ever, and most of them recompute from scratch on every run, while Spark, the ETL engine behind most lakehouses, has no open incremental alternative.

OpenIVM is an open-source IVM compiler that makes those queries refresh only what changed, inside the engines you already run.

What an IVM engine needs, done properly.

01

Rigor

Delta rules come from each operator's algebra (Z-sets, as in DBSP), not pattern matching: a view is maintained exactly, or classified up front for full refresh.

Z-sets · delta rules
02

State

View and auxiliary state live in ordinary tables, so it works on batch tables, not only streams, and survives restarts.

aux state · delta tables
03

Deletes

Every change is a signed tuple (+1 or −1), so inserts, updates and deletes share one algebra instead of special cases.

+1 / −1 multiplicities

One compiler, many engines.

DuckDB

available · source build

The reference implementation. Materialized views, automatic refresh, cascading pipelines, adaptive cost model and DuckLake integration. Community extension planned for end of 2026.

github.com/ila/openivm →

Apache Spark

in development

Incremental refresh for Spark ETL and dbt models, including Spark-dialect view bodies such as VERSION AS OF.

Coming soon

Your engine

open standard

OpenIVM emits SQL, not engine internals. If your engine speaks SQL and can store a table, it can host an incremental view.

Propose an integration →

Open, reproducible numbers.

A live benchmark fed by ivm-bench: incremental refresh versus full recompute across engines, workloads and delta sizes. Results are published as a static Parquet file and rendered right in your browser.

coming soon

OpenIVM: a SQL-to-SQL Compiler for Incremental Computations

SIGMOD Companion 2024 · doi:10.1145/3626246.3654743