了解配置单元查询计划

jbose2ul  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(219)

我有一个查询及其相关联的查询和模拟数据的查询计划(参见gist)。
lte\u data\u tenmillion表中的行数为10000000 subscriber data表中的行数为100000
对于这两个表,所有行的subscriber\u id列中都没有空值。
我发现很难理解,为什么查询计划显示扫描的行数(在应用predicate:subscriber\u id is not null(type:boolean))正好是原始行数的一半。
subscriber表的filter操作符的情况类似。
此外,如“文件输出操作符[fs\u 20]”中所述,结果数据的总行数为5500000。但是,结果表中的实际行数是2499723。
我可能误解了查询计划。如果有人能澄清我在查询计划和实际结果中发现的不一致之处,我将不胜感激。
谢谢!

epfja78i

epfja78i1#

统计数字并不新鲜。使用分析每个表 analyze table <table name> compute statistics; 然后再次检查计划。同时添加

set hive.stats.fetch.column.stats=true;
set hive.stats.fetch.partition.stats=true;

在解释命令之前。

相关问题