Query Engines

Trino and Prestoquery enginesfederated distributed SQL StarRocks and Apache Dorisquery enginesMPP analytical databases

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 & Apache Doris

StarRocks and Apache Doris are open-source MPP (massively parallel processing) analytical databases descended from the same lineage as Apache Doris…

Trino & Presto

Trino (originally PrestoSQL) and Presto (PrestoDB) are distributed SQL query engines designed to run interactive analytical queries over heterogeneous data…


1. Where query engines sit

Query engines over open storage BI tools, notebooks, apps SQL over JDBC / MySQL protocol Trino / Presto coordinator + stateless workers StarRocks / Doris frontend + backend nodes Catalog Hive, Glue, Unity, Polaris, Nessie Object storage Parquet + Iceberg / Delta / Hudi

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.

2. Choosing between them

AspectTrino / PrestoStarRocks / Doris
Primary roleFederated SQL across many sourcesLow-latency OLAP, dashboards
StorageNone; reads external sourcesNative columnar plus external catalogs
LatencySeconds to minutes, ad hocSub-second to seconds at high concurrency
Real-time ingestionNoYes (stream load, Kafka routine load)
Materialized viewsLimitedAsynchronous MVs with query rewrite
Typical useData exploration, ETL with SQL, federationCustomer-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.

Table formatsSectionIceberg, Delta, Hudi and more CatalogsSectionUnity, Polaris, Nessie Apache Parquetstorage formatsthe underlying file format