Presto SQL: The Distributed Query Engine Explained
What it is: Presto is a distributed SQL query engine developed at Meta (Facebook) for interactive analytics on huge datasets. It queries data where it already lives — S3, HDFS, MySQL, PostgreSQL, Cassandra, Kafka — using standard ANSI SQL, without copying anything into a warehouse first.
Quick answer: Presto SQL is an open-source distributed query engine that runs ANSI SQL queries across data lakes and databases without moving the data. It splits each query across a cluster of workers for interactive speed on petabyte-scale data. In 2019 the original creators forked the project into Trino, which is now the more actively developed branch; managed Presto/Trino services include Amazon Athena, EMR, and Starburst Galaxy.
What is Presto SQL?
Presto SQL is the SQL dialect and engine of the Presto project: a coordinator node parses your ANSI SQL, builds a distributed plan, and fans the work out to worker nodes that read data in parallel directly from the source systems. Because Presto is compute-only — it stores nothing itself — the same query can JOIN a Hive table on S3 with a dimension table in PostgreSQL.
-- One Presto query, two different systems
SELECT o.order_id, o.total, c.segment
FROM hive.sales.orders o -- Parquet files on S3
JOIN postgresql.crm.customers c -- live PostgreSQL table
ON o.customer_id = c.id
WHERE o.order_date >= DATE '2026-01-01';
For a deeper walkthrough of the architecture and dialect, see what is Presto SQL.
Presto vs Trino: which should you use?
Use Trino for new projects. In 2019 Presto's original creators left Facebook and forked the project; their fork was renamed Trino in 2020 and has since attracted most of the community, connectors, and release velocity. PrestoDB continues under the Linux Foundation and remains in production at Meta, Uber, and IBM (watsonx.data), but Trino ships features faster.
Choose PrestoDB when: you already run it, you depend on Meta-driven features like the native C++ Velox engine, or your vendor (e.g. IBM) standardizes on it.
Choose Trino when: you are starting fresh, want the largest connector ecosystem and community, or plan to use commercial support from Starburst.
What are the managed Presto services?
The three main ways to run Presto/Trino without managing a cluster yourself: Amazon Athena (serverless, pay $5 per TB scanned, zero setup — it is built on Presto/Trino engines), Amazon EMR (you pick instance sizes, pay EC2 + EMR fees, full control over configuration), and Starburst Galaxy (managed Trino from the company founded by Trino's creators, with autoscaling, governance, and enterprise connectors).
Amazon Athena: best for ad-hoc S3 queries with no infrastructure at all
Amazon EMR: best when you need cluster-level tuning and long-running workloads on AWS
Starburst Galaxy: best for cross-cloud federation with commercial support and fine-grained access control
What It Does Best
Data federation. JOIN data across S3, MySQL, PostgreSQL, Cassandra in one query. No ETL required.
Interactive speed. In-memory distributed execution. Query petabytes with seconds-level latency instead of batch-job minutes.
Standard SQL. Full ANSI SQL support. Analysts use familiar syntax across all data sources.
Key Features
Federation: 50+ connectors to different data sources
Cost-based optimizer: Intelligent query planning with statistics
In-memory execution: Pipelined distributed processing, no MapReduce stages
ANSI SQL: Standard SQL across all sources
Extensible: Custom connectors and functions
Pricing
Open Source: Free, Apache 2.0 license
Amazon Athena: $5 per TB of data scanned, fully serverless
AWS EMR: EC2 compute costs + ~25% EMR surcharge
Starburst Galaxy: Usage-based credits, free tier available
Self-managed: Cloud VM costs only
When to Use It
✅ Data lake analytics (S3, HDFS)
✅ Querying across multiple data sources
✅ Ad-hoc exploratory analytics
✅ Too much data to move into warehouse
✅ Existing Presto deployments
When NOT to Use It
❌ Operational workloads (analytics only)
❌ Small datasets (overhead not worth it)
❌ Need data persistence (compute-only layer)
❌ New projects (use Trino instead)
❌ Need latest features (Trino more active)
Common Use Cases
Data lake queries: SQL on Parquet/ORC files in S3/HDFS
Cross-database joins: Combine data from multiple sources
Ad-hoc analysis: Explore data without moving it
Data virtualization: Unified view across systems
ETL alternative: Query in place instead of copying
Presto vs Alternatives
vs Trino: Trino is the actively developed fork — use Trino for new projects
vs Athena: Presto more control, Athena fully managed and serverless
vs Spark SQL: Presto faster for interactive queries, Spark better for long batch jobs and ML
vs Snowflake/BigQuery: Presto queries data in place for free; warehouses ingest data but add storage, optimization, and management
Unique Strengths
Query federation: JOIN across any data source
No data movement: Query data where it lives
Interactive speed: Fast enough for real-time exploration
ANSI SQL: Standard SQL everywhere
Bottom line: Presto proved you can run interactive SQL on petabytes without moving data, and it still powers Meta, Uber, and Amazon Athena. But the ecosystem's momentum moved to the Trino fork — pick Trino (or a managed service like Athena or Starburst Galaxy) for anything new, and keep PrestoDB where it's already running well.