Presto (SQL查詢引擎)
Presto是一種用於大數據的高性能分布式SQL查詢引擎。其架構允許用戶查詢各種數據源,如Hadoop、AWS S3、Alluxio、MySQL、Cassandra、Kafka和MongoDB。甚至可以在單個查詢中查詢來自多個數據源的數據。Presto是Apache許可證下發布的社區驅動的開源軟件。
原作者 | Martin Traverso, Dain Sundstrom, David Phillips, Eric Hwang |
---|---|
首次發布 | 2013年11月10日 |
編程語言 | Java |
操作系統 | 跨平台 |
標準 | SQL |
類型 | 數據倉庫 |
許可協議 | Apache License 2.0 |
網站 | prestodb prestosql |
歷史
編輯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中的文件、MySQL、PostgreSQL、Microsoft SQL Server、Amazon Redshift、Apache Kudu、Apache Phoenix、Apache Kafka、Apache Cassandra、Apache Accumulo、MongoDB和Redis。與其他只支持Hadoop特定發行版的工具(如Cloudera Impala)不同,Presto可以使用任何風格的Hadoop,也可以不用Hadoop。Presto支持計算和存儲的分離,可以在本地和雲中部署。
參考資料
編輯- ^ Joab Jackson. Facebook goes open source with query engine for big data. Computer World. November 6, 2013 [April 26, 2017]. (原始內容存檔於2019-02-01).
- ^ Jordan Novet. Facebook unveils Presto engine for querying 250 PB data warehouse. Giga Om. June 6, 2013 [April 26, 2017]. (原始內容存檔於2019-09-06).
- ^ 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).
- ^ Presto Software Foundation Launches to Advance Presto Open Source Community. PRWeb. [2019-02-01]. (原始內容存檔於2020-04-24).
- ^ Presto's New Foundation Signals Growth for the Big Data SQL Engine. The New Stack. 2019-01-31 [2019-02-01]. (原始內容存檔於2019-02-01) (美國英語).