Presto是Facebook開發(fā)的數(shù)據(jù)查詢引擎,可對250PB以上的數(shù)據(jù)進(jìn)行快速地交互式分析。
該項目始于2012年秋季開始開發(fā),目前該項目已經(jīng)在超過1000名Facebook雇員中使用,運(yùn)行超過30000個查詢,每日數(shù)據(jù)在1PB級別。Facebook稱Presto的性能比Hive要好上10倍有多。2013年Facebook正式宣布開源Presto。
開發(fā)歷史
Presto最初由Facebook的Martin Traverso,Dain Sundstrom,David Phillips和Eric Hwang四位開發(fā)人員設(shè)計和開發(fā),用于在其大型數(shù)據(jù)倉庫中運(yùn)行交互式查詢的Apache Hadoop。Facebook的數(shù)據(jù)分析師在Presto之前依賴于Apache hive在其多PB級數(shù)據(jù)倉庫上運(yùn)行SQL分析,但Hive的速度無法滿足Facebook的需求。Presto的開發(fā)始于2012年,并于同年晚些時候在Facebook部署。2013年11月,F(xiàn)acebook宣布Presto的開源發(fā)布。
Netflix在2014年披露他們在亞馬遜簡單存儲服務(wù)(S3)上存儲的10PB數(shù)據(jù)中使用了Presto。2016年11月,亞馬遜宣布了一個基于Presto的名為Athena的服務(wù)。2017年,天睿資訊系統(tǒng)有限公司成立了一個名為Starburst Data的公司,以商業(yè)支持Presto。2019年1月,Presto軟件基金會成立,以促進(jìn)Presto開源分布式SQL查詢引擎的發(fā)展。同年9月,F(xiàn)acebook將PrestoDB捐贈給Linux基金會,成立了Presto基金會。到2020年,最初的四位Presto開發(fā)人員都加入了Starburst。2020年12月,PrestoSQL更名為Trino。2020年,Ahana公司宣布將PrestoDB分支商業(yè)化為云服務(wù),并于2023年被IBM收購。
功能與服務(wù)
Presto的架構(gòu)是一個分布式系統(tǒng),采用大規(guī)模并行處理(MPP)模式。它由一個協(xié)調(diào)器和多個工作節(jié)點(diǎn)組成,客戶端提交的SQL經(jīng)過解析和規(guī)劃后,將并行任務(wù)調(diào)度給工作節(jié)點(diǎn)。工作節(jié)點(diǎn)處理來自數(shù)據(jù)源的行,并產(chǎn)生結(jié)果返回給客戶端。Presto不會將中間結(jié)果寫入磁盤,這與Apache Hive的執(zhí)行模型不同,后者在每個查詢上使用Hadoop MapReduce機(jī)制,因此Presto的查詢速度更快。Presto是用Java編寫的,并且可以合并來自多個數(shù)據(jù)源的數(shù)據(jù)。
Presto提供了與多種數(shù)據(jù)源的連接器,包括但不限于Hadoop分布式文件系統(tǒng)(HDFS)、Amazon S3、MySQL、PostgreSQL、Microsoft SQL Server、Amazon Redshift、Apache Kafka、Apache Cassandra等。Presto支持計算和存儲的分離,可以在本地或云計算環(huán)境中部署。與其他特定于Hadoop發(fā)行版的工具不同,Presto可以與任何Hadoop變體一起工作,也可以在沒有Hadoop的情況下工作。
參考資料 >