前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据Presto(五):Presto优化与Impala对比

大数据Presto(五):Presto优化与Impala对比

原创
作者头像
Lansonli
发布2022-11-26 04:56:53
1.5K1
发布2022-11-26 04:56:53
举报
文章被收录于专栏:Lansonli技术博客Lansonli技术博客

Presto优化与Impala对比

一、Presto优化

1、​​​​​​​​​​​​​​数据存储

一般Presto与Hive整合使用,针对这种使用情况有如下几点优化建议:

  • 合理设置分区

合理设置分区在读取数据时可以针对分区数据读取,可以减少Presto数据读取量,提升查询性能。

  • 使用列式存储

Presto对ORC文件读取做了特定优化,因此在Hive中创建Presto使用的表时,建议采用ORC格式存储。相对于Parquet,Presto对ORC支持更好。

  • 使用压缩

数据压缩可以减少节点间数据传输对IO带宽压力,对于即席查询需要快速解压,建议采用Snappy压缩。

2、​​​​​​​​​​​​​​查询优化

  • 只查询必要的字段

由于采用列式存储,查询时指定字段进行查询分析,减少读取数据量,避免使用“*”查询。

  • 过滤条件加上分区字段

这样可以减少全表扫描,加快查询速度。

  • Group By 语句优化

合理安排Group by语句中字段顺序对性能有一定提升。将Group By语句中字段按照每个字段distinct数据多少进行降序排列。

[GOOD]: SELECT col1,clo2 from tbl GROUP BY uid, gender

[BAD]: SELECT col1,clo2 from tbl GROUP BY gender, uid

  • Order By时使用Limit

Order by需要扫描数据到单个worker节点进行排序,导致单个worker需要大量内存。如果是查询TopN或者BottomN,使用limit可减少排序计算和内存压力。

  • 使用Join语句时将大表放在左边

使用Join语句时将大表放在左边Presto中join的默认算法是broadcast join,即将join左边的表分割到多个worker,然后将join右边的表数据整个复制一份发送到每个worker进行计算。如果右边的表数据量太大,则可能会报内存溢出错误。

二、​​​​​​​​​​​​​​Presto与Impala对比

Impala性能比Presto相对来说要快一些,两者都对内存消耗比较大,虽然Impala速度快但是Presto支持的数据源丰富。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Presto优化与Impala对比
    • 一、Presto优化
      • 1、​​​​​​​​​​​​​​数据存储
      • 2、​​​​​​​​​​​​​​查询优化
    • 二、​​​​​​​​​​​​​​Presto与Impala对比
    相关产品与服务
    对象存储
    对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档