Presto
Presto is an open-source distributed SQL query engine, created at Facebook, for running interactive analytical queries across large datasets and multiple data sources.
Overview
Presto is an open-source distributed SQL query engine originally created at Facebook, where development began in 2012 and the project was open-sourced in 2013. It was built to run fast, interactive analytical queries over very large datasets, and to query data where it lives rather than requiring it to be loaded into a dedicated warehouse first. Today this original lineage, often called PrestoDB, is governed by the Presto Foundation, hosted at the Linux Foundation.
Architecture and connectors
Presto uses a coordinator-and-worker architecture: the coordinator parses, plans, and schedules queries, while workers execute tasks in parallel and stream data through memory rather than writing intermediate results to disk. A connector model lets Presto query many systems, including Hadoop/HDFS, object storage, and relational databases, and join across them in a single query.
Copy code
-- Presto: aggregate over data accessed via a connector
SELECT region, COUNT(*) AS orders, SUM(amount) AS revenue
FROM hive.sales.orders
GROUP BY region
ORDER BY revenue DESC;
Presto, Trino, and DuckDB
In 2019 several original creators of Presto forked the project as PrestoSQL, which was renamed Trino in December 2020; the two projects share ancestry but are now developed separately. Both Presto and Trino are distributed engines aimed at scaling across a cluster and federating queries over many sources. DuckDB takes a different approach: it is a single-node, in-process OLAP engine, with MotherDuck as its serverless cloud counterpart. For workloads that fit on one machine or for querying data lake files directly, DuckDB avoids the operational overhead of a coordinator/worker cluster:
Copy code
-- DuckDB: single-node query over lake files
SELECT region, SUM(amount) AS revenue
FROM read_parquet('s3://sales/orders/*.parquet')
GROUP BY ALL
ORDER BY revenue DESC;
Related terms
Trino is an open-source distributed SQL query engine for federated analytics, querying data across many sources without moving it. It is the project formerly known as PrestoSQL.
query engine →A query engine parses, optimizes, and executes SQL queries against data sources. Learn its core architecture, how it differs from a database, and see examples like DuckDB and Presto.
Apache Hadoop →Apache Hadoop is an open-source framework for distributed storage and processing of very large datasets across clusters of commodity servers, built around HDFS for storage and MapReduce (or later, YARN-managed engines) for computation.
Apache Spark →Apache Spark is an open-source distributed processing engine for large-scale data workloads, using in-memory computation across a cluster of machines.
Data warehouse →A data warehouse is a centralized system designed to store structured, cleaned data and support fast, complex analytical queries (OLAP), as opposed to the high-volume transactional workloads of an operational database.
SQL analytics →SQL analytics refers to using SQL queries to analyze data and derive insights, typically working with large datasets stored in databases or data warehouses.
FAQS
Presto was created at Facebook, where development started in 2012, and it was open-sourced in 2013. The original lineage, often called PrestoDB, is now governed by the Presto Foundation, which is hosted at the Linux Foundation.
No, though they share ancestry. In 2019 several of Presto's original creators forked the project as PrestoSQL, which was renamed Trino in December 2020. Presto (PrestoDB) and Trino are now developed as separate projects.
