天天看點

大資料Presto(一):Presto介紹

大資料Presto(一):Presto介紹

文章目錄

​​Presto介紹​​

​​一、Presto出現背景​​

​​二、Presto特點​​

​​三、Presto架構​​

Presto介紹

一、Presto出現背景

Presto是Facebook在2012年開發的,是專為Hadoop打造的一款資料倉庫工具。在早期Facebook依賴Hive做資料分析,Hive底層依賴MapReduce,随着資料量越來越大,使用Hive進行資料分析,時間可能需要分鐘級到小時級别,不能滿足互動式查詢的資料分析場景。2012年秋季,Facebook開發Presto,目前該項目在Facebook中運作超過30000個查詢,每日處理資料PB以上。Presto的查詢速度是Hive的5-10倍。

綜上,Presto是由Facebook2012年開發,基于記憶體、支援并行計算的分布式SQL互動式查詢引擎,不是資料庫,支援多種資料源,針對GB~PB資料查詢可以達到秒級傳回結果,主要用于秒級查詢OLAP資料分析場景。

Presto官網位址:​​https://prestodb.io​​

大資料Presto(一):Presto介紹

二、Presto特點

  • 多資料源

Presto可以支援MySQL、PostgreSQL、cassandra、Hive、Kafka等多種資料源查詢。

  • 支援SQL

Presto支援部分标準SQL對資料進行查詢,并提供SQL shell進行SQL查詢。但是Presto不支援存儲過程,不适合大表Join操作,因為Presto是基于記憶體的,多張大表關聯可能給記憶體帶來壓力。

  • 擴充性

Presto有很好的擴充向,可以自定義開發特定資料源的Connector,使用SQL分析指定Connector中的資料。

  • 混合計算

在Presto中可以根據業務需要使用特定類型的Connector來讀取不同資料源的資料,進行join關聯計算。

  • 基于記憶體計算,高性能

Presto是基于記憶體計算的,減少磁盤IO,計算更快。Presto性能是Hive的10倍以上。Presto能夠處理PB級别的資料,但Presto并不是把PB級别的資料一次性加載到記憶體中計算,而是根據處理方式,例如:聚合場景,邊讀取資料,聚合,再清空記憶體,再去讀取資料加載記憶體,再聚合計算,再清空記憶體... 這種方式。如果使用Join查詢,那麼就會産生大量的中間資料,速度會變慢。

  • 流水線

由于Presto是基于PipeLine進行設計的,是以在進行海量資料處理過程中,終端使用者不用等到所有的資料都處理完成才能看到結果,而是可以向自來水管一樣,一旦計算開始,就可以産生一部分結果資料,并且結果資料會一部分接一部分的傳回到用戶端。

三、Presto架構

Presto查詢引擎是一個Master-Slave的架構,由一個Coordinator節點,一個Discovery Server節點,多個Worker節點組成,Discovery Server通常内嵌于Coordinator節點中。Presto架構圖如下:

大資料Presto(一):Presto介紹

上圖中各個角色功能如下:

  • Presto Coordinator:
  • Presto Worker:
  • Hive Metastore(配置Hive Connector才會有)
  • 📢歡迎點贊 👍 收藏 ⭐留言 📝 如有錯誤敬請指正!
  • 📢本文由 Lansonli 原創,
  • 📢停下休息的時候不要忘了别人還在奔跑,希望大家抓緊時間學習,全力奔赴更美好的生活✨

繼續閱讀