Trino (SQL query engine)
| Company type | Open-source software |
|---|---|
| Industry | Software, Data management |
| Founded | January 2019 |
| Founder | Martin Traverso, Dain Sundstrom, David Phillips |
Area served | Worldwide |
| Products | Distributed SQL query engine |
| Owner | Trino Software Foundation |
| Website | trino |
Trino is an open-source distributed SQL query engine engineered to perform queries on extensive data collections spanning diverse data sources. It facilitates querying of data lakes containing multiple file formats, ranging from basic CSV and JSON to advanced columnar formats like ORC and Parquet. These files are stored on systems including HDFS, AWS S3, Google Cloud Storage, and Azure Blob Storage. Trino utilizes table formats such as Hive and Iceberg and supports federated querying across various database systems like MySQL, PostgreSQL, Cassandra, Kafka, MongoDB, and Elasticsearch. The software is distributed under the terms of the Apache License.
History
The original creators of Presto—Martin Traverso, Dain Sundstrom, and David Phillips—forked the project in January 2019, initially maintaining the Presto name while adopting the PrestoSQL moniker to distinguish it from PrestoDB. Alongside this, they founded the Presto Software Foundation, a nonprofit organization dedicated to advancing the Presto open-source SQL engine.
By December 2020, PrestoSQL underwent a rebranding to become Trino, which included renaming its code repository, foundation, and associated assets.
Trino's development shares its first six years with Presto; both were initially created at Facebook by Martin Traverso, Dain Sundstrom, David Phillips, and Eric Hwang to support interactive querying over large-scale Hadoop-based data warehouses.
Today, Trino serves as the underlying engine for a variety of data platforms and cloud services with different levels of customization—from standalone Trino installations to integrated solutions—examples include Amazon Athena, Starburst Galaxy, and Dune.
Architecture
Written in Java, Trino runs on a cluster architecture composed of two types of nodes: a single coordinator and multiple worker nodes.
- The coordinator is responsible for query parsing, analysis, optimization, planning, and scheduling. It interacts with the service provider interface (SPI) to retrieve metadata such as table definitions and statistical information.
- Worker nodes carry out tasks assigned by the scheduler by processing data rows from various sources and sending results back to the coordinator for client delivery.
Trino adheres to the ANSI SQL standard, covering versions from SQL-92 up to SQL:2023. It supports separation between compute and storage layers and can be deployed both on-premises and within the cloud environment.
Its Distributed computing MPP design distributes workloads across worker nodes using either ad-hoc or pre-existing data partitions. Data processing is executed by pipelined operators running concurrently across multiple threads on each worker node.