一篇文章了解 Presto

前言

本文隶属于专栏《大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见大数据技术体系

在这里插入图片描述

Presto 是什么?

Presto 是一个开源的分布式 SQL 查询引擎,用于 GB 到 PB 级别的各种大小的数据源进行交互式的分析查询。

Presto 从诞生开始就是为了交互式分析,提供了接近商业数据仓库的速度。

它既可支持非关系数据源,例如 Hadoop 分布式文件系统 (HDFS)、Amazon S3、Cassandra、MongoDB 和 HBase,又可支持关系数据源,例如 MySQL、PostgreSQL、Amazon Redshift、Microsoft SQL Server 和 Teradata。

社区拥有和推动的 Presto 项目由 Presto 基金会支持,Presto Foundation是一个独立的非营利组织,开放和中立的管理方式,托管在Linux Foundation下面。

Presto 可以做什么?

Presto 可在数据的存储位置查询数据,无需将数据移动到独立的分析系统。

查询执行可在纯粹基于内存的架构上平行运行,大多数结果在几秒内即可返回。

单个 Presto 查询可以合并来自多个来源的数据,从而在整个组织中进行分析。

Presto 面向的群体是预计响应时间从小秒到分钟的分析师。

Presto 打破了传统的格局,在这之前,要么使用昂贵的商业解决方案进行快速分析,要么使用需要过多硬件的缓慢但是免费的解决方案。

Presto 的发展历史

Presto 最初作为 Facebook 的项目启动,针对 300PB 的数据仓库运行交互式分析查询,使用大型基于 Hadoop/HDFS 的集群构建。

在构建 Presto 之前,Facebook 使用的是 2008 年创建并推出的 Apache Hive,为 Hadoop 生态系统带来熟悉的 SQL 语法。

Hive 在将复杂的 Java MapReduce 作业简化成类似 SQL 的查询方面对 Hadoop 生态系统有着重大影响,同时还能够执行大规模的任务。

但是,它未针对交互式查询所需的高速性能进行优化。

在 2012 年,Facebook 数据基础设施组构建了 Presto,这种交互式查询系统能够以 PB 级规模快速运行。

它于 2013 年春季在全公司范围内推广。

2013 年 11 月,Facebook 将 Presto 作为 Apache 软件许可证下的开源软件,任何人都可以从 Github 上下载。

今天,Presto 已成为在 Hadoop 上进行交互式查询的流行选择,获得了来自 Facebook 和其他组织的大量贡献。

Facebook 的 Presto 实施的使用者超过一千名员工,他们每天运行超过 30000 次查询,处理的数据达到 1PB。

Presto 工作原理

Presto 是在 Hadoop 上运行的分布式系统,使用与经典大规模并行处理 (MPP) 数据库管理系统相似的架构。

它有一个协调器节点,与多个工作线程节点同步工作。

用户将其 SQL 查询提交给协调器,由其使用自定义查询和执行引擎进行解析、计划并将分布式查询计划安排到工作线程节点之间。

它设计用于支持标准 ANSI SQL 语义,包括复杂查询、聚合、联接、左/右外联接、子查询、开窗函数、不重复计数和近似百分位数。

查询编译之后,Presto 将请求处理到工作线程节点之间的多个阶段中。

所有处理都在内存中进行,并以流水线方式经过网络中的不同阶段,从而避免不必要的 I/O 开销。

添加更多工作线程节点可提高并行能力,并加快处理速度。

为了使 Presto 可扩展到任何数据源,它的设计采用了存储抽象化,以便于轻松地构建可插入的连接器。

因此,Presto 拥有大量连接器,既可用于非关系数据源,例如 Hadoop 分布式文件系统 (HDFS)、Amazon S3、Cassandra、MongoDB 和 HBase,又可用于关系源,例如 MySQL、PostgreSQL、Amazon Redshift、Microsoft SQL Server 和 Teradata。

数据在其存储位置接受查询,无需将其移动到独立的分析系统中。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值