作者: | Angelica Lo Duca, Tim Meehan, Vivek Bharathan, and Ying Su |
语言: | 英文 |
出版年份: | 2023 |
下载链接: |
书籍均收集自互联网,仅供学习和研究使用,请莫用于商业用途。谢谢合作。 |
随着数据量的爆炸性增长,传统数据仓库在处理大规模数据时面临诸多挑战。Facebook 于 2012 年开发了 Presto,旨在解决 Apache Hive 在处理海量数据时的低效问题。Presto 作为一种分布式 SQL 查询引擎,能够快速处理大规模数据集,支持多种数据格式和数据源。本书《Learning and Operating Presto》由 Angelica Lo Duca、Tim Meehan、Vivek Bharathan 和 Ying Su 共同撰写,由 O’Reilly Media 出版,旨在帮助读者快速掌握 Presto 的基本原理和操作方法,以便在数据湖和数据仓库场景中高效部署和使用 Presto。
介绍了数据湖和数据仓库的区别,Presto 的起源、设计考虑以及其在数据湖中的角色。通过一个电商场景的案例,展示了 Presto 的主要用例,如即席查询、报告和仪表板、ETL 等。
详细介绍了 Presto 的安装和配置方法,包括手动安装、使用 Docker 和 Kubernetes 部署 Presto 集群。通过实际操作,读者可以快速搭建一个本地 Presto 环境,并运行简单的查询。
深入探讨了 Presto 的连接器机制,包括如何实现自定义连接器、使用 Thrift 连接器以及如何将 Apache Pinot 等外部数据源与 Presto 集成。连接器是 Presto 的核心组件之一,它使得 Presto 能够访问和查询各种外部数据源。
介绍了如何使用不同编程语言(如 Python、R、Java 等)编写 Presto 客户端,以及如何通过 REST API、JDBC、ODBC 等方式连接到 Presto 集群。此外,还提供了一个基于 Python 的简单 Web 仪表板示例,展示了如何将 Presto 查询结果可视化。
探讨了数据湖屋的概念及其架构,包括数据湖存储、查询引擎、元数据管理和数据治理。通过一个完整的数据湖屋实现案例,展示了如何将 Presto 与 MinIO、HMS、Spark 和 Hudi 等组件集成,构建一个高效的数据湖屋解决方案。
介绍了 Presto 集群的管理任务,包括配置、监控和资源管理。详细讨论了如何通过配置文件、会话属性和 JVM 参数来优化 Presto 的性能,以及如何使用 Presto 控制台、REST API 和 JMX 指标来监控集群状态。
探讨了 Presto 集群的安全性,包括如何建立安全通信、认证用户身份以及授权访问。介绍了文件认证、LDAP 认证、Kerberos 认证等多种认证方式,以及如何通过系统访问控制和 Apache Ranger 来管理授权。
介绍了 Presto 性能调优的基本概念、生命周期和方法。详细讨论了 Presto 查询执行模型,以及如何通过资源分配、存储优化和查询优化来提高查询性能。此外,还介绍了 Aria Scan 项目,它通过改进表扫描和重新分区来提升 Presto 的性能。
讨论了如何在大规模环境中运行 Presto,包括扩展 Presto 集群的策略和方法。介绍了多协调器架构、Presto on Spark 以及溢出机制等技术,这些技术有助于 Presto 处理大规模数据集和高并发查询。
《Learning and Operating Presto》是一本全面且实用的 Presto 操作指南。它不仅涵盖了 Presto 的基本原理和架构,还提供了丰富的实践案例和配置技巧,帮助读者在实际工作中高效地部署和管理 Presto 集群。无论是数据工程师、架构师还是数据科学家,都能从本书中获得宝贵的指导和启发,从而更好地利用 Presto 解决大规模数据处理和分析中的挑战。