我有2张桌子。
第一个具有ORC格式,分区如下:{year,month,day,type}和~60Millions行。
seconde有一个TextInputFormat,分区如下:{date,type}和~300Millions行。
当我在这两个表上执行“SELECT COUNT(*)”时,第一个表会在几分钟后给出结果。
解释计划是:
Plan not optimized by CBO.
Vertex dependency in root stage
Reducer 2 <- Map 1 (SIMPLE_EDGE)
Stage-0
Fetch Operator
limit:-1
Stage-1
Reducer 2 vectorized
File Output Operator [FS_107648]
compressed:true
Statistics:Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
table:{"serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe","input format:":"org.apache.hadoop.mapred.TextInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat"}
Group By Operator [OP_107647]
| aggregations:["count(VALUE._col0)"]
| outputColumnNames:["_col0"]
| Statistics:Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
|<-Map 1 [SIMPLE_EDGE] vectorized
Reduce Output Operator [RS_107641]
sort order:
Statistics:Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
value expressions:_col0 (type: bigint)
Group By Operator [OP_107646]
aggregations:["count()"]
outputColumnNames:["_col0"]
Statistics:Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
Select Operator [OP_107645]
Statistics:Num rows: 64930697 Data size: 158452219904 Basic stats: PARTIAL Column stats: NONE
TableScan [TS_107638]
alias:mytable
Statistics:Num rows: 64930697 Data size: 158452219904 Basic stats: PARTIAL Column stats: NONE
当我对第二个查询执行相同的查询时,它会在不到5秒后给我一个结果......
解释计划是:
Plan not optimized by CBO.
Stage-0
Fetch Operator
limit:1
我想要涉及分区或格式...... 有没有人了解情况,所以,可以解释:)它给我?
答案 0 :(得分:0)
您正在使用hive.compute.query.using.stats=true
您的第二个查询除了从Metastore
<强> hive.compute.query.using.stats 强>
默认值:false
添加In:Hive 0.13.0 with HIVE-5483
当设置为true时,Hive会回答几个问题 min,max和count(1)等查询纯粹使用存储在其中的统计信息 Metastore。对于基本统计信息收集,请设置配置 属性hive.stats.autogather为true。有关更高级的统计信息 集合,运行ANALYZE TABLE查询。