- Presto實戰
- (美)馬特·富勒 曼弗雷德·莫澤 馬丁·特拉韋爾索
- 1362字
- 2021-04-10 00:09:03
譯者序
對大數據領域感興趣的讀者恐怕已經對它的歷史非常熟悉了:最初,由 Google 發表的關于 MapReduce、GFS 和 BigTable 等主題的論文衍生出了由 Hadoop、HDFS、HBase 等組件組成的 Hadoop 生態系統。之后,包括 Apache Hive、Apache Spark 和 Apache Flink 在內的各種工具如雨后春筍一般涌現出來。它們有的適合用來進行批數據處理,有的可以進行實時數據分析,有的支持分布式事務,滿足了大數據處理方方面面的需求。在這些系統中,有一類支持 SQL 數據查詢的數據處理系統非常重要:這類系統允許用戶使用標準 SQL 對其數據倉庫中的數據進行查詢,無論是技術人員還是數據分析師都可以方便地使用。
Presto 正是這一類系統中的佼佼者。
說到 Hadoop 生態系統中的 SQL 查詢處理引擎,就不得不先提到 Apache Hive ——一個可以將用戶輸入的 SQL 查詢翻譯成如 MapReduce、Spark 等計算模型的任務,并在集群中調度和執行的系統。長期以來,Apache Hive 都是在 Hadoop 集群上執行 SQL 查詢的標準組件。
本書所介紹的 Presto 和 Apache Hive 一樣,都是從 Facebook 內部孵化出來的。它早期的設計目標就是解決 Apache Hive 的一些主要問題,尤其是要提高查詢的執行性能。正因為如此,Presto 在很多方面兼容 Apache Hive,但又有所不同。在本書中,你可以詳細了解到二者設計上的異同和產生的效果。簡單來說,Presto 提供了一個查詢性能遠超 Apache Hive,適用于交互式查詢和快速數據處理的平臺。它還支持聯邦查詢,使得用戶可以將分散在系統各處的數據孤島整合起來,成為統一的數據查詢接入點,方便用戶管理各類數據。在很多企業和組織里,Presto 已經取代 Apache Hive 成為各個部門接入數據系統的統一接口,每天滿足成千上萬次的查詢需求。
本書的第一部分提供了對 Presto 的簡要介紹和使用說明,你可以從中了解到 Presto 的歷史發展、主要功能以及如何簡單地安裝和使用它。本書的第二部分是為進階用戶準備的,它介紹了 Presto 的內部構造、基本原理、部署配置、連接器和 SQL 語句的使用等。這部分內容全面而詳細地介紹了使用 Presto 的各種細節,是本書的精華所在。學習完這一部分的知識,你應該具備正確使用和調優 Presto 的大部分技能。這一部分也很適合作為速查手冊使用。本書的第三部分提供了在生產環境部署 Presto 必備的知識,幫助你配置安全特性、與其他工具集成和進行集群部署,還提供了一些真實世界中的部署案例。建議即將在生產環境中部署 Presto 的讀者將這一部分作為參考。
在閱讀完本書后,你不但可以編寫適合于 Presto 執行的 SQL 查詢,熟悉 Presto 運維方面的各種知識,而且還可以對 Presto 的內部構造有所了解。希望本書能為對 Presto 感興趣的讀者提供一份好的實戰指南,幫助各位讀者理解 Presto 的方方面面。
Presto 的繁榮發展離不開它的開源社區:在 Facebook 內部上線之后不久它就宣告開源。實際上,Presto 從開發伊始就將開源作為目標之一。現在,Presto 豐富的生態系統已經被構建出來,這個生態系統包括數不清的開源插件和庫、提供支持服務的組織和企業,以及云服務提供商等。目前,Presto 的開源版本主要有兩個分支,一個是由 Facebook 主導的 PrestoDB 項目,另一個是由 Presto 軟件基金會和部分 Presto 創始人維護的 PrestoSQL 項目。值得注意的是,后者已于 2020 年 12 月更名為 Trino 并繼續發展。本書的主要作者來自 PrestoSQL/Trino 項目,所討論的主要內容也基于 PrestoSQL/Trino 項目的實現。目前來看,這兩個項目還并未產生大的分化,本書中大部分的討論可以同時應用在這兩個項目上,但仍建議你在閱讀此書和開始使用 Presto 時仔細分辨項目和版本的差別。
最后,還要特別感謝在本書翻譯和出版過程中參與審校、排版和付出其他辛勤勞動的各位工作人員。是你們的努力使得本書可以以如此完整的面貌呈現給讀者。
張晨 黃鵬程 傅宇
2021 年 1 月
- 亮劍.NET:.NET深入體驗與實戰精要
- Hands-On Intelligent Agents with OpenAI Gym
- R Data Mining
- Cinema 4D R13 Cookbook
- 來吧!帶你玩轉Excel VBA
- 快學Flash動畫百例
- INSTANT Autodesk Revit 2013 Customization with .NET How-to
- Nginx高性能Web服務器詳解
- 新編計算機圖形學
- 液壓機智能故障診斷方法集成技術
- INSTANT Puppet 3 Starter
- 精通LabVIEW程序設計
- HBase Essentials
- 傳感器原理與工程應用
- Learn Microsoft Azure