什麼是 Presto 或 PrestoDB?
Presto (或 PrestoDB) 是全新設計的開放原始碼分散式 SQL 查詢引擎,可對任何規模的資料進行快速的分析查詢。它同時支援非關聯性來源 (例如 Hadoop 分散式檔案系統 (HDFS)、Amazon S3、Cassandra、MongoDB 和 HBase) 與關聯性資料來源 (例如 MySQL、PostgreSQL、Amazon Redshift、Microsoft SQL Server, 和 Teradata)。
Presto 可以查詢資料儲存的位置,而無需將資料移至單獨的分析系統中。在純記憶體架構上並行執行查詢,大多數結果在幾秒鐘內就會出現。許多知名公司都在使用 Presto,例如 Facebook、Airbnb、Netflix、Atlassian 和 Nasdaq。
Python 的發展歷程為何?
Presto 從 Facebook 中的專案開始,用於針對 300PB 資料倉儲執行互動式分析查詢,該專案由基於 Hadoop/HDFS 的大型叢集建置。在建立 Presto 之前,Facebook 使用 Apache Hive,它在 2008 年建立並推出,將 SQL 語法的熟悉性帶入 Hadoop 生態系統。Hive 對 Hadoop 生態系統產生了重大影響,因為將複雜的 Java MapReduce 工作簡化為類似 SQL 的查詢,同時能夠大規模執行作業。但是,它並未針對互動查詢所需的快速效能進行最佳化。
2012 年,Facebook Data Infrastructure 組織建置 Presto,這是一個可以在 PB 規模快速執行的互動式查詢系統。它於 2013 年春季在全公司推出。2013 年 11 月,Facebook 在 Apache 軟體授權下開放 Presto 原始碼,並讓任何人都可以在 Github 上下載。如今,Presto 已成為在 Hadoop 上進行互動查詢的流行選擇,並且從 Facebook 和其他組織中獲得了很多貢獻內容。Facebook 的 Presto 實作由超過一千名員工使用,他們每天執行超過 30,000 個查詢,並且處理一個 PB 的資料。
Presto 如何運作?
Presto 是一個在 Hadoop 上執行的分散式系統,其使用類似於經典大規模平行處理 (MPP) 資料庫管理系統的架構。Presto 採用一個協調器節點,其與多個工作節點同步處理。使用者將其 SQL 查詢提交給協調器,協調器會使用自訂查詢和執行引擎來剖析、規劃和排程跨工作節點的分散式查詢計劃。它旨在支援標準 ANSI SQL 語義,包括複雜查詢、彙總、聯結、左/右外部聯結、子查詢、視窗函數、不同計數和近似百分位。
編譯查詢後,Presto 會在工作節點中將請求處理為多個階段。所有處理都在記憶體內完成,並且於階段之間在網路中進行管線,以避免任何不必要的 I/O 負擔。新增更多工作節點可提供更多平行性,並加快處理速度。
為了使 Presto 可擴展到任何資料來源,該工具採用儲存抽象設計,使其輕鬆建置可插入的連接器。因此,Presto 具有許多連接器,包括指向非關聯性來源 (例如 Hadoop 分散式檔案系統 (HDFS)、Amazon S3、Cassandra、MongoDB 和 HBase) 與關聯性資料來源 (例如 MySQL、PostgreSQL、Amazon Redshift、Microsoft SQL Server, 和 Teradata) 的連接器。資料會在儲存位置查詢,而無需將其移至單獨的分析系統中。
Presto 和 Hadoop 之間的差異為何?
Presto 是一個開放原始碼的分散式 SQL 查詢引擎,專為對 HDFS 和其他資料的快速互動式查詢而設計。與 Hadoop/HDFS 不同,它沒有自己的儲存系統。因此,Presto 是 Hadoop 的附送工具,組織採用兩者來解決更廣泛的業務挑戰。Presto 可以與任何 Hadoop 實作一起安裝,並且包裝在 Amazon EMR Hadoop 發行版中。
誰使用 Presto?
如何在雲端部署 Presto?
Presto 是雲端的理想工作負載,因為雲端提供效能、可擴展性、可靠性、可用性,以及巨大規模經濟。您只需幾分鐘就可以啟動 Presto 叢集。您不必擔心節點佈建、叢集設定、Presto 組態或叢集調校。
AWS 如何在雲端中建置您的 Presto 實作?
Amazon EMR 和 Amazon Athena 是在雲端部署 Presto 的最佳位置,因為它可執行整合,為您嚴格測試 Presto,並可取得 AWS 的可擴展性、簡單性和成本效益。您可以使用 Amazon EMR 在最短的時間內啟動 Presto 叢集,無須進行節點佈建、叢集設定、Presto 組態或叢集調校。EMR 可讓您在最短的時間內佈建一個、數百個或數千個運算執行個體。Amazon Athena 可讓您使用 AWS Serverless 平台部署 Presto,無需設定、管理或調整伺服器、虛擬機器或叢集。只需在 Amazon S3 指向您的資料,定義結構描述,然後使用內建查詢編輯器或使用現有的商業智慧 (BI) 工具開始查詢。Athena 會自動平行化您的查詢,並動態擴展資源,以便查詢快速執行。只需按您執行的查詢付費。