大数据面试:面试官要求我了解过Presto——Presto到底是个什么东西

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 大数据面试:面试官要求我了解过Presto——Presto到底是个什么东西

前言

大家好,我是程序员manor,我希望自己能成为国家复兴道路的铺路人,大数据领域的耕耘者,平凡但不甘于平庸的人。

事情是这样的

我在实习僧App上发现一家公司非常匹配我的需求~

城市匹配

技能匹配

福利匹配

还是一家游戏公司

典型的钱多离家近,事估计少不了了

三配下来我不得不认真研究该公司的职位要求

一番自我检查发现,竟然有一项大数据组件听都没听过:presto

这到底是个啥?

有什么用?

适合在哪些业务场景?

如此灵魂三问后,好学如本码农自当好好研究一番。

Presto是什么

1. Presto简介

  1. 1 Presto概念
    Presto 是由 Facebook 开源的大数据分布式 SQL 查询引擎,适用于交互式分析查询,可支持众多的数据源,包括 HDFS,RDBMS,KAFKA 等,而且提供了非常友好的接口开发数据源连接器。数据规模可以支持GB到PB级,主要应用于处理秒级查询的场景。Presto 的设计和编写完全是为了解决像 Facebook 这样规模的商业数据仓库的交互式分析和处理速度的问题。

注意: 虽然 Presto 可以解析 SQL,但它不是一个标准的数据库。不是 MySQL、Oracle的代替品,也不能用来处理在线事务(OLTP)。

1.2 Presto 应用场景

Presto 支持在线数据查询,包括 Hive,关系数据库(MySQL、Oracle)以及专有数据存储。一条 Presto 查询可以将多个数据源的数据进行合并,可以跨越整个组织进行分析。

Presto 主要用来处理 响应时间小于 1 秒到几分钟的场景 。

1.3 Presto架构

在谈presto架构之前,先回顾下hive的架构

hive:client将查询请求发送到hive server,它会和metastor交互,获取表的元信息,如表的位置结构等,之后hive server会进行语法解析,解析成语法树,变成查询计划,进行优化后,将查询计划交给执行引擎,默认是MR,然后翻译成MR

presto:presto是在它内部做hive类似的逻辑

接下来,深入看下presto的内部架构

这里面三个服务:

Coordinator,是一个中心的查询角色,它主要的一个作用是接受查询请求,将他们转换成各种各样的任务,将任务拆解后分发到多个worker去执行各种任务的节点

1、解析SQL语句

2、⽣成执⾏计划

3、分发执⾏任务给Worker节点执⾏

Worker,是一个真正的计算的节点,执行任务的节点,它接收到task后,就会到对应的数据源里面,去把数据提取出来,提取方式是通过各种各样的Connector

负责实际执⾏查询任务

Discovery service,是将coordinator和woker结合到一起的服务:

1、Worker节点启动后向Discovery Server服务注册

2、Coordinator从Discovery Server获得Worker节点

coordinator和woker之间的关系是怎么维护的呢?是通过Discovery Server,所有的worker都把自己注册到Discovery Server上,Discovery Server是一个发现服务的service,Discovery Server发现服务之后,coordinator便知道在我的集群中有多少个worker能够给我工作,然后我分配工作到worker时便有了根据

最后,presto是通过connector plugin获取数据和元信息的,它不是⼀个数据存储引擎,不需要有数据,presto为其他数据存储系统提供了SQL能⼒,客户端协议是HTTP+JSON

1.3 Presto与大数据OLAP引擎对比

  • Presto:内存计算,mpp架构
  • Druid:时序,数据放内存,索引,预计算
  • Spark SQL:基于Spark Core,mpp架构
  • Kylin:Cube预计算
    (mpp架构即大规模并行处理结构)

Presto由于是基于内存的,而Hive是在磁盘上读写的,因此Presto比Hive快很多,但是由于是基于内存的计算当多张大表关联操作时易引起内存溢出错误。

1.4 Presto特点

(1)完全基于内存的并行计算

(2)流水线

(3)本地化计算

(4)动态编译执行计划

(5)小心使用内存和数据结构

(6)类BlinkDB的近似查询

(7)GC控制

(8)扩展性

扩展性是在设计Presto时的另一个要点。

Presto不仅可以访问HDFS,也可以操作不同的数据源,包括:RDBMS和其他的数据源(例如:Cassandra)。目前已经 被支持的RDBMS有:MySQL、SQLServer、PostgreSQL等。

1.5 官网变化

就在 2020 年 12 月 27 日,prestosql 与 facebook 正式分裂,并改名为trino。分裂之前和之后的官网分别是:https://prestosql.io/https://trino.io

参考文章:

https://blog.csdn.net/weixin_44318830/article/details/114339496

这篇文章全面的介绍了Presto从介绍到跑起第一行代码,从Presto的简介,安装部署,命令行 Client 的安装,基本使用,可视化客户端的安装与基本使用,以及使用任何一个组件我们都很注重的优化都讲的非常清楚了,珠玉在前,我也就不重复造轮子了。

需要做一点补充的是,我在油管爬了官方的Presto的介绍视频

并上传了双语机翻字幕

感兴趣的,可以到B站看一看~

Presto简要介绍及Presto上运行SQL

小结

本篇内容为大家介绍的是关于Presto到底是个什么东西,希望大家看完之后能够有所收获!你知道的越多,你不知道的也越多,我是manor,我们下一期见!


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
5月前
|
SQL 大数据
常见大数据面试SQL-每年总成绩都有所提升的学生
一张学生成绩表(student_scores),有year-学年,subject-课程,student-学生,score-分数这四个字段,请完成如下问题: 问题1:每年每门学科排名第一的学生 问题2:每年总成绩都有所提升的学生
|
5月前
|
存储 Java 编译器
【搞定Jvm面试】 面试官:谈谈 JVM 类文件结构的认识
【搞定Jvm面试】 面试官:谈谈 JVM 类文件结构的认识
|
5月前
|
缓存 Java 数据库
Java面试50问,女面试官最喜欢问的居然是它!
Java面试50问,女面试官最喜欢问的居然是它!
|
5月前
|
Java 测试技术 持续交付
Java面试50问,女面试官最喜欢问的居然是它!
Java面试50问,女面试官最喜欢问的居然是它!
|
5月前
|
Java 测试技术 开发者
Java面试50问,女面试官最喜欢问的居然是它!
Java面试50问,女面试官最喜欢问的居然是它!
|
5月前
|
XML JSON JavaScript
Java面试50问,女面试官最喜欢问的居然是它!
Java面试50问,女面试官最喜欢问的居然是它!
|
5月前
|
Java 数据库连接 数据库
Java面试50问,女面试官最喜欢问的居然是它!
Java面试50问,女面试官最喜欢问的居然是它!
|
5月前
|
Java 数据库连接 数据库
Java面试50问,女面试官最喜欢问的居然是它!
Java面试50问,女面试官最喜欢问的居然是它!
|
5月前
|
设计模式 前端开发 Java
Java面试50问,女面试官最喜欢问的居然是它!
Java面试50问,女面试官最喜欢问的居然是它!
|
5月前
|
Java 数据库连接 数据库
Java面试50问,女面试官最喜欢问的居然是它!
Java面试50问,女面试官最喜欢问的居然是它!