Did you know that databases often “cheat”? Even with a scalable query engine and smart optimizer, many real-world queries would be too slow if the engine read all the data, so the engine re-writes your query to use a pre-materialized result. B-tree indexes made the first relational databases possible, and there are now many flavors of materialization, from explicit materialized views to OLAP-style caching and spatial indexes. Materialization is more relevant than ever in today’s heterogenous, distributed systems.
If you are evaluating data engines, we describe what materialization features to look for in your next engine. If you are implementing an engine, we describe the features provided by Apache Calcite to design, maintain and use materializations.
Julian Hyde is the original developer of Apache Calcite, which provides SQL parsers and query optimizers for dozens of products, and Morel, a new functional query language. Previously he led the query processing team at Looker (acquired by Google in 2020), and co-founded SQLstream, an engine for continuous queries. He left Google in early 2025 to create the next language for data.