impala查询性能优化

impala使用及调优 Impala是基于Hive的大数据实时分析查询引擎,直接使用Hive的元数据库Metadata,意味着impala元数据都存储在Hive的metastore中。 Hive适合于长时间的批处理查询分析,而Impala适合于实时交互式SQL查询。 在impala中一条SQL语句先后经历BeeswaxService.Query->TClientRequest->TExecRequest,... 阅读详情

查看表和列的统计信息:(适用于hive表,kudu表,hbase外表)

compute stats tbl_nm; impala优化器。执行之后可能会解决impala查询该表爆内存的错误。并且可以执行下面两个指令. compute stats是检查impala中的表数据,因此如果hive数据更新了还是得先refresh table,然后再执行compute stats。此命令计算了表在impala中缓存的数据聚合信息。并且在查询或关联中用到该表,impala会自动根据计算后的结果去优化执行计划。

show column stats tbl_nm; 看表的字段的聚合信息(前提是执行了compute指令,否则不准确)

show table stats tbl_nm;看表的聚合信息 包含文件大小,行数,类型,路径等(前提是执行了compute指令,否则不准确)

 

分区表通常都是在不断变大的。这时候如果增加或者更新一个新分区也需要执行COMPUTE STATS的话,是非常低效的。因为COMPUTE STATS需要遍历整张表。为了解决这个问题,从impala1.2开始,增加了COMPUTE INCREMENTAL STATS。这个命令只会增量统计信息。

 

对于通量的数据,执行COMPUTE INCREMENTAL STATS会比执行COMPUTE STATS更耗时。因此更适合要频繁增加具有大量数据的分区的表。对于不分区的表,或者虽然分区,但一次加载,不会再更新新分区的表,使用COMPUTE STATS更好。

 

如果使用ALTER TABLE来删除一列,存在的统计信息仍然有效,执行COMPUTE INCREMENTAL STATS不会重新扫描任何分区;

如果使用ALTER TABLE来增加一列,执行COMPUTE INCREMENTAL STATS时,impala会重新扫描所有分区,并填充准确的列层级的值;

如果使用ALTER TABLE来改变表的文件格式,存在的统计信息仍然有效,执行COMPUTE INCREMENTAL STATS不会重新扫描任何分区;

如果使用ALTER TABLE来改变某列的数据类型,执行COMPUTE INCREMENTAL STATS时,impala会重新扫描所有分区,并填充准确的列层级的值;

 

执行计划:

explain [QUERY] :查询执行计划,检验SQL查询是否合理运用分区,如下partition=3/483,用到了483个分区中的3个

set explain_level=0/1/2/3; 设置explain的等级。越高越详细;

 

 

 

在impala-shell中,执行完一条QUERY后,执行summary;或profile; 可以查看该查询的详细查询分析;

 

关联查询优化:

对于join查询,最简单的方式是通过执行COMPUTE STATS来收集涉及到的所有表的统计信息,并让 Impala 基于每一个表的大小、每一个列不同值的个数、等等信息自动的优化查询。 

最大的表放首位。这个表在查询的时候是每个impala节点直接从磁盘读取的,因此它的大小对于内存使用没影响。 

 

STRAIGHT_JOIN

在impala中数据量大的表在前,数据量小的表在后,有助于提升性能。Impala会默认根据compute之后的统计结果对查询进行执行计划的排序,大表在前,小表在后。 但有时compute的统计结果是旧的信息,即表数据已更新,没有再次执行compute或没有refresh之后再compute,导致统计结果为旧版本,这时候在做关联查询的时候,依靠impala自己的优化器去执行关联查询就不准确了,这里推荐使用straight_join关键词,来覆盖自动的连接顺序优化。这时候,Impala 使用表在查询中出现的顺序来指导连接如何处理。

然后按表大小由大到小依次排序。这些表的内容全部都是要在网络中传递的,所以,表越到后面越小越好。

值得注意的一点是,这里的“大小”是就每个表在查询后生成的中间结果涉及到的行的数量来定的。比如,一次查询,要join两个表:销售表和用户表。查询的结果是100个不同的用户共有5000条消费记录。因为涉及用户表的行比销售表少(100<5000)。所以用户表应该放在后面(右边)。

 

分区优化:

动态分区/静态分区

(动态分区,略)

 

设置分区的不同的文件格式:

分区表的不同分区可以分别设置存储格式(parquet,rcfile,orc,textfile..)但同一个分区内只能存储一种文件格式。alter table tbl_nm partition (pt=xx) set fileformat parquet/textfile;

例如分区pt=2018本来是text存储且有数据,改变为parquest存储后新增数据或查询数据都会报错。需要重新覆盖该分区的数据。

 

PARQUET_FILE_SIZE: parquet文件大小上限,默认为256MB,最大1GB。需要考虑到磁盘IO和网络带宽的性能影响。

 

 

 

compute stats表和列统计信息 全表扫描 compute stats 表 分区表扫描 compute incremental stats 表 partition(biz_date=20220218) compute incremental stats 表 partition(biz_date<=20220218) compute incremental stats 表 partition(biz_date >= 20211230 and biz_date <=20220218) compute increm 阅读详情

相关推荐

Impala性能优化之道

作者:禅与计算机程序设计艺术 1.简介 1.1 概述 Apache Impala是一个开源分布式的,面向商业的查询分析引擎。它使用基于列存的存储格式,能够快速处理海量的数据并进行复杂的分析查询。作为开源项目,Impala由Cloudera公司开发、维护、支持。其优

AI天才研究院 353

Impala的命令COMPUTE STATS

COMPUTE STATS主要作用: 收集有关表中数据的容量和分布以及所有相关列和分区的信息。这些信息存储在metastore数据库中,Impala使用这些信息来帮助优化查询。例如,如果Impala可以确定一个表是大是小,或者有很多或很少不同的值,它就可以为一个连接查询或插入操作适当地组织并行化工作。 语法: COMPUTE STATS [db_name.]table_name COMPUTE INCREMENTAL STATS [db_name.]table_name [PARTITION (partit

禧年 1531

关于Arduino中的常用函数

一、I/O函数 二、时间函数 三、数学函数 abs 返回其参数的无符号值 【abs(12)返回12,abs(-12)也返回12】 constrain 限制一个数字以阻止它超出范围。第一个参数是被限制的数字,第二个参数是范围区间的开始,第三个参数是允许的数字范围区间的结尾。 【constrain(8,1,10)返回8,constrain(11,1,10)返回10,constrain(0,1,10)返回1】 map 将一个范围内的数字映射到另一个范围。第一个参数是要映射到数字,第二个和第三个参数是from范围(

TREE的博客 7322

impala优化 COMPUTE STATS 与COMPUTE INCREMENTAL STATS

计算统计声明 COMPUTE STATS语句收集有关表以及所有关联的列和分区中的数据量和分布的信息。该信息存储在metastore数据库中,并由Impala用于帮助优化查询。例如,如果Impala可以确定表是大是小,或者具有许多或很少的不同值,则它可以适当地组织和并行化工作以进行联接查询或插入操作。有关此语句收集的各种信息的详细信息,请 参见表和列统计信息。 句法: COMPUTE STATS [db_name.]table_name [ ( column_list ) ] [TABLESAMPLE SY

张不帅 4728

CST电子枪仿真实战:从零搭建粒子追踪模型到磁场聚焦优化

本文提供了一份CST电子枪仿真实战指南,详细讲解了从零开始搭建粒子追踪模型的全过程。内容涵盖项目初始化、Track Solver求解器基础、几何建模、粒子源定义,并重点介绍了如何通过引入和优化静磁场(如聚焦线圈配置)来实现电子束的聚焦,帮助工程师高效预测和优化束流品质。

game4的博客 336

kernel: TCP: out of memory -- consider tuning tcp_mem 问题处理记录

参数名 说明 net.ipv4.tcp_max_tw_buckets = 6000 系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数值将立刻被清楚并输出警告信息。默认值为180000。对于squid来说效果不是很大,但可以控制TIME_WAIT套接字最大值,避免squid服务器被拖死。 net.ipv4.tcp_rmem = 4096 87380 4194304 接收窗口的最大大小...

weixin_46691674的博客 6892

impala学习sql优化之summary(实战分析)

4. 5就是花费时间,我们看下 主要的花费时间在 00scan kudu 1.64s 和02 hash join 11s。2.第二行 host 看了下 1 和10,1代表的是在一台机器上完成,10代表的是分布式,以这个sql为例,广播gb表到10个hosts上,基于内存在于gcc join。在我们执行完一个sql后,执行summary。join的方式,内存的预估(说实话这个我还没看懂),表是否统计过信息。可以看到出来一个表格,简洁直观,我们来分析一下。这两个表都是kudu表。有没有发现哪里有点相似呢?

cclovezbf的博客 862

openHarmony之AI Engine:万字讲解如何在应用、开发板上接入AI大模型调用

本文章介绍如何在 OpenHarmony 开发板上集成和部署各类 AI 大模型,实现终端直接聊天功能,并为语音助手、智能机器人等应用提供 AI 接口支持。

m0_67505153的博客 619

Hadoop-impala十大优化之(2)—impala连接查询性能优化及最佳实践

1.1 Hadoop-impala十大优化之(2)—impala连接查询的性能优化 涉及连接操作的查询通常需要更多的调整,而不是仅指一个表的查询。从联接查询集合查询的结果集的最大大小是所有联接...

cn7007的博客 1418

手把手教你完成基于matlab的LSTM时间序列分析

时间序列是按时间顺序组织的数字序列,是数据分析中重要的处理对象之一。时间序列的主要特点是数据获取方式一般具有客观性,能反映某种现象的变化趋势或统计指标,进而预测未来走向,这在本质上也是一个回归预测的问题。长短时记忆网络(Long Short-Term Memory,LSTM)是一种循环神经网络,适合处理有更长时间跨度的内部记忆,被广泛应用于时间序列分析,能够保持数据的内在持续性,反映数据的细粒度走势,具有良好的预测效果。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 896

环境配置与基础教程:当前大厂主流套路:使用 MLflow 全链路管理 YOLO 实验参数、指标与模型版本

YOLO26与MLflow结合实现高效实验管理 YOLO26通过移除DFL模块和实现无NMS端到端推理,在CPU推理速度上提升43%,同时简化了模型导出流程。MLflow 3.10/3.11版本新增多工作区支持、成本追踪和安全序列化等功能,为机器学习实验提供全生命周期管理。两者结合可解决传统"截图+Excel"式实验管理的痛点,实现参数追踪、指标对比和模型版本控制的自动化。 关键优势: YOLO26架构优化带来显著性能提升 MLflow提供实验到生产的全链路管理 原生集成简化了计算机视觉

ZXSXJ的博客 191

Apache Impala性能优化秘籍:10个技巧让查询速度提升10倍

Apache Impala作为开源分布式SQL查询引擎,专为大规模数据仓库设计,能显著提升数据处理效率。本文将分享10个实用的性能优化技巧,帮助数据分析师和开发者充分发挥Impala的潜力,让查询速度提升10倍。 ## 1. 优化数据存储格式 选择合适的存储格式对Impala查询性能至关重要。Parquet和ORC是推荐的列式存储格式,它们支持高效的压缩和谓词下推。可以通过以下方式设置表的存储

gitblog_01133的博客 381

一次点击跑通:用 Postman 自动获取并携带 CSRF token,测试 SAP OData 写操作

SAP OData 写操作自动化测试方案 针对 SAP Gateway OData 服务写操作中常见的 CSRF token 验证问题,本文提出了一套基于 Postman 的自动化解决方案: 问题分析:解释了 CSRF token 的验证机制及其必要性,说明手工测试效率低下的原因 解决方案: 使用 Postman 环境变量存储 token 通过脚本自动获取并传递 token 利用 Collection Runner 实现一键执行 实施步骤: 创建环境变量存储 token 第一个请求获取 token 并存入变

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 303

二、Impala查询计划研究学习(1)

一、简介 目前生产上有一张表的数据量非常大,按照天进行分区,每天的数据量大约2g,为此业务在查询数据并进行 排序的时候出结果比较慢,本人通过大神对Impala查询计划解读来解决遇到的问题。 业务用到的SQL语句(差不多如下样式): SELECT * FROM TABLE WHERE BIZ_DT BETWEEN '20190101' AND '20200401' AND ...

XuanAlex的博客 1227

js逆向第3例:蝉妈妈大屏实时数据formDataSign加密

蝉妈妈大屏抖音直播实时数据是抓取抖音直播间数据的实时数据,有类似需求的公司但没有能力去搞定抖音,抓取蝉妈妈数据也是一个不错的选择。接下来就是调试找到加密点,说句题外话蝉妈妈的所有js文件打包方式用的都是webpack5,那如何区分打包方式可以阅读这篇文章。时间戳 ,经过观察发现加密参数是实时变化的。这个函数扣下来,在浏览器控制台中测试一下。言归正传,打断点找到变量。继续打断点向上找又发现了。查看请求参数,可以看到。请求的内容,那么这个。

花臂不花Home 1539

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Impala性能优化总结

Impala性能优化要点: 1. 为数据存储选择合适的文件格式(如:Parquet)   通常对于大数据量来说,Parquet文件格式是最佳的 2. 防止入库时产生大量的小文件(insert ... values会产生大量小文件,应该避免使用)   在impala外生成数据时,最好是text格式或者Avro,这样你就可以逐行的构建文件,到了impala之后,再通过简单的insert ......

maenlai0086的博客 1948

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Impala与MySQL:比较优化Impala数据库性能的方法

作者:禅与计算机程序设计艺术 Impala 与 MySQL:比较优化 Impala 数据库性能的方法 引言 1.1. 背景介绍 随着大数据时代的到来,数据存储和处理能力成为企业构建高性能、高可

AI天才研究院 6700

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

impala快速入门

impala快速入门1. 什么是impala ?2. impala的优缺点3. impala的架构组成4. impala的运行原理5. impala的监控管理6. impala-shell6. impala的外部shell操作7. impala的内部shell8. impala的数据类型9. impala的DDL操作创建数据库创建表分区表10. impala DML操作数据导入数据导出11. impala DQL操作12 函数自定义函数13. 存储和压缩14 impala优化 1. 什么是impala ?

新生代农民工Steven 6188

impala 性能优化

Impala性能优化 Impala优缺点: 核心组件: Statestore Daemon 该进程负责搜集集群中Impalad进程节点的健康状况,它通过创建多个线程来处理Impalad的注册订阅,并与各节点保持心跳连接,不断地将健康状况的结果转发给所有的Impalad进程节点。一个Impala集群只需一个statestored进程节点,当某一节点不可用时,该进...

lzyilzy的博客 2214

使用Impala进行实时数据处理:如何提高吞吐量和实时性?

作者:禅与计算机程序设计艺术 《7. 使用 Impala 进行实时数据处理:如何提高吞吐量和实时性?》 引言 1.1. 背景介绍 随着大数据时代的到来,实时数据处理变得越来越重

AI天才研究院 4162

交互式查询工具Impala

第 1 部分 Impala概述 1.1 Impala是什什么 Impala是Cloudera提供的⼀一款开源的针对HDFS和HBASE中的PB级别数据进⾏行行交互式实时查询(Impala速度快),Impala是参照⾕谷歌的新三篇论⽂文当中的Dremel实现⽽而来,其中旧三篇论⽂文分别是(BigTable,GFS,MapReduce)分别对应我们即将学的HBase和已经学过的HDFS以及MapReduce。Impala最⼤大卖点和最⼤大特点就是快速,Impala中⽂文翻译是⾼高⻆角羚⽺羊。 1.2

BetterKunPeng的博客 1104

大数据新视界 -- 大数据大厂之经典案例解析:电商企业如何靠 Impala性能优化逆袭(上)(9/30)

本文聚焦电商企业 Impala 性能优化,先阐述电商数据挑战,强调 Impala 优化意义。接着介绍优化策略,包括存储方面(如 Parquet 格式、分区策略)和查询方面(索引运用、语句改写),并对比不同方案。再通过电商巨头 Z 案例展示优化中问题与解决方法、性能变化。最后鼓励开发者分享经验,展望下一篇广告公司 Impala 优化文章。

【青云交】华为云云享专家 | 阿里云开发者社区专家博主 技术圈个人影响力前 9 | 博客之星 TOP12 优快云 首位四榜(原力榜 / 作者周榜 / 领军人物 / 综合热榜)榜首,破平台纪录! 苏州地区全榜霸榜,感恩全网十多万粉丝同行! 2204

impala知识点

impala 外部shell(在进入impala shell之前输): -h(--help) :帮助 -v(--version):查看版本号 -V (--verbose):启用详细输出 --quiet:关闭详细输出 -p:显示执行计划 -i hostname(--impalad=hostname) 指定连接主机 ,格式hostname:port默认端...

qq_40990693的博客 703

大数据Hive和Impala经典分析

一、Impala是什么??? Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速。 Im...

yangshaojun1992的博客 2102

impala 的笔记

############################################################################# impala 的简介 Cloudera 公司推出 , 提供对HDFS , Hbase 数据的高性能 , 低延迟的交互SQL 查询功能 Impala没有再使用缓慢的Hive+MapReduce批处理,而是通过使用与商用并行关系数据库中类似的...

大数据爱好者 697
上一篇: CDH6中Impala报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position
下一篇: hive全库数据及表结构的备份与恢复
王义凯_Rick
王义凯_Rick 领域专家: 大数据技术领域 领域专家: 大数据技术领域
博客等级 码龄14年 858粉丝 162原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王义凯_Rick

遇见即是缘,路过就给个评论吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值