您的位置:首页 > 其它

impala COMPUTE STATS 指令

2018-03-30 11:24 441 查看
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#FilesSizeBytes CachedFormat
2014-12-13-1151.18GBNOT CACHEDTEXT
2014-12-14-131.80GBNOT CACHEDTEXT
2014-12-15-142.96GBNOT CACHEDTEXT
Total-1225.93GB0B-
指令:show column stats usermodel_inter_total_label;返回:
ColumnType#Distinct Values#NullsMax SizeAvg Size
snSTRING-1-1-1-1
labelSTRING-1-1-1-1
heatDOUBLE-1-1-1-1
active_recordSTRING-1-1-1-1
log_dateSTRING30-1-1
「COMPUTE STATS」后指令:show table stats usermodel_inter_total_label;返回:
log_date#Rows#FilesSizeBytes CachedFormat
2014-12-1394984382469.76MBNOT CACHEDTEXT
2014-12-14178915951893.44MBNOT CACHEDTEXT
2014-12-152788547321.37GBNOT CACHEDTEXT
Total5527550652.71GB0B-
指令:show column stats usermodel_inter_total_label;返回:
ColumnType#Distinct Values#NullsMax SizeAvg Size
snSTRING13984716-13024.0039005279541
labelSTRING36-1134.26140022277832
heatDOUBLE382126-188
active_recordSTRING7-131.667400002479553
log_dateSTRING30-1-1
看来「COMPUTE STATS」的作用就是得出Impala原先不知道的值(-1)。分析:
出最简单的方式是通过执行COMPUTE STATS来收集涉及到的所有表的统计信息,
并让 Impala 基于每一个表的大小、每一个列不同值的个数、等等信息自动的优化查询
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  impala COMPUTE STATS 指令