首页
学习
活动
专区
工具
TVP
发布

Presto

修改于 2023-07-24 16:52:26
1608
概述

Presto是一个分布式的SQL查询引擎,由Facebook在2012年开发并开源,它可以查询来自多个数据源的大数据集合,并且可以获得像使用单一关系型数据库一样的性能表现。

什么是Presto?

Presto是一个分布式的SQL查询引擎,由Facebook在2012年开发并开源,它可以查询来自多个数据源的大数据集合,并且可以获得像使用单一关系型数据库一样的性能表现。

Presto处理大数据非常快,因为它使用了一个分布式架构,这意味着查询可以分布在多个节点上平行运行,从而提高了查询速度。Presto支持标准SQL查询,同时支持 ANSI SQL 标准和大多数现代SQL查询语言,使它非常适合用户进行数据分析

Presto可以处理各种数据源,包括Hadoop分布式文件系统HDFS),Apache Cassandra,Apache HBase等。同时它还提供了许多工具和插件,使得用户可以在流行的分布式数据处理框架(例如 Hadoop 和 Apache Spark)上轻松地安装和运行 Presto。

Presto 工作原理是什么?

Presto 架构

Presto 采用了基于内存的分布式查询架构,它由一组协同工作的进程构成,包括遍历器(Coordinator)和工作者(Worker)。协调器节点负责将客户端查询转换成任务,分配给工作者节点执行,然后将结果组合成最终结果。工作者节点负责执行任务并将结果返回协调器节点。

数据存储

Presto 不存储数据,它直接查询存储在各种数据源中的数据。Presto 支持多种数据源,包括 Hadoop 分布式文件系统、关系型数据库、NoSQL 数据库、云存储数据仓库等。

数据查询过程

当客户端发送查询请求时,协调器节点会解析查询,生成查询计划,并将计划分配给工作者节点。工作者节点并行执行查询,并将结果返回给协调器节点。协调器节点将所有工作者节点返回的结果组合到一起,并将最终结果返回给客户端。

查询优化

Presto 的关键特性是查询的优化。在查询之前,Presto 会进行优化以生成最优的执行计划。Presto 使用成本估算器和统计信息收集器收集查询统计信息,并使用该信息来生成最佳查询计划。使用 Presto 构建高性能查询的关键是在查询之前对统计信息进行准确收集和数据分区

Presto有什么特点?

多数据源

Presto可以支持MySQLPostgreSQL、cassandra、HiveKafka等多种数据源查询。

支持SQL

Presto支持部分标准SQL对数据进行查询,并提供SQL shell进行SQL查询。但是Presto不支持存储过程,不适合大表Join操作,因为Presto是基于内存的,多张大表关联可能给内存带来压力。

扩展性

Presto有很好的扩展向,可以自定义开发特定数据源的Connector,使用SQL分析指定Connector中的数据。

混合计算

在Presto中可以根据业务需要使用特定类型的Connector来读取不同数据源的数据,进行join关联计算。

基于内存计算,高性能

Presto是基于内存计算的,减少磁盘IO,计算更快。Presto性能是Hive的10倍以上。Presto能够处理PB级别的数据,但Presto并不是把PB级别的数据一次性加载到内存中计算,而是根据处理方式,例如:聚合场景,边读取数据,聚合,再清空内存,再去读取数据加载内存,再聚合计算,再清空内存... 这种方式。如果使用Join查询,那么就会产生大量的中间数据,速度会变慢。

流水线

由于Presto是基于PipeLine进行设计的,因此在进行海量数据处理过程中,终端用户不用等到所有的数据都处理完成才能看到结果,而是可以向自来水管一样,一旦计算开始,就可以产生一部分结果数据,并且结果数据会一部分接一部分的返回到客户端。

Presto 应用场景有哪些?

数据仓库运营商的数据湖

Presto 可以轻松地查询存储在数据湖中的数据,包括 Hadoop 分布式文件系统、Apache Cassandra、Apache HBase 等数据源。

数据湖上的数据科学家

Presto 可以随时查询和分析数据,并支持复杂的查询操作,适合数据科学家进行分析和探索性数据分析。

企业级应用数据查询

Presto 可以轻松地处理高吞吐量和低延迟数据查询,这使得它非常适合企业应用程序。

多租户数据查询

Presto 的多租户性质可以在一个集群中处理多个用户和应用程序的查询,从而提高查询效率和性能,并减少硬件成本。

云原生计算和存储环境

Presto 为各种云计算环境提供了大数据分析服务,可以快速查询和处理大量数据。

相关文章
  • Presto系列 | Presto基本介绍
    4.3K
  • 大数据Presto(一):Presto介绍
    2.1K
  • Presto实战
    2K
  • 大数据Presto(五):Presto优化与Impala对比
    1.7K
  • Presto统计信息
    2.6K
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券