微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

蜂巢计数不匹配的原因

如何解决蜂巢计数不匹配的原因

问题陈述:-我有一个原始外部表,该表具有表count(1000),方法是将其基础数据复制到某个临时位置,并在创建备份表时指向该临时位置。并且在运行msck修复后,两个表的计数都不匹配?

有什么理由吗?您能否帮助我理解其背后的原因。

解决方法

在这里回答和澄清一些事情,

    可以直接从Metastore或通过读取基础数据来获取
  1. Stats。可以由属性hive.compute.query.using.stats

    控制

    a。设置为TRUE时,Hive将纯粹使用存储在元存储中的统计信息来回答诸如min,max和count(1)之类的一些查询。

    b。设置为FALSE时,Hive将产生一个YARN作业以读取数据并提供计数结果。基于数据量通常很耗时,因为这不是从Hive Metastore中存储的统计信息中直接获取的。

    因此,如果我们希望在属性hive.compute.query.using.stats设置为TRUE时在结果中返回正确的统计信息,则需要确保表的统计信息已更新。

    您可以通过在Hive中运行以下命令来检查该值是设置为TRUE还是FALSE,

    SET hive.compute.query.using.stats;

  2. MSCK REPAIR不执行文件级别检查。它仅查找目录级别的更改,例如,如果您已创建分区表并在HDFS中手动添加了分区目录,并且您希望Hive意识到这一点,则MSCK REPAIR可以满足此目的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。