Presto 來自非死book的開源分布式查詢引擎

jopen 9年前發布 | 19K 次閱讀 Presto
PrestoDB 來自非死book的開源分布式查詢引擎

Presto是一個分布式SQL查詢引擎, 它被設計為用來專門進行高速、實時的數據分析。它支持標準的ANSI SQL,包括復雜查詢、聚合(aggregation)、連接(join)和窗口函數(window functions)。下圖中展現了簡化的Presto系統架構。客戶端(client)將SQL查詢發送到Presto的協調員 (coordinator)。協調員會進行語法檢查、分析和規劃查詢計劃。計劃員(scheduler)將執行的管道組合在一起, 將任務分配給那些里數據最近的節點,然后監控執行過程。 客戶端從輸出段中將數據取出,這些數據是從更底層的處理段中依次取出的。

Presto 來自非死book的開源分布式查詢引擎

Presto的運行模型和Hive或MapReduce有著本質的區別。Hive將查詢翻譯成多階段的MapReduce任務, 一個接著一個地運行。每一個任務從磁盤上讀取輸入數據并且將中間結果輸出到磁盤上。然而Presto引擎沒有使用MapReduce。它使用了一個定制的 查詢和執行引擎和響應的操作符來支持SQL的語法。除了改進的調度算法之外,所有的數據處理都是在內存中進行的。不同的處理端通過網絡組成處理的流水線。 這樣會避免不必要的磁盤讀寫和額外的延遲。這種流水線式的執行模型會在同一時間運行多個數據處理段,一旦數據可用的時候就會將數據從一個處理段傳入到下一 個處理段。這樣的方式會大大的減少各種查詢的端到端響應時間。

Presto 來自非死book的開源分布式查詢引擎

Presto查詢引擎是一個Master-Slave的架構,由一個Coordinator節點,一個Discovery Server節點,多個Worker節點組成,Discovery Server通常內嵌于Coordinator節點中。Coordinator負責解析SQL語句,生成執行計劃,分發執行任務給Worker節點執行。 Worker節點負責實際執行查詢任務。Worker節點啟動后向Discovery Server服務注冊,Coordinator從Discovery Server獲得可以正常工作的Worker節點。如果配置了Hive Connector,需要配置一個Hive MetaStore服務為Presto提供Hive元信息,Worker節點與HDFS交互讀取數據。

Presto特點:

  • 完全基于內存的并行計算
  • 流水線
  • 本地化計算
  • 動態編譯執行計劃
  • 小心使用內存和數據結構
  • 類BlinkDB的近似查詢
  • GC控制

擴展性是在設計Presto時的另一個要點。在項目的早期階段, 非死book就意識到出了HDFS之外,大量數據會被存儲在很多其他類型的系統中。 其中一些是像HBase一類的為人熟知的系統,另一類則是象非死book New Feed一樣的定制的后臺。Presto設計了一個簡單的數據存儲的抽象層, 來滿足在不同數據存儲系統之上都可以使用SQL進行查詢。存儲插件(連接器,connector)只需要提供實現以下操作的接口,包括對元數據 (metadata)的提取,獲得數據存儲的位置,獲取數據本身的操作等。除了我們主要使用的Hive/HDFS后臺系統之外, 非死book也開發了一些連接其他系統的Presto 連接器,包括HBase,Scribe和定制開發的系統。作為Hive和Pig(Hive和Pig都是通過MapReduce的管道流來完成HDFS數據 的查詢)的替代者,Presto不僅可以訪問HDFS,也可以操作不同的數據源,包括:RDBMS和其他的數據源(例如:Cassandra)。目前已經 被支持的RDBMS有:MySQL、SQLServer、PostgreSQL等

WebUI

1、AirPal(推薦)

AirPal是AirBnb開源的查詢Presto的WebUI。 項目特性:

  • 可選的用戶訪問控制
  • SQL語法高亮
  • 查詢結果導出到CSV文件,或者存到Hive表中
  • 可查看SQL查詢的歷史記錄
  • 可保存查詢
  • 根據表名搜索對應的表
  • 可查看表結構,并預覽前1000行數據

項目地址 https://github.com/airbnb/airpal

2、Shib

Shib是Treasure Data員工TAGOMORI開源的查詢Hive、Presto、BigQuery的WebUI。

項目地址 https://github.com/tagomoris/shib

3、Hue

Hue本身是不支持查詢Presto的,但是可以通過以下的方法使其支持查詢Presto: https://medium.com/@ilkkaturunen/integrating-presto-with-hue-61702b244839

4、yanagishima

這是一個奇怪的英文名字,因為是一個日本人起的,來自東京的軟件工程師wyukawa。項目特性:

  • 安裝簡單(無需安裝RDBMS)
  • 易用,與MySQL Workbench類似
  • 使用本地存儲記錄獨立的查詢歷史
  • 可以為查詢添加標簽
  • 可以查看歷史查詢列表
  • 可以Kill正在運行的查詢
  • 可以格式化查詢語句
  • 可查看表信息(列、分區)
  • 查詢結果保存為TSV文件

項目地址 https://github.com/wyukawa/yanagishima

其他參考鏈接:

轉載請注明: 標點符 ? Presto 來自非死book的開源分布式查詢引擎

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!