Presto 是一種開放原始碼的分散式 SQL 查詢引擎,已針對低延遲和資料臨機操作分析進行優化。它支援 ANSI SQL 標準,包含複雜查詢、彙總、加入 (join) 和視窗函數。Presto 可以處理來自多個資料來源的資料,而這些資料來源包含 Hadoop 分散式檔案系統 (HDFS) 和 Amazon S3。Presto 擁有兩個社群專案 – PrestoDB 和 PrestoSQL。Amazon EMR 支援這兩種專案。在這裡進一步了解 PrestoDB。
您可以從 AWS 管理主控台、AWS CLI 或 Amazon EMR API 輕鬆快速地建立受管 Presto 叢集。此外,您可以利用快速 Amazon S3 連線等其他 Amazon EMR 功能、與 Amazon EC2 Spot 執行個體整合、選擇記憶體優化執行個體等各式各樣的 Amazon EC2 執行個體,以及調整命令大小以輕鬆新增或移除叢集執行個體。
特色與優點
互動式查詢效能
Presto 使用自訂查詢執行引擎搭配專門支援 SQL 語意的運算子。與 Hive/MapReduce 不同的是,Presto 在記憶體中執行查詢,並透過各階段間的網路管道進行傳輸,因此可避免不需要的 I/O。管道執行模型可平行執行多個階段,並在資料可用時從一個階段串流到下個階段。
易用性
您只需幾分鐘就可以啟動執行 Presto 的 Amazon EMR 叢集。您不必擔心節點佈建、叢集設定、組態或叢集調校。Amazon EMR 會處理這些任務,您只需集中精力進行分析即可。您也可以使用各種工具,像是 Airbnb 發行的開放原始碼 Web 查詢執行工具 Airpal。Airpal 的使用者界面可簡化資料探索和臨機操作分析以及支援各種功能,例如語法反白顯示、將結果匯出成 CSV、儲存查詢供日後使用,及探索表格以視覺化結構描述。
與 Amazon EMR 功能集整合
執行可在 Amazon S3 直接存取資料的互動式查詢、使用 Amazon EC2 Spot 執行個體容量節省成本、使用 EMR Managed Scaling 動態新增和移除容量,以及啟動長時間執行或暫時性叢集以配合您的工作負載。您還可以在叢集新增其他 Hadoop 生態系統應用程式。
ANSI SQL 支援
Presto 支援 ANSI SQL 標準,可讓資料分析師和開發人員輕鬆查詢大規模的結構化和非結構化資料。Presto 目前可支援各式各樣的 SQL 功能,包括複雜查詢、彙總、加入和視窗函數。
客戶成功案例
Netflix 選擇 Presto 做為大數據的互動式 ANSI-SQL 合規查詢引擎。Presto 不但有絕佳的可擴展性而且是開放原始碼,並與 Hive Metastore 和 Amazon S3 整合 – 這是 Netflix 大數據倉儲環境的骨幹。Netflix 在持久性 Amazon EMR 叢集執行 Presto,以快速且彈性的方式查詢高達 25 PB 的 Amazon S3 資料存放區。Netflix 是 Presto 的積極參與者,而且 Amazon EMR 為 Netflix 提供在 Amazon EMR 叢集上執行自有 Presto 組建的彈性。一般而言,Netflix 可在自己的 Presto 叢集上每天執行高達 3,500 個查詢。
Jampp 是行動應用程式行銷平台,使用先進的廣告重新定位技術促使參與的使用者使用應用程式。Jampp 透過自己的轉換導向即時競價 (RTB) 引擎購買行動媒體庫存達成這個目標,該引擎可在 18 個 RTB 交易和超過 150 個行動廣告網路動態競標庫存。Jampp 將 Amazon EMR 上執行的 Presto 用於先進的臨機操作日誌分析,結合多個來源的資料以及複雜的重新定位客群計算。由於 Jampp 的使用者數量成長了 600%,因此複雜分析查詢的需求也隨著增加。Jampp 從在 MySQL 上執行複雜的多核心 Python 應用程式轉移到執行 Presto,效能因此提升了 12 倍。Jampp 目前使用 Amazon EMR 上的 Presto 每天處理 40 TB 的資料。
做為新創公司育成中心,Cogo Labs 操作其投資組合公司和內部團隊用來執行行銷分析和商業智慧的平台。為了支援高度創新的 OLAP 環境,他們在 SQL 上進行標準化以便與資料互動。Cogo Labs 選擇 Presto,因為它有絕佳的即時查詢效能、支援 ANSI-SQL,且可從 Amazon S3 直接處理資料。Amazon EMR 上執行的 Presto 可讓超過 100 名開發人員和分析師在存放超過 500 TB 資料的 Amazon S3 執行 SQL 查詢,以進行資料探索、臨機操作分析和報告。Cogo Labs 搭配使用短期和永久叢集,並依賴 Amazon EMR 與 Spot 執行個體的整合降低成本。
OpenSpan 提供自動化和智慧解決方案協助連結人們、處理程序和技術,以獲得員工生產力的洞見、簡化交易,以及增進員工和客戶之間的互動。OpenSpan 使用 Amazon S3 中的資料從 HBase 遷移到 Amazon EMR 上的 Presto。OpenSpan 選擇 Presto 是因為其 SQL 界面和從 Amazon S3 直接即時查詢資料的能力,這可讓他們快速探索大量的資料,以及快速迭代即將推出的資料產品。OpenSpan 使用 parquet 檔案格式,同時使用 PrestogreSQL 連接 Presto。OpenSpan 選擇使用 Amazon EMR 和 Amazon S3,以經濟實惠的方式處理每天來自客戶的數 GB 資料。
Kanmu 是日本金融服務業的新創公司,根據客戶信用卡的使用方式提供卡聯服務。Kanmu 從使用 Hive 遷移到 Amazon EMR 上的 Presto,因為 Presto 能夠以互動速度執行探索和迭代分析、與 Amazon S3 搭配可獲得良好的效能,而且具備查詢大型資料集的可擴展性。Kanmu 使用 Fluentd-plugin-s3 (用來儲存資料的最佳化列式儲存 (ORC) 格式) 將資料推送到 Amazon S3,並且使用 shib (採用 node.js 的 Web 用戶端) 來執行 SQL 查詢。
進一步了解 Amazon EMR 定價