Presto (SQL查詢引擎)

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
Presto
原作者Martin Traverso, Dain Sundstrom, David Phillips, Eric Hwang
首次發布2013年11月10日,​10年前​(2013-11-10
編程語言Java
操作系統跨平台
標準SQL
類型數據倉庫
許可協議Apache License 2.0
網站prestodb.io
prestosql.io

Presto是一種用於大數據的高性能分布式SQL查詢引擎。其架構允許用戶查詢各種數據源,如Hadoop、AWS S3、Alluxio、MySQLCassandra、Kafka和MongoDB。甚至可以在單個查詢中查詢來自多個數據源的數據。Presto是Apache許可證下發布的社區驅動的開源軟件。

歷史[編輯]

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) (美國英語). 

外部連結[編輯]