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;返回:
指令:show column stats usermodel_inter_total_label;返回:
「COMPUTE STATS」后指令:show table stats usermodel_inter_total_label;返回:
指令:show column stats usermodel_inter_total_label;返回:
看来「COMPUTE STATS」的作用就是得出Impala原先不知道的值(-1)。分析:
出最简单的方式是通过执行COMPUTE STATS来收集涉及到的所有表的统计信息,
并让 Impala 基于每一个表的大小、每一个列不同值的个数、等等信息自动的优化查询
最近再测试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 | 2.96GB | NOT CACHED | TEXT |
Total | -1 | 22 | 5.93GB | 0B | - |
Column | Type | #Distinct Values | #Nulls | Max Size | Avg Size |
sn | STRING | -1 | -1 | -1 | -1 |
label | STRING | -1 | -1 | -1 | -1 |
heat | DOUBLE | -1 | -1 | -1 | -1 |
active_record | STRING | -1 | -1 | -1 | -1 |
log_date | STRING | 3 | 0 | -1 | -1 |
log_date | #Rows | #Files | Size | Bytes Cached | Format |
2014-12-13 | 9498438 | 2 | 469.76MB | NOT CACHED | TEXT |
2014-12-14 | 17891595 | 1 | 893.44MB | NOT CACHED | TEXT |
2014-12-15 | 27885473 | 2 | 1.37GB | NOT CACHED | TEXT |
Total | 55275506 | 5 | 2.71GB | 0B | - |
Column | Type | #Distinct Values | #Nulls | Max Size | Avg Size |
sn | STRING | 13984716 | -1 | 30 | 24.0039005279541 |
label | STRING | 36 | -1 | 13 | 4.26140022277832 |
heat | DOUBLE | 382126 | -1 | 8 | 8 |
active_record | STRING | 7 | -1 | 3 | 1.667400002479553 |
log_date | STRING | 3 | 0 | -1 | -1 |
出最简单的方式是通过执行COMPUTE STATS来收集涉及到的所有表的统计信息,
并让 Impala 基于每一个表的大小、每一个列不同值的个数、等等信息自动的优化查询
相关文章推荐
- Impala的神奇指令「COMPUTE STATS」
- svn 指令整理 附 ->Svn Quick Reference Card<- pdf
- Oracle/Hive/Impala SQL比较1
- 【Linux】基础指令
- 80X86标志寄存器及比较和跳转指令 zf pf sf cf of df cmp je jne jb jnb ja jna
- Cloudera Impala需求
- AngularJS ng-blur 指令详解及简单实例
- Linux:Linux常用网络指令
- 关于mysql的一些操作指令基础1-1
- ubuntu:sudo指令
- git 常用指令
- AngularJS入门教程之ng-class 指令用法
- 【angular】指令及数据绑定入门
- android常用 shell指令
- set -x与set +x指令
- AngularJS基础 ng-if 指令用法
- 寄存器在内存单元寻址组合和div/mul指令笔记
- linux平台下android开发常用指令总结:个人笔记
- 汇编学习--7.16--int指令