什么是 Presto?

什么是 Presto?

Presto 即 Presto 数据库 (PrestoDB)。它是一种开源的分布式 SQL 查询引擎,可以查询来自不同数据源的大数据集,以便企业能够大规模地解决数据问题。

它为各种规模的组织提供一种快速、有效的方法来分析来自各种来源(包括本地部署系统和云)的大数据。Presto 还可以帮助企业使用当前的 SQL 功能查询 PB 级数据,而无需学习新语言。

如今,Presto 最常用于在 Hadoop 等常见数据存储平台上运行查询,支持用户管理多种查询语言以及数据库和存储的接口。

在数字时代,大数据分析正迅速成为各规模各行业企业的核心能力。收集、存储和分析与业务流程、客户偏好和市场趋势相关的海量数据的能力是非常有价值的。Presto 对数据分析的最大重要性在于不受数据存储位置的制约,无需先将数据移至更结构化的系统(例如数据仓库数据湖)。

小球在轨道上滚动的三维设计

最新的 AI 新闻 + 洞察分析

在每周的 Think 时事通讯中,发现专家精选的有关 AI、云等的洞察分析和新闻。 

Presto 的优点

Presto 已成为数据科学家和工程师处理多种查询语言、孤岛式数据库和不同类型存储的常用工具。它的高性能功能使用户能够使用简单的 ANSI SQL 界面实时查询大量数据,无论数据位于何处。Presto 在执行海量数据查询方面的速度和性能使其成为众多全球规模最大的公司不可或缺的工具,包括 Facebook、Airbnb、Netflix、Microsoft、Apple (iOS) 和 AWS(Athena 和 Amazon s3)。

Presto 架构的独特之处在于,无论数据存储在何处,Presto 都可以查询数据,比其他类似解决方案更具可扩展性和效率。Presto 查询支持工程师使用数据,而无需将数据从一个位置以物理方式移动到另一个位置。当组织处理需要存储和分析的数据量不断增加时,这是一项重要功能。

Presto 旨在使数据科学家和工程师能够交互式查询大量数据,且无需考虑存储来源或类型。由于 Presto 不存储数据,而是与单独的数据库进行查询通信,因此它比竞争对手更灵活,并且可以根据组织不断变化的需求快速扩展或缩减查询。根据 IBM 白皮书,Presto 已针对商业智能 (BI) 工作负载进行优化,它可以帮助企业优化数据仓库的定价,并将成本降低高达 50%。

以下是使用 Presto 工作流程的一些主要优点:

更低的成本:随着数据仓库规模的扩大和查询用户数量的增加,企业成本迅速增加的情况并不少见。然而,Presto 针对大量小型查询进行了优化,可以轻松查询任意数量的数据,同时降低成本。此外,由于 Presto 是开源的,因此部署它不需要任何费用,这可以为希望处理大量数据的企业节省大量成本。

提高可扩展性:工程师通常在单个数据湖存储系统上设置多个引擎和语言,因此将来有必要重新构建平台并限制解决方案的可扩展性。借助 Presto,所有查询均使用通用 ANSI SQL 语言和界面进行,因此无需重新构建平台。此外,Presto 可用于处理少量数据和大量数据,并可轻松从一两个用户扩展到数千个用户。Presto 使用独特的 SQL 方言和 API 部署多个计算引擎,因此成为扩展工作负载的理想工具,这些工作负载可能过于复杂且耗时,超出工程师和数据科学家团队的处理能力。

更好的性能:许多在 Hadoop 上运行 SQL 的查询引擎其计算性能都会受到限制,因为它们被构建为将结果写入磁盘,但 Presto 的分布式内存模型使其能够针对大型数据集同时运行大量交互式查询。按照经典的大规模并行处理 (MPP) 设计,Presto 会在单个工作节点上调度尽可能多的查询,并使用内存中流式洗牌来进一步提高其处理速度。在内存中执行任务使得各阶段之间的磁盘写入和读取变得多余,缩短了每次查询的执行时间,使 Presto 成为比竞争对手延迟更低的选择。

更好的灵活性:Presto 对其所有数据源(包括 Cassandra、Kafka、MySQL、Hadoop 分布式文件系统 (HDFS)、PostgreSQL 等)都采用了即插即用模式,与缺乏这种功能的其他同类工具相比,跨数据源查询更快、更简单。此外,Presto 灵活的架构意味着它并不局限于一家供应商,而是可以在大多数 Hadoop 发行版上运行,这使 Presto 成为可移植性最强的工具之一。

虽然 Presto 并不是开发人员和数据工程师唯一的 SQL-on-Hadoop 选项,但其独特的架构将查询功能与数据存储分开,使 Presto 成为最灵活的选项之一。与其他工具不同,Presto 将查询引擎与数据存储分开,并使用连接器在它们之间进行通信。与其他工具相比,这一附加功能为工程师在如何使用 Presto 构建解决方案方面提供了更大的灵活性。

Mixture of Experts | 4 月 25 日,第 52 集

解码 AI:每周新闻摘要

加入我们由工程师、研究人员、产品负责人等组成的世界级专家团队,他们将突破 AI 的喧嚣,为您呈现最新的 AI 新闻和洞察分析。

Presto 的工作原理是什么?

Presto 使用 MPP 数据库管理系统,其中一个协调器节点与其他节点协同工作。Presto 生态系统由三种服务器类型组成:协调器服务器、工作服务器和资源管理器服务器。

协调器:协调器被视为 Presto 的“大脑”。它负责一些最关键的任务,包括解析语句、规划查询和管理 Presto 工作器节点;最终负责从工作器节点检索数据并将结果传递给客户端。

工作程序:工作程序负责从工作程序节点收集数据,并保证自身与连接器之间顺利交换数据。

资源管理器:资源管理器从所有协调器和工作程序节点收集数据并创建全局视图(或称为“Presto 集群”)。

Presto 协调器 SQL 服务器收到用户的 SQL 查询后,协调器首先使用自定义查询来解析、规划和调度覆盖其他节点的分布式计划。Presto REST API 提交查询语句供服务器执行,并为客户端检索结果。Presto 支持标准 ANSI SQL 语义,包括连接、查询、子查询和聚合。Presto 编译完查询后,会将请求解析到工作节点之间的不同阶段。

由于 Presto 基于数据抽象概念而构建,因此它可以扩展到任何数据源,并且可以轻松查询数据湖、数据仓库和关系数据库等数据源。数据抽象是一种编程过程,通过将数据的表示与其物理存储分开,可以更有效地存储和操作数据。这种抽象允许查询引擎专门关注与查询相关的数据方面。使用数据抽象过程,无论数据存储在何处,都可以进行查询,而不是在将数据迁移到另一个分析系统后进行查询。

Presto 简史

Presto 最初是在 Facebook 开发的,用于在大型 Apache Hadoop 数据仓库上运行交互式查询,Presto 的开发人员始终将其设想为开源软件,并寻求将 Presto 免费用于商业用途,以便任何人都可以使用它进行数据分析和数据管理。2013 年,Presto 在 GitHub 上被设置为开源软件,拥有 Apache Software 许可证的任何人都可以下载。2019 年,Presto 开发团队的三名原始成员离开了该项目,并创立了 Presto 的一个“分支”,称为 Presto Software Foundation(或更多称为 prestosql)。

Linux 基金会和其他开源社区为希望获得认证的工程师和开发人员提供英语等语言的 Presto 网络研讨会和培训。这些论坛也是了解 Presto 最新资讯的不错平台。

Presto 用例

Presto 使组织能够快速高效地查询大型数据存储库和 NoSQL 数据库,以实现各种业务目的。以下是一些最常见的用例:

临时查询

Presto 能够为各种业务目的提供快速的数据探索和简单的报告。使用热门的 Presto 连接器,例如 Hive、MongoDB 或 Cassandra,用户可以查询他们感兴趣的数据并在数秒内获得结果。凭借其速度和灵活性,无论数据集位于何处,Presto 支持用户迭代并进一步探索。

以下是 Presto 可以连接的一些使用最广泛的数据存储库:

  • BigQuery
  • HDFS
  • 云存储
  • Cloud SQL for MySQL
  • Apache Cassandra 或 Kafka
云和混合云部署

根据 RedHat 2021 年的性能评估,企业越来越多地使用混合云环境,这给云原生存储带来了越来越大的压力,而“当今最快的分布式查询引擎”Presto 正是这种压力下的理想选择。1将工作负载从本地部署环境转移到云或混合云基础设施有很多好处,包括提高性能和可扩展性。Presto 的体系架构使其成为此类部署的有力选择,因为它可以在几分钟内启动,无需额外的预配、配置或调整。

机器学习 (ML)

Presto 帮助工程师以高效的方式准备数据并执行特征工程和提取,确保其为机器学习 (ML) 做好准备。它拥有大量的连接器、SQL 引擎和查询功能,是工程师快速、轻松访问大量数据的理想选择。此外,Presto 还有专门为聚合等 ML 功能设计的工具,允许数据科学家训练支持向量机 (SVM) 分类器和回归器,以解决监督学习问题。

报告

Presto 允许从多个源查询数据,生成用于 BI 目的的单个、易于访问的报告或仪表板。Presto 简单易用,分析师无需工程师的帮助即可进行查询并创建报告。

分析

Presto 使分析师能够直接在数据湖上对结构化和非结构化数据进行查询,而无需执行数据转换过程。

数据准备

收集和准备数据的过程可能成本高昂且效率低下。数据科学家每天需要花费数小时来收集和准备数据,然后才能进行分析。Presto 能够快速准确地自动执行此过程,因此数据科学家和工程师可以将更多时间集中在更有价值的任务上。

相关解决方案
数据库软件和解决方案

使用 IBM 数据库解决方案满足混合云中的各种工作负载需求。

深入了解数据库解决方案
采用 IBM Db2 的云原生数据库

深入了解 IBM Db2,这是一种关系数据库,为存储和管理结构化数据提供高性能、可扩展性和可靠性。该数据库在 IBM Cloud 上作为 SaaS 提供,也可以用于自托管。

探索 Db2
数据和分析咨询服务

通过 IBM Consulting 发掘企业数据的价值,建立以洞察分析为导向的组织,实现业务优势。

了解分析服务
采取后续步骤

使用 IBM 数据库解决方案满足混合云中的各种工作负载需求。

深入了解数据库解决方案 深入了解 IBM Db2
脚注

1 数据库和分析的外部模式性能表征,Red Hat,2021 年 1 月 18 日