Presto (SQL query engine)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Presto
Original author(s)Martin Traverso, Dain Sundstrom, David Phillips, Eric Hwang
Initial release10 November 2013; 8 years ago (10 November 2013)
Written inJava
Operating systemCross-platform
Standard(s)SQL
TypeData warehouse
LicenseApache License 2.0
Website

Presto (including PrestoDB and PrestoSQL later re-branded to Trino) is a distributed query engine for big data using the SQL query language. Its architecture allows users to query data sources such as Hadoop, Cassandra, Kafka, AWS S3, Alluxio, MySQL, MongoDB and Teradata.[1] One can even query data from multiple data sources within a single query. Presto is community driven open-source software released under the Apache License.

History[edit]

Presto was originally designed and developed at Facebook, Inc. (later renamed Meta) for their data analysts to run interactive queries on its large data warehouse in Apache Hadoop. The first four developers were Martin Traverso, Dain Sundstrom, David Phillips, and Eric Hwang. Before Presto, the data analysts at Facebook relied on Apache Hive for running SQL analytics on their multi-petabyte data warehouse.[2] Hive was deemed too slow for Facebook's scale and Presto was invented to fill the gap to run fast queries.[3] Original development started in 2012 and deployed at Facebook later that year. In November 2013, Facebook announced its open source release.[3][4]

In 2014, Netflix disclosed they used Presto on 10 petabytes of data stored in the Amazon Simple Storage Service (S3).[5] In November, 2016, Amazon announced a service called Athena that was based on Presto.[6] In 2017, Teradata spun out a company called Starburst Data to commercially support Presto, which included staff acquired from Hadapt in 2014.[7] Teradata's QueryGrid software allowed Presto to access a Teradata relational database.[8]

In January 2019, the Presto Software Foundation was announced. The foundation is a not-for-profit organization for the advancement of the Presto open source distributed SQL query engine.[9][10] At the same time, Presto development forked: PrestoDB maintained by Facebook and PrestoSQL maintained by the Presto Software Foundation with some cross pollination of code.

In September 2019, Facebook donated PrestoDB to the Linux Foundation, establishing the Presto Foundation.[11] Neither the creators of Presto, nor the top contributors and committers, were invited to join this foundation.[12]

By 2020, all four of the original Presto developers had joined Starburst.[13] In December 2020, PrestoSQL was rebranded as Trino, since Facebook had a trademark on the name "Presto" (also donated to the Linux Foundation).[14]

The original Presto (PrestoDB) has continuously been developed and used in large scale production deployments at Facebook and Uber. In December 2021, a presentation at PrestoCon featured the ByteDance TikTok platform and their wide use of Presto covering DataWarehouse, BI Tools, Ads and ad-hoc scenarios running more than 1 million queries per day on tens of thousands of compute cores.

Another company called Ahana was announced in 2020, with seed funding from GV (formerly Google Ventures, an arm of Alphabet, Inc.), to commercialize the PrestoDB fork as a cloud service, but does offer an open-source version.[15] A $20 million round of funding for Ahana was announced in August 2021.[16]

Architecture[edit]

Architecture overview with coordinator and workers

Presto’s architecture is very similar to other database management systems using cluster computing, sometimes called massively parallel processing (MPP). One coordinator works in sync with multiple workers. Clients submit SQL statements that get parsed and planned following which parallel tasks are scheduled to workers. Workers jointly process rows from the data sources and produce results that are returned to the client. Compared to the original Apache Hive execution model which used the Hadoop MapReduce mechanism on each query, Presto does not write intermediate results to disk, resulting in a significant speed improvement. Presto is written in Java.

A single Presto query can combine data from multiple sources. Presto offers connectors to data sources including files in Alluxio, Hadoop Distributed File System (often called a data lake), Amazon S3, MySQL, PostgreSQL, Microsoft SQL Server, Amazon Redshift, Apache Kudu, Apache Phoenix, Apache Kafka, Apache Cassandra, Apache Accumulo, MongoDB and Redis. Unlike other Hadoop distribution-specific tools, such as Apache Impala, Presto can work with any variant of Hadoop or without it. Presto supports separation of compute and storage and may be deployed on premises or using cloud computing.

See also[edit]

References[edit]

  1. ^ 1.1. Teradata Distribution of Presto — Teradata Distribution of Presto 0.167-t.0.2 Documentation
  2. ^ Mike Volpi (November 20, 2019). "Starburst and Presto: with Stellar Velocity". Index Ventures Blog. Retrieved January 27, 2022.
  3. ^ a b Joab Jackson (November 6, 2013). "Facebook goes open source with query engine for big data". Computer World. Retrieved April 26, 2017.
  4. ^ Jordan Novet (June 6, 2013). "Facebook unveils Presto engine for querying 250 PB data warehouse". Giga Om. Retrieved April 26, 2017.
  5. ^ Eva Tse, Zhenxiao Luo, Nezih Yigitbasi (October 7, 2014). "Using Presto in our Big Data Platform on AWS". Netflix technical blog. Retrieved April 26, 2017.{{cite news}}: CS1 maint: uses authors parameter (link)
  6. ^ Jeff Barr (November 30, 2016). "Amazon Athena – Interactive SQL Queries for Data in Amazon S3". AWS News Blog. Retrieved January 27, 2022.
  7. ^ Philip Howard (December 21, 2017). "Teradata spins off Starburst". Bloor. Retrieved January 26, 2022.
  8. ^ Lindsay Clark (December 17, 2020). "Hey Presto! Teradata admits its vision is dead by hooking QueryGrid analytics platform up to rival data warehouses". The Register. Retrieved January 26, 2022.
  9. ^ "Presto Software Foundation Launches to Advance Presto Open Source Community". Press release. January 31, 2019. Retrieved January 2, 2022.
  10. ^ "Presto's New Foundation Signals Growth for the Big Data SQL Engine". The New Stack. 2019-01-31. Retrieved 2019-02-01.
  11. ^ "Facebook, Uber, Twitter and Alibaba form Presto Foundation to Tackle Distributed Data Processing at Scale". 23 September 2019. Retrieved 2019-11-12.
  12. ^ Piotr Findeisen (November 22, 2019). "What's the relationship between prestosql and prestodb?". Comment on issue #38 of Trino Github. Retrieved January 27, 2022.
  13. ^ "Original Presto Co-Creators Reunite on the Starburst Technical Leadership Team". Press release. September 22, 2020. Retrieved January 26, 2022.
  14. ^ Martin Traverso, Dain Sundstrom, David Phillips (December 27, 2020). "We're rebranding PrestoSQL as Trino". Trino blog. Retrieved January 26, 2022.{{cite web}}: CS1 maint: multiple names: authors list (link)
  15. ^ Andrew Brust (June 2, 2020). "Ahana gets seed funding, and a tale of two Prestos: Presto-focused Ahana emerges from stealth, highlights schism in open source query engine's ecosystem". Retrieved January 26, 2022.
  16. ^ Sai Venkatesh (August 4, 2021). "Ahana raises $20M in Series A from Third Point Ventures". SaaS Industry. Retrieved January 26, 2022.

External links[edit]