Presto SQL,现在是 Trino,将大数据分析查询引擎的优势带入数据湖

已发表: 2021-05-27

大数据处理是这个数字时代的关键方面之一。 公司使用更多的人工智能、机器学习和数据分析来产生和收集更多数据。 因此,它会导致需要高效查询和分析的海量数据。

这就是云计算和 Presto 可以提供帮助的地方。

目录显示
什么是 Presto?
关键概念
服务器类型
Presto 如何处理查询?
使用 Presto 的优势
1. 易于集成
2. 更快的性能
3. 专为云端而设计
4.统一的SQL接口
您可以使用 Presto 做什么?
数据湖分析
即席查询
批量 ETL

什么是 Presto?

根据亚马逊 AWS 的定义:Presto 是一个分布式 SQL 查询引擎,旨在对任何规模的数据集执行快速分析查询。 它在 2020 年底更名为 Trino,以将该项目与 Prestodb 分开。

Presto 具有开源的优势,这意味着它会定期更新,并且开发人员经常为它做出贡献。

Presto 平台适用于非关系数据源,例如:

  • 亚马逊 S3
  • Hadoop
  • 高密度文件系统
  • MongoDB
  • HBase

关系数据库,如:

  • 我的空间
  • PostgresSQL 和
  • 微软 SQL 服务器

使用 Presto,您可以查询存储在任何位置的数据。 这意味着您不需要将数据传输到关系数据库或数据仓库中。 Presto 是为 SQL 创建的,支持标准 SQL 语义。 这包括子查询、复杂查询、外连接、不同计数和近似百分位数。

执行查询也更快,因为它与基于内存的架构并行运行。 因此,您不必再担心查询海量数据库需要多长时间。 结果会在几秒钟内返回。

了解如何在其文档中部署 Presto 及其架构。

另请阅读:如何在 Windows 10 上更新设备驱动程序? {简单指南}


关键概念

关键 SQL 概念广为人知。 要了解 Presto 的工作原理,我们首先需要了解它的核心概念。

服务器类型

Presto 使用两种服务器类型:协调服务器和工作服务器。 工作节点处理查询,从连接器获取数据。 协调器获取结果并将它们发送给客户端。 协调器服务器还解析语句和管理节点。

它的工作原理类似于大规模并行处理数据库管理系统。

Massive Parallel Processing database management systems 图片来源:tutorialspoint

Presto 使用连接器在分布式系统和源(例如 Amazon S3)之间建立链接。 Presto 的众多连接器,连接到关系和非关系源,使系统可以扩展到几乎任何数据源。

另请阅读:如何在 Windows 10、8、7 上更新驱动程序 – 更新设备驱动程序


Presto 如何处理查询?

当 presto 收到查询时,它通过将其分成多个阶段来执行它。 通常,系统会创建根阶段和相关阶段。 然后这些阶段被分配到工作节点上的任务中。


使用 Presto 的优势

Presto 在 Netflix、Facebook、Atlassian 和 Airbnb 等大型企业中变得非常流行。 例如,Facebook 每天使用 Presto 处理 1 PB 的数据,运行超过 3 万次查询。

Presto 包括两个独立的开源项目:PrestoSQL(现在称为 Trino)和 PrestoDB。 它在不同类型的数据湖和数据仓库中的广泛用例中非常受欢迎。 让我们来看看让 Presto 如此受欢迎的一些优势。

1. 易于集成

Presto 的主要优势之一是它无需修改即可与您现有的数据系统集成。 因此,通过添加 Presto,您无需调整现有系统即可添加快速分析功能。

2. 更快的性能

开发 Presto 的原因之一是现有的 Apache Hive 在交互式查询方面表现不佳。 Presto 旨在处理交互式 BI 查询。 此外,它遵循推送模型,同时使用多个阶段处理 SQL 查询,这意味着所有阶段都是流水线的,无需在阶段之间等待。

Presto 还具有内存到内存的数据传输,无需将数据写入磁盘,从而提高性能。

3. 专为云端而设计

Presto 将存储和计算分开运行,这使得它非常适合云环境。 使用 PrestoSQL 的公司可以根据负载轻松扩展或缩减,而不会导致数据丢失。 发生这种情况是因为 Presto 集群不存储任何数据。

4.统一的SQL接口

SQL 是最流行的数据分析语言。 数据科学家、分析师和工程师使用 SQL 处理、分析和测试数据,并将其与商业智能工具集成。

Presto 不仅能够从 SQL 源查询数据,还能够从 Elasticsearch 和 Cassandra 等 NoSQL 数据库中查询数据。 它支持 ANSI-SQL 和 Postgres 连接。 这为 Presto 提供了其他分布式系统所没有的多功能性。

该接口非常适合中型数据,因为它具有与 PostgreSQL 相同的 Window 函数。

另请阅读:如何在 Windows 10 中更新图形驱动程序 {简单指南}


您可以使用 Presto 做什么?

Presto 用于各行各业的各种用例。 它特别适用于即席和交互式查询。 让我们探索一些常见的用例:

数据湖分析

您可以使用 PrestoSQL 查询数据湖上的数据,而无需转换数据。 Presto 允许您查询数据所在的位置。 因此,您可以使用它通过查询结构化和非结构化数据来增强您的数据湖分析能力。

即席查询

Presto 允许您随时运行查询,无论您的数据位于何处。 更好的是,使用 Presto 连接器,您的团队可以访问各种数据源中的数据集,并且由于查询在几秒钟而不是几小时内运行,因此您的系统执行得更快。

批量 ETL

您可以使用 Presto 运行对资源有效的查询,而不是使用传统的批处理系统。 您可以聚合来自多个数据源的数据并进行高吞吐量查询。

总而言之,Presto 对需要处理大量数据、执行临时交互式查询以及从不同数据源运行分析的公司而言具有多项优势。