我在我的日志文件中得到了以下内容,但不知道这意味着什么:
查询:
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
有没有人能帮我解决这个问题,或者告诉我去哪里找?
发布于 2021-03-30 23:32:11
没有统计信息会导致不理想的计划(对于联接列)或表扫描,而不是仅对简单查询使用统计信息:
CBO在创建查询计划时使用统计信息。缺少统计信息或陈旧的统计信息可能会导致次优查询计划。如果没有统计信息,CBO会根据文件大小/平均行大小进行一些估计(请参阅hive.stats.avg.row.size
配置和其他statistics related settings)。
另外,如果存在hive.compute.query.using.stats=true
和统计信息,那么优化器将对简单查询使用统计信息(例如,select count(col1) ...)计算,而不是查询表数据(如果统计数据过时,这可能会导致错误的查询结果),请参见this answer。
另请阅读以下设计文档,了解有关统计数据的更多详细信息:https://cwiki.apache.org/confluence/display/Hive/StatsDev#StatsDev-StatisticsinHive
https://stackoverflow.com/questions/66873159
复制相似问题