Presto is an open source distributed SQL query engine for running interactive analytic queries against heterogeneous data sources. It was open sourced by Facebook in 2013. Although it is also known as PrestoDB, Presto is not a general-purpose database management system (DBMS). It does not manage the storage of data. Instead, Presto is a query engine which allows querying data where it lives, including Hive, Cassandra, Kafka, and relational databases. A single Presto query is able to combine data from multiple sources. Presto was designed, built and optimized for interactive queries. In comparison, both Presto and Hive support SQL queries against HDFS, while Presto is targeted at interactive queries and Hive is suitable for batch processing. Presto supports ANSI-compatible SQL statements.[05][06]
- Website
- https://prestodb.io[01]
- Source Code
- https://github.com/trinodb/trino[02]
- Tech Docs
- https://prestodb.io/docs/current[03]
- Developer
- Country of Origin
- US
- Start Year
- 2013 [10]
- Project Type
- Open Source
- Written in
- Java
- Supported Languages
- SQL
- Operating System
- All OS with Java VM
- License
- Apache v2
Presto is an open source distributed SQL query engine for running interactive analytic queries against heterogeneous data sources. It was open sourced by Facebook in 2013. Although it is also known as PrestoDB, Presto is not a general-purpose database management system (DBMS). It does not manage the storage of data. Instead, Presto is a query engine which allows querying data where it lives, including Hive, Cassandra, Kafka, and relational databases. A single Presto query is able to combine data from multiple sources. Presto was designed, built and optimized for interactive queries. In comparison, both Presto and Hive support SQL queries against HDFS, while Presto is targeted at interactive queries and Hive is suitable for batch processing. Presto supports ANSI-compatible SQL statements.[05][06]
History[07][06]
Presto started out as a project at Facebook. Prior to Presto, Facebook primarily used Hive, but it wasn't optimized for high speed interactive queries. The development of Presto finished in 2012, and it was rolled out to the company in early 2013. Facebook open-sourced Presto in November 2013 under the Apache Software License.
Checkpoints[08]
Presto does not support checkpointing, or any other forms of fault-tolerance as of late 2018. The client has to rerun the entire query once failure occurs.
Indexes[07]
Presto does not support indexes. All intermediate processing and storage are done in the memory to avoid unnecessary I/O overheads.
Isolation Levels[09]
Presto supports 4 different types of isolation levels. The isolation level is to be specified when a transaction is started.
Query Interface[08]
Presto follows the ANSI SQL specification. To improve usability, Presto also supports anonymous functions and built-in higher-order functions, including transform, filter and reduce.
Citations
10 sources- https://prestodb.io prestodb.io
- GitHub - trinodb/trino: Official repository of Trino, the distributed SQL query engine for big data, formerly known as PrestoSQL (https://trino.io) · GitHub github.com
- https://prestodb.io/docs/current prestodb.io
- Presto (SQL query engine) - Wikipedia wikipedia.org
- https://blog.treasuredata.com/blog/2015/03/20/presto-versus-hive/ treasuredata.com
- https://www.facebook.com/notes/facebook-engineering/presto-interacting-with-petabytes-of-data-at-facebook/10151786197628920 facebook.com
- https://aws.amazon.com/big-data/what-is-presto amazon.com
- https://prestosql.io/Presto_SQL_on_Everything.pdf prestosql.io
- https://prestodb.io/docs/current/sql/start-transaction.html prestodb.io
- https://www.computerworld.com/article/2485668/business-intelligence/facebook-goes-open-source-with-query-engine-for-big-data.html computerworld.com