Skip to content
Dremio-Specific Engine & Optimizations Last updated: May 29, 2026

Dremio Reflections

Dremio Reflections are pre-computed query acceleration structures that automatically optimize and speed up SQL queries using Apache Calcite query planning rewrites without requiring user query modifications.

dremio reflectionsquery acceleration reflectionsdremio accelerationautomatic query rewritedremio performance

Dremio Reflections

Dremio Reflections are pre-computed, optimized layouts of data stored in Parquet format that the Dremio query planner leverages to accelerate SQL execution. Reflections function similarly to materialized views in relational databases, but with a critical distinction: users never query a reflection directly. Instead, Dremio uses Apache Calcite to analyze incoming SQL queries and automatically rewrite them to read from one or more matching reflections.

By decoupling query acceleration from the user-facing SQL layer, Dremio Reflections allow data teams to optimize performance transparently. If a reflection is created, updated, or dropped, user queries, dashboards, and BI reports continue to query the original physical or virtual datasets without any code modifications.

How Dremio Reflections Work

Reflections are managed entirely by Dremio’s coordinator and executor nodes:

  1. Definition: An administrator or data architect enables a Raw or Aggregation reflection on a physical dataset (PDS) or virtual dataset (VDS).
  2. Materialization: Dremio executes the query definition behind the reflection, optimizes the layout (including sorting, partitioning, and distribution settings), and writes the output as Parquet files to the configured distributed store (such as Amazon S3, Azure Data Lake, or HDFS).
  3. Query Rewrite: When a client submits an SQL query, Dremio’s compiler matches the logical plan against available reflections. If a reflection can satisfy the query, the planner automatically swaps the raw data source scan with a scan of the pre-computed reflection files.
  4. Maintenance: Dremio automatically refreshes reflections based on configurable refresh policies (incremental or full updates), tracking partition changes and data freshness.

Types of Reflections

Dremio categorizes reflections into two primary types based on workload patterns:

The Role of Apache Calcite

The core technology behind Dremio Reflections is Apache Calcite, an open source framework for query planning and optimization. During the planning phase, Dremio represents both the incoming user query and all active reflections as relational algebra trees.

Calcite executes a series of rules to determine if a reflection’s logical tree can substitute all or part of the query’s logical tree. If multiple matching reflections are found, Calcite estimates the cost of each execution plan and selects the plan with the lowest computational cost.

Benefits for Apache Iceberg Lakehouses

Integrating Dremio Reflections with Apache Iceberg tables provides significant architectural advantages:

📚 Go Deeper on Apache Iceberg

Alex Merced has authored three hands-on books covering Apache Iceberg, the Agentic Lakehouse, and modern data architecture. Pick up a copy to master the full ecosystem.

← Back to Iceberg Knowledge Base