impala COMPUTE STATS 指令

本文介绍了在Impala中遇到的`COMPUTE STATS`指令的使用情境,包括解决HDFS文件错误、内存不足问题,以及如何通过`COMPUTE STATS`收集表的统计信息来优化查询。通过实例展示了`COMPUTE STATS`前后查询效果的对比,强调了该指令在提升查询性能方面的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

impala COMPUTE STATS 指令
最近再测试impala 学习到COMPUTE STATS 但是不明白其中的意思
用一张表来举例
drop table if exists sjqy.small_bak_inf_ofr_asset_exi_hist;
--拆分小表 
create table sjqy.small_bak_inf_ofr_asset_exi_hist as
select set_exi_row_id 
 from inf.inf_ofr_asset_exi_hist 
where set_exi_row_id <> 'ROWID_ODS';
报错 :Error seeking to 268435456 in file: hdfs://drmcluster/user/sjzx_b/hive/ inf.db/inf_ofr_asset_exi_hist/000000_0 
Error(255): Unknown error 255


使用 invalidate metadata inf.inf_ofr_asset_exi_hist;
 
 执行成功
drop table if exists sjqy.small_ofr_asset_inst_attr;
create  table  sjqy.small_ofr_asset_inst_attr as
select   a.asset_exi_row_id  
        ,a.asset_row_id     
        ,a.attr_id          
        ,a.char_val         
        ,a.date_val         
        ,a.num_val          
        ,a.create_dt        
        ,a.last_upd_dt      
        ,a.val_type_name    
        ,a.etl_dt           
        ,a.etl_time
  from  sjqy.ofr_asset_inst_attr_impala    a 
  left semi join   sjqy.small_bak_inf_ofr_asset_exi_hist  b
     on a.asset_exi_row_id = b.set_exi_row_id ;
报错内存不够
request memory estimate 889.71 GB is greater than pool limit 586.67 GB. 


使用 
COMPUTE sjqy.small_bak_inf_ofr_asset_exi_hist
再次执行sql成功 

「COMPUTE STATS」前
指令:
show table stats usermodel_inter_total_label;
返回:
log_date
#Rows
#Files
Size
Bytes Cached
Format
2014-12-13
-1
15
1.18GB
NOT CACHED
TEXT
2014-12-14
-1
3
1.80GB
NOT CACHED
TEXT
2014-12-15
-1
4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值