1

我在日志文件中得到以下信息,但不知道这意味着什么:

询问:

create table mydb.new as

select a.col1,b.col4,a.col3 from 

sampledb.table1 a
left join sampledb.table2 b
on a.col3=b.col3
;


No Stats for sampledb@table1, Columns: col_1
No Stats for sampledb@table2, Columns: col_4

有人可以帮忙或指导我去哪里看吗?

没有答案的相关问题:Hive No Stats for 'database'@'table', Columns

4

1 回答 1

1

没有统计信息可以导致次优计划(对于连接列)或表扫描,而不是仅将统计信息用于简单查询:

CBO 在创建查询计划时使用统计信息。缺少统计信息或过时的统计信息可能会导致次优查询计划。如果没有统计信息,CBO 会根据文件大小/平均行大小进行一些估计(请参阅hive.stats.avg.row.size配置和其他与统计信息相关的设置)。

此外,如果hive.compute.query.using.stats=true存在统计信息,则优化器正在使用统计信息进行简单查询(例如 select count(col1) ...)计算,而不是查询表数据(如果统计信息过时,这可能会导致错误的查询结果),请参阅此答案.

另请阅读此设计文档以获取有关统计信息的更多详细信息:https ://cwiki.apache.org/confluence/display/Hive/StatsDev#StatsDev-StatisticsinHive

于 2021-03-30T15:32:10.967 回答