Facebook 正式宣佈開源 Presto —— 數據查詢引擎,可對250PB以上的數據進行快速地交互式分析。該項目始於 2012 年秋季開始開發,目前該項目已經在超過 1000 名 Facebook 僱員中使用,運行超過 30000 個查詢,每日數據在 1PB 級別。Facebook 稱 Presto 的性能比諸如 Hive 和 Map*Reduce 要好上 10 倍有多。git
Faebook的數據倉庫存儲在少許大型Hadoop/HDFS集羣,隨着數據量的飆升,Facebook須要一套交互性更好的數據查詢系統。2012年開始試用一些外部項目都不合適,他們決定本身開發,這就是Presto。github
Presto是一套分佈式SQL引擎,支持P級數據交互查詢。支持Ansi SQL查詢,包括複雜查詢,如包括聯合查詢、左右聯接、子查詢以及一些聚合和計算函數;including approximate distinct counts (using HyperLogLog) and approximate percentiles (based on quantile digest). The main restrictions at this stage are a size limitation on the join tables and cardinality of unique keys/groups. The system also lacks the ability to write output data back to tables (currently query results are streamed to the client).segmentfault
Presto徹底不一樣於Hive/MapReduce, Hive是把一條查詢分解成多個MapReduce任務分步實行,每一個任務都從磁盤上讀取數據在把結果寫回去。而Presto不用Mapreduce,而是用支持SQL查詢的分析引擎,在內存中進行操做,以保證速度。app
Presto使用Java開發,支持外部數據存儲的擴展,。分佈式
2012年秋天Presto項目啓動,2013年春天系統上線,現已成爲Facebook數據倉庫主要查詢系統。現已部署超過1000個節點,有超過1000名員工使用,天天處理P級數據查詢3萬條。函數
Presto的數據查詢速度比Hive/Mapreduce快10倍以上。oop
開源地址性能
http://prestodb.io/ https://github.com/facebook/prestothis