- Apache Presto 教程
- Apache Presto - 首頁
- Apache Presto - 概述
- Apache Presto - 架構
- Apache Presto - 安裝
- Apache Presto - 配置
- Apache Presto - 管理
- Apache Presto - SQL 操作
- Apache Presto - SQL 函式
- Apache Presto - MySQL 聯結器
- Apache Presto - JMX 聯結器
- Apache Presto - HIVE 聯結器
- Apache Presto - KAFKA 聯結器
- Apache Presto - JDBC 介面
- 自定義函式應用
- Apache Presto 有用資源
- Apache Presto - 快速指南
- Apache Presto - 有用資源
- Apache Presto - 討論
Apache Presto - 架構
Presto 的架構與經典的 MPP(大規模並行處理)DBMS 架構幾乎相同。下圖說明了 Presto 的架構。
上圖包含不同的元件。下表詳細描述了每個元件。
| 序號 | 元件及描述 |
|---|---|
| 1. | 客戶端 客戶端(Presto CLI)將 SQL 語句提交給協調器以獲取結果。 |
| 2. | 協調器 協調器是主守護程序。協調器最初解析 SQL 查詢,然後分析和計劃查詢執行。排程程式執行管道執行,將工作分配給最接近的節點並監控進度。 |
| 3. | 聯結器 儲存外掛稱為聯結器。Hive、HBase、MySQL、Cassandra 等充當聯結器;或者您也可以實現自定義聯結器。聯結器為查詢提供元資料和資料。協調器使用聯結器獲取元資料以構建查詢計劃。 |
| 4. | 工作節點 協調器將任務分配給工作節點。工作節點從聯結器獲取實際資料。最後,工作節點將結果傳遞給客戶端。 |
Presto - 工作流程
Presto 是一個在節點叢集上執行的分散式系統。Presto 的分散式查詢引擎針對互動式分析進行了最佳化,並支援標準 ANSI SQL,包括複雜查詢、聚合、聯接和視窗函式。Presto 架構簡單且可擴充套件。Presto 客戶端(CLI)將 SQL 語句提交給主守護程序協調器。
排程程式透過執行管道連線。排程程式將工作分配給最接近資料的節點並監控進度。協調器將任務分配給多個工作節點,最後工作節點將結果返回給客戶端。客戶端從輸出程序中提取資料。可擴充套件性是關鍵設計。可插拔聯結器(如 Hive、HBase、MySQL 等)為查詢提供元資料和資料。Presto 採用“簡單的儲存抽象”設計,使其能夠輕鬆地針對這些不同型別的資料來源提供 SQL 查詢功能。
執行模型
Presto 支援自定義查詢和執行引擎,以及旨在支援 SQL 語義的運算子。除了改進的排程之外,所有處理都在記憶體中進行,並在不同階段的網路之間進行流水線處理。這避免了不必要的 I/O 延遲開銷。