A lakehouse stores data as open files (Parquet plus a table format such as Iceberg or Delta) on object storage, and separates that storage from the engines that query it. This section covers two families of distributed SQL engines that read lakehouse tables: the federated, stateless Trino and Presto, and the MPP analytical databases StarRocks and Apache Doris.
Distributed SQL engines that query the lakehouse: Trino / Presto and StarRocks / Doris.
StarRocks and Apache Doris are open-source MPP (massively parallel processing) analytical databases descended from the same lineage as Apache Doris…
Trino (originally PrestoSQL) and Presto (PrestoDB) are distributed SQL query engines designed to run interactive analytical queries over heterogeneous data…
Both families have a planner that parses SQL, consults a catalog for table metadata, prunes files using partition and column statistics, and fans work out to workers that read Parquet directly from object storage. The difference is what else they do. Trino and Presto keep no data of their own and connect to dozens of sources, so one query can join a lakehouse table with PostgreSQL or Kafka. StarRocks and Doris are full databases with their own columnar storage, materialized views and caching, and can also query external lakehouse catalogs.
| Aspect | Trino / Presto | StarRocks / Doris |
|---|---|---|
| Primary role | Federated SQL across many sources | Low-latency OLAP, dashboards |
| Storage | None; reads external sources | Native columnar plus external catalogs |
| Latency | Seconds to minutes, ad hoc | Sub-second to seconds at high concurrency |
| Real-time ingestion | No | Yes (stream load, Kafka routine load) |
| Materialized views | Limited | Asynchronous MVs with query rewrite |
| Typical use | Data exploration, ETL with SQL, federation | Customer-facing analytics, real-time dashboards |
Many platforms run both: Trino for exploration and batch SQL over everything, and StarRocks or Doris for the subset of data that serves interactive dashboards. Spark and DuckDB are the other common engines over the same tables, for large batch transformations and single-node analysis respectively.