presto技术文档
ccwgpt 2024-11-24 12:35 20 浏览 0 评论
是一个开源的分布式Sql查询引擎,数据量支持到GB到PB级别,主要用处理秒级查询的场景
注意:虽然Presto可以解析SQL,但它不是一个标准的数据库,不是mysql,Oracle的替代品,也不能用来处理自爱西安事务(OLTP)
Presto的架构
由一个Croodinator和多个Worker组成
?Presto Coordinator
–是主架构
–用来接受客户端的请求(解析sql)
–发送给Presto Worker
–可以对接多种多样的sql(hive,kafka,redis,关系型数据库)
–去hive访问元数据,再去hdfs获取源数据
?Catalog就是一个数据源
–Hive Connector
?连接器,不同的数据源,不同的连接器
–Schema
?hive的数据库的概念差不多
–Table
?和hive的table一致
流程:
?由客户端提交查询,从Presto命令行CLI提交到Coordinator
?coordinator解析查询计划,然后把任务分发给worker执行
?worker负责执行任务,和处理数据
?Catolog表示数据源,一个Catelog含Schema和Connector
?Connector是适配器,用于Presto和数据源(Hive,Redis等)的连接,类似于JDBC
?Schema类似于Mysql中数据库,Table类似于Mysql中表
?Coordiator是负责从Worker获取结果并返回最终结果给Client
Presto和MapReduce对比
?比MR快5到10倍
?内存足够大,中间计算结果不落磁盘,若内存不够大,中间结构还是落地磁盘的
impala领先于presto,但是presto再数据源支持上更丰富
Presto的优缺点
优点
?Presto基于内存运算,减少硬盘IO,计算更快
?连接多个数据源,跨数据源表查
缺点
?presto不是把PB级数据都放在内存中计算,根据场景,若AVG,Count,是边读数据边计算,再清理内存,再计算,这种耗的内存不高
?连表查,可能产生大量的临时表,速度变慢,反而不如Hive
Presto优化之数据存储
?合理设置分区
–Presto会根据元数据信息读取分区数据,合理的分区能减少Presto数据取量,提升查询性能
?列式存储
–Presto对ORC文件读取做了特定优化,建议使用ORC格式存储
?压缩
–数据压缩减少节点间数据传输对IO带宽压力,对即席查询需要快速解压
–建议Snappy压缩
Presto优化之查询Sql
?只选择使用的字段
–采用列式存储
–建议选择需要的字段加快字段的读取,减少数据量
–避免*读取
?过滤条件必须加上分区字段
–对于由分区的表,where语句中优先使用分区字段进行过滤
–acct_day是分区字段
–visit_time是具体访问时间
–[GOOD]: SELECT time, user, host FROM tbl where acct_day=20171101
[BAD]: SELECT * FROM tbl where visit_time=20171101
?group by语句优化
–合理安排group by语句中字段对性能有一定提升
–将group by语句中字段按照每个字段去重数据多少进行降序
?order by使用Limit
–Oreder by需要扫描数据到单个worker节点进行排序
–导致单个worker需要大量内存
–若在取TOPN,使用limit可以减少排序计算和内存压力
–[GOOD]: SELECT * FROM tbl ORDER BY time LIMIT 100
[BAD]: SELECT * FROM tbl ORDER BY time
?使用Join语句时将大表放在左边
–Presto中Join的默认算法时broadcast join
?即将join左边的表分割多个worker,然后将Join右边的表数据整个复制一份发送到每个worker进行计算
?若右边表数据量太大,会报内存溢出错误
?[GOOD] SELECT ... FROM large_table l join small_table s on l.id = s.id
[BAD] SELECT ... FROM small_table s join large_table l on l.id = s.id
注意事项
?字段名引用
–避免关键字冲突
–mysql对字段加反引号·
–Presto对字段加双引号分割
–若字段名称不是关键字,可以不加这个双引号
?时间函数
–对Timestamp,需要比较的时候,需要添加Timestamp关键字,而mysql中对Timestamp可以直接进行比较
–/*MySQL的写法*/
SELECT t FROM a WHERE t > '2017-01-01 00:00:00';
/*Presto中的写法*/
SELECT t FROM a WHERE t > timestamp '2017-01-01 00:00:00';
?不支持insert overwrite语法
–Presto 中不支持 insert over write 语法,只能先delete然后insert into
?parquet格式
–目前不支持parquert格式,支持查询,但不支持insert
注意:presto不识别&这个符号,我搞了我好久啊
相关推荐
- 团队管理“布阵术”:3招让你的团队战斗力爆表!
-
为何古代军队能够以一当十?为何现代企业有的团队高效似“特种部队”,有的却松散若“游击队”?**答案正隐匿于“布阵术”之中!**今时今日,让我们从古代兵法里萃取3个核心要义,助您塑造一支战斗力爆棚的...
- 知情人士回应字节大模型团队架构调整
-
【知情人士回应字节大模型团队架构调整】财联社2月21日电,针对原谷歌DeepMind副总裁吴永辉加入字节跳动后引发的团队调整问题,知情人士回应称:吴永辉博士主要负责AI基础研究探索工作,偏基础研究;A...
- 豆包大模型团队开源RLHF框架,训练吞吐量最高提升20倍
-
强化学习(RL)对大模型复杂推理能力提升有关键作用,但其复杂的计算流程对训练和部署也带来了巨大挑战。近日,字节跳动豆包大模型团队与香港大学联合提出HybridFlow。这是一个灵活高效的RL/RL...
- 创业团队如何设计股权架构及分配(创业团队如何设计股权架构及分配方案)
-
创业团队的股权架构设计,决定了公司在随后发展中呈现出的股权布局。如果最初的股权架构就存在先天不足,公司就很难顺利、稳定地成长起来。因此,创业之初,对股权设计应慎之又慎,避免留下巨大隐患和风险。两个人如...
- 消息称吴永辉入职后引发字节大模型团队架构大调整
-
2月21日,有消息称前谷歌大佬吴永辉加入字节跳动,并担任大模型团队Seed基础研究负责人后,引发了字节跳动大模型团队架构大调整。多名原本向朱文佳汇报的算法和技术负责人开始转向吴永辉汇报。简单来说,就是...
- 31页组织效能提升模型,经营管理团队搭建框架与权责定位
-
分享职场干货,提升能力!为职场精英打造个人知识体系,升职加薪!31页组织效能提升模型如何拿到分享的源文件:请您关注本头条号,然后私信本头条号“文米”2个字,按照操作流程,专人负责发送源文件给您。...
- 异形柱结构(异形柱结构技术规程)
-
下列关于混凝土异形柱结构设计的说法,其中何项正确?(A)混凝土异形柱框架结构可用于所有非抗震和抗震设防地区的一般居住建筑。(B)抗震设防烈度为6度时,对标准设防类(丙类)采用异形柱结构的建筑可不进行地...
- 职场干货:金字塔原理(金字塔原理实战篇)
-
金字塔原理的适用范围:金字塔原理适用于所有需要构建清晰逻辑框架的文章。第一篇:表达的逻辑。如何利用金字塔原理构建基本的金字塔结构受众(包括读者、听众、观众或学员)最容易理解的顺序:先了解主要的、抽象的...
- 底部剪力法(底部剪力法的基本原理)
-
某四层钢筋混凝土框架结构,计算简图如图1所示。抗震设防类别为丙类,抗震设防烈度为8度(0.2g),Ⅱ类场地,设计地震分组为第一组,第一自振周期T1=0.55s。一至四层的楼层侧向刚度依次为:K1=1...
- 结构等效重力荷载代表值(等效重力荷载系数)
-
某五层钢筋混凝土框架结构办公楼,房屋高度25.45m。抗震设防烈度8度,设防类别丙类,设计基本地震加速度0.2g,设计地震分组第二组,场地类别为Ⅱ类,混凝土强度等级C30。该结构平面和竖向均规则。假定...
- 体系结构已成昭告后世善莫大焉(体系构架是什么意思)
-
实践先行也理论已初步完成框架结构留余后人后世子孙俗话说前人栽树后人乘凉在夏商周大明大清民国共和前人栽树下吾之辈已完成结构体系又俗话说青出于蓝而胜于蓝各个时期任务不同吾辈探索框架结构体系经历有限肯定发展...
- 框架柱抗震构造要求(框架柱抗震设计)
-
某现浇钢筋混凝土框架-剪力墙结构高层办公楼,抗震设防烈度为8度(0.2g),场地类别为Ⅱ类,抗震等级:框架二级,剪力墙一级,混凝土强度等级:框架柱及剪力墙C50,框架梁及楼板C35,纵向钢筋及箍筋均采...
- 梁的刚度、挠度控制(钢梁挠度过大会引起什么原因)
-
某办公楼为现浇钢筋混凝土框架结构,r0=1.0,混凝土强度等级C35,纵向钢筋采用HRB400,箍筋采用HPB300。其二层(中间楼层)的局部平面图和次梁L-1的计算简图如图1~3(Z)所示,其中,K...
- 死要面子!有钱做大玻璃窗,却没有钱做“柱和梁”,不怕房塌吗?
-
活久见,有钱做2层落地大玻璃窗,却没有钱做“柱子和圈梁”,这样的农村自建房,安全吗?最近刷到个魔幻施工现场,如下图,这栋5开间的农村自建房,居然做了2个全景落地窗仔细观察,这2个落地窗还是飘窗,为了追...
- 不是承重墙,物业也不让拆?话说装修就一定要拆墙才行么
-
最近发现好多朋友装修时总想拆墙“爆改”空间,别以为只要避开承重墙就能随便砸!我家楼上邻居去年装修,拆了阳台矮墙想扩客厅,结果物业直接上门叫停。后来才知道,这种配重墙拆了会让阳台承重失衡,整栋楼都可能变...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- bootstrap框架 (43)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- express框架 (43)
- scrapy框架 (52)
- beego框架 (42)
- java框架spring (43)
- grpc框架 (55)
- 前端框架bootstrap (42)
- orm框架有哪些 (43)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)