Dremio is a query engine for the data lakehouse: it runs interactive SQL directly on files in object storage - Parquet, plus Iceberg and Delta tables - without first loading them into a warehouse. It positions itself as the query and semantic layer over a lake, competing with Trino/Presto and with warehouse external-table querying.
Query the lake in place
The central idea is no-copy analytics. Instead of an ETL job that ingests lake data into a separate warehouse, Dremio connects to the storage (S3, ADLS, GCS) and queries the files where they sit. It executes on an Apache Arrow-based engine, so data moves through query operators in columnar memory without row-by-row overhead. For Iceberg tables it uses the table metadata for partition pruning and supports DML (insert, update, delete, merge).
Reflections: Dremio's acceleration layer
Querying raw files repeatedly can be slow, so Dremio's signature feature is Reflections - materialized, optimized representations of a dataset (raw or aggregated) that the engine maintains and transparently substitutes into queries when they help. Users keep querying the logical dataset; the optimizer rewrites the plan to read a Reflection instead, similar in spirit to materialized views but chosen automatically by the planner.
Semantic layer
Dremio includes a virtual semantic layer: you build curated virtual datasets (views) on top of physical sources, organized into spaces, with governance and lineage. Analysts query the curated views in the BI tool; engineers control the physical layout underneath. This gives a governed "single source of truth" without physically duplicating data into marts.
Where it fits
- Teams committed to a lakehouse (especially Iceberg) who want interactive BI on lake data without a warehouse copy.
- Replacing or complementing a self-managed Trino cluster with a managed, acceleration-aware engine.
- Providing a governed semantic layer over messy lake sources for analysts.
Tradeoffs
Dremio overlaps with several tools, so the decision is comparative. Against a cloud warehouse (Snowflake, BigQuery) you trade some maturity and ecosystem for keeping data open on the lake and avoiding ingest. Against open Trino you gain Reflections, a semantic layer, and managed operations, but adopt a specific platform. Reflections are powerful but are another thing to size and refresh - they consume storage and compute, and stale or over-broad Reflections cost without helping. As with any lake engine, performance still depends on well-organized Parquet/Iceberg underneath: sorted, compacted, sensibly partitioned files.
Category note
Dremio is a query engine, not a file format - it's grouped here because it's defined by how it reads lake file formats directly. Its natural pairings are Parquet (storage), Iceberg (table format), and Arrow (in-memory execution).