DEV.co
Open-Source Databases · prestodb

presto

Presto is a distributed SQL query engine designed for querying large datasets across multiple data sources and storage systems. It enables interactive analytics on big data platforms like Hadoop and Hive by providing fast, standards-based SQL execution without moving data.

Source: GitHub — github.com/prestodb/presto
16.7k
GitHub stars
5.5k
Forks
Java
Primary language
Apache-2.0
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryprestodb/presto
Ownerprestodb
Primary languageJava
LicenseApache-2.0 — OSI-approved
Stars16.7k
Forks5.5k
Open issues2.9k
Latest release0.298.1 (2026-06-17)
Last updated2026-07-07
Sourcehttps://github.com/prestodb/presto

What presto is

Presto is a Java-based distributed query engine that translates SQL into optimized execution plans across a cluster of worker nodes. It supports multiple connectors (Hive, Hadoop, lakehouse formats) and uses a coordinator-worker architecture for parallel query processing.

Quickstart

Get the presto source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/prestodb/presto.gitcd presto# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Interactive Analytics on Data Lakes

Query petabyte-scale data in HDFS, S3, or lakehouse formats (Delta, Iceberg) with sub-second to minute-level latency, suitable for BI dashboards and ad-hoc exploration.

Federated Queries Across Heterogeneous Sources

Join and aggregate data from Hive metastores, PostgreSQL, MySQL, Kafka, and other catalogs in a single SQL query without replication or ETL pipelines.

Data Warehouse Replacement or Supplement

Replace or complement traditional data warehouses for enterprises running Hadoop clusters; scales horizontally and integrates with existing ecosystem investments.

Implementation considerations

  • Requires Java 17 (Oracle JDK or OpenJDK); ensure runtime and compile-time Java version consistency to avoid module access issues.
  • Hive metastore integration is central to standard configurations; must be deployed and accessible (or use SSH SOCKS proxy if behind NAT).
  • Comprehensive unit tests and Maven builds can take significant time on first run; plan build cache strategy for multi-project environments.
  • Java 17 reflective access requires explicit `--add-opens` flags for default catalogs; additional flags may be needed for custom connectors.
  • UI components depend on Node.js and Yarn; can be skipped with `-DskipUI` flag if web console is not required.

When to avoid it — and what to weigh

  • Low-latency Transactional Workloads — Presto is optimized for analytical queries, not OLTP. Sub-millisecond response times or UPDATE/DELETE-heavy workflows are not the design target.
  • Minimal Infrastructure/Operational Expertise — Requires Java 17, Maven, multi-node cluster setup, Hive metastore integration, and ongoing monitoring. Not suitable for teams without DevOps bandwidth.
  • Proprietary Vendor Lock-in Requirements — While Apache-licensed, Presto does not provide vendor support or SLAs directly from the repository. Commercial support requires third-party providers.
  • Simple Single-Machine Workloads — Overhead of distributed coordination and catalog management makes Presto inappropriate for small, centralized databases or development laptops.

License & commercial use

Presto is licensed under Apache License 2.0 (Apache-2.0), a permissive OSI-compliant license that allows commercial use, modification, and distribution with attribution and indemnity protections.

Apache-2.0 permits commercial use without restrictions, but the license provides no warranty or liability limitations favoring the licensor. Users deploying Presto in production should: (1) review the license terms directly, (2) understand that no official vendor support is bundled with the open-source repository, and (3) evaluate third-party commercial support providers if SLAs or professional maintenance are required.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationStrong
License clarityClear
Deployment complexityHigh
DEV.co fitGood
Assessment confidenceHigh
Security considerations

Presto runs on Java 17 and requires `--add-opens` flags to allow reflective access to internal JDK modules, potentially expanding the attack surface. No explicit security audit, vulnerability disclosure, or hardening guidelines are provided in the README. Users deploying Presto should: (1) apply the minimum necessary `--add-opens` flags for active catalogs, (2) restrict network access to coordinator/worker ports (default unknown from this data), (3) audit connector authentication mechanisms for each data source, (4) monitor for CVEs in Java 17 and Presto dependencies, and (5) review third-party security advisories.

Alternatives to consider

Apache Spark SQL

Distributed SQL engine with broader ML/ETL support and simpler deployment model; better for mixed analytical and transformation workloads, but potentially higher latency for interactive queries.

Apache Drill

Schema-free distributed SQL query engine for semi-structured data; lower operational overhead but less mature and smaller ecosystem than Presto for traditional big-data analytics.

Cloud Data Warehouses (Snowflake, BigQuery, Redshift)

Fully managed, vendor-supported platforms with built-in scaling and security; eliminate operational burden but introduce vendor lock-in and variable per-query costs.

Software development agency

Build on presto with DEV.co software developers

Presto is powerful but operationally complex. Our team can assess your infrastructure readiness, design your cluster topology, and advise on connector integration. Let's discuss your requirements.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

presto FAQ

Can Presto run on a single machine?
Yes, but it is not recommended. Presto is optimized for distributed clusters. Single-node deployments add coordinator/worker overhead without scalability benefits; use SQLite, PostgreSQL, or DuckDB for smaller workloads.
What data sources does Presto support?
Presto uses pluggable connectors. Standard connectors include Hive, Hadoop HDFS, PostgreSQL, MySQL, Kafka, and others. Check the Presto documentation for the complete list and maturity level of each connector.
Is commercial support available?
The open-source repository does not provide commercial support. Third-party vendors offer professional support, SLAs, and managed Presto services; verify availability and terms independently.
What are the hardware requirements?
Not detailed in the provided README. Presto requires Java 17 at minimum; cluster size, CPU, memory, and disk recommendations depend on data volume and query patterns. Consult the full documentation and community resources.

Custom software development services

From first prototype to production, DEV.co delivers software development services around tools like presto. Our software development agency staffs experienced software developers and web developers for custom software development, web development, integrations, and ongoing support across open-source databases and beyond.

Ready to evaluate Presto for your data analytics platform?

Presto is powerful but operationally complex. Our team can assess your infrastructure readiness, design your cluster topology, and advise on connector integration. Let's discuss your requirements.