【问题标题】:Understanding hive query plan了解 Hive 查询计划
【发布时间】:2016-09-19 10:48:46
【问题描述】:

我有一个查询及其关联的query and query plan(请参阅要点)以获取模拟数据。

表 lte_data_tenmillion 的行数为 10000000 表订阅者数据的行数为100000

对于这两个表,subscriber_id 列中的行都没有空值。

我很难理解,为什么查询计划显示扫描的行数(在应用谓词后:subscriber_id is not null (type: boolean))正好是原始行数的一半。

订阅者表的过滤运算符也是如此。

此外,如“文件输出运算符 [FS_20]”中所述,结果数据的总行数为 5500000。但结果表中的实际行数为 2499723。

我可能错误地解释了查询计划。如果有人能清除我在查询计划和实际结果中观察到的不一致之处,我将不胜感激。

谢谢!

【问题讨论】:

    标签: hadoop hive hortonworks-data-platform apache-tez


    【解决方案1】:

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

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

    在解释命令之前。

    【讨论】:

    • 我在运行解释查询之前发出了这个命令。不幸的是,我发现数字没有变化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2019-02-15
    相关资源
    最近更新 更多