Presto (SQL查询引擎)

Presto是一种用于大数据的高性能分布式SQL查询引擎。其架构允许用户查询各种数据源,如Hadoop、AWS S3、Alluxio、MySQLCassandra、Kafka和MongoDB。甚至可以在单个查询中查询来自多个数据源的数据。Presto是Apache许可证下发布的社区驱动的开源软件。

Presto
原作者Martin Traverso, Dain Sundstrom, David Phillips, Eric Hwang
首次发布2013年11月10日,​11年前​(2013-11-10
编程语言Java
操作系统跨平台
标准SQL
类型数据仓库
许可协议Apache License 2.0
网站prestodb.io
prestosql.io

历史

编辑

Presto最初是Facebook为数据分析师设计和开发的,用于在Apache Hadoop中的大型数据仓库上运行交互式查询。在Presto诞生之前,Facebook的数据分析师依靠Apache Hive在他们PB级的数据仓库上运行SQL分析。Hive不适合Facebook的规模,而Presto是为了填补快速查询这块的差距而发明的。最初的开发始于2012年,并于当年晚些时候部署在Facebook上。2013年11月,Facebook宣布将其开源。[1][2] 2014年,Netflix透露他们使用Presto存储在Amazon Simple Storage Service (S3)中的10 PB数据。[3] 2019年1月,Presto软件基金会页面存档备份,存于互联网档案馆)宣布成立。该基金会是一个致力于推进Presto开源分布式SQL查询引擎的非营利组织[4][5]。由Facebook主导的PrestoDB的开发与由Presto基金会主导的PrestoSQL的开发各自独立进行,有时会有一些代码交错。

架构

编辑

Presto的架构非常类似于使用集群计算(MPP)的传统数据库管理系统。它可以视为一个协调器节点,与多个工作节点同步工作。客户端提交已解析和计划的SQL语句,然后将并行任务安排给工作机。工作机一同处理来自数据源的行并生成返回给客户端的结果。与在每个查询上使用Hadoop的MapReduce机制的原始Apache Hive执行模型相比,Presto不会将中间结果写入磁盘,从而显着提高速度。Presto是用Java语言编写的。单个Presto查询可以组合来自多个源的数据。Presto提供数据源的连接器,包括Alluxio、Hadoop分布式文件系统、Amazon S3中的文件、MySQLPostgreSQLMicrosoft SQL Server、Amazon Redshift、Apache Kudu、Apache Phoenix、Apache Kafka、Apache Cassandra、Apache Accumulo、MongoDB和Redis。与其他只支持Hadoop特定发行版的工具(如Cloudera Impala)不同,Presto可以使用任何风格的Hadoop,也可以不用Hadoop。Presto支持计算和存储的分离,可以在本地和云中部署。

参考资料

编辑
  1. ^ Joab Jackson. Facebook goes open source with query engine for big data. Computer World. November 6, 2013 [April 26, 2017]. (原始内容存档于2019-02-01). 
  2. ^ Jordan Novet. Facebook unveils Presto engine for querying 250 PB data warehouse. Giga Om. June 6, 2013 [April 26, 2017]. (原始内容存档于2019-09-06). 
  3. ^ Eva Tse, Zhenxiao Luo, Nezih Yigitbasi. Using Presto in our Big Data Platform on AWS. Netflix technical blog. October 7, 2014 [April 26, 2017]. (原始内容存档于2017-02-24). 
  4. ^ Presto Software Foundation Launches to Advance Presto Open Source Community. PRWeb. [2019-02-01]. (原始内容存档于2020-04-24). 
  5. ^ Presto's New Foundation Signals Growth for the Big Data SQL Engine. The New Stack. 2019-01-31 [2019-02-01]. (原始内容存档于2019-02-01) (美国英语). 

外部链接

编辑