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
Developer(s)Contributors
Initial release10 November 2013; 5 years ago (10 November 2013)
Stable release306[1] (March 16, 2019; 2 days ago (2019-03-16)) [±]
Repositoryhttps://github.com/prestosql/presto
Written inJava
Operating systemCross-platform
Available inSQL
TypeData warehouse
LicenseApache License 2.0
Websiteprestosql.io

Presto is a high performance, distributed SQL query engine for big data. Its architecture allows users to query a variety of data sources such as Hadoop, AWS S3, Alluxio, MySQL, Cassandra, Kafka, and MongoDB. 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 for their data analysts to run interactive queries on its large data warehouse in Apache Hadoop. Before Presto, the data analysts at Facebook relied on Apache Hive for running SQL analytics on their multi petabyte data warehouse. Hive was inadequate for Facebook's scale and Presto was invented to fill the gap to run fast queries. Original development started in 2012 and deployed at Facebook later that year. In November 2013, Facebook announced its release as open source 2013.[2][3] In 2014, Netflix disclosed they used Presto on 10 petabytes of data stored in the Amazon Simple Storage Service (S3).[4]

In January 2019, the Presto Software Foundation was announced. The foundation is a not-for-profit organization dedicated to the advancement of the Presto open source distributed SQL query engine[5][6].

Architecture[edit]

Presto’s architecture is very similar to a classic database management system using cluster computing. It can be visualized as one coordinator node working in sync with multiple worker nodes. 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 the Java programming language.

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

References[edit]

  1. ^ "Presto Download".
  2. ^ Joab Jackson (November 6, 2013). "Facebook goes open source with query engine for big data". Computer World. Retrieved April 26, 2017.
  3. ^ Jordan Novet (June 6, 2013). "Facebook unveils Presto engine for querying 250 PB data warehouse". Giga Om. Retrieved April 26, 2017.
  4. ^ 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.CS1 maint: Uses authors parameter (link)
  5. ^ "Presto Software Foundation Launches to Advance Presto Open Source Community". PRWeb. Retrieved 2019-02-01.
  6. ^ "Presto's New Foundation Signals Growth for the Big Data SQL Engine". The New Stack. 2019-01-31. Retrieved 2019-02-01.


External links[edit]