配置单元计数不匹配的原因

63lcw9qa  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(416)

问题陈述:-通过将基础数据复制到某个临时位置,并在创建指向该临时位置的备份表时,我有一个表计数为(1000)的原始外部表。运行msck修复后,两个表的计数不匹配?
有什么原因吗。你能帮我理解背后的原因吗。

neskvpey

neskvpey1#

回答和澄清一些事情,
可以直接从metastore或通过读取底层数据来获取stats。它可以由属性控制 hive.compute.query.using.stats 答。当它设置为true时,hive将纯粹使用存储在metastore中的统计信息来回答一些查询,如min、max和count(1)。
b。当设置为false时,hive将生成一个yarn作业来读取数据并提供计数结果。由于这不是从hive metastore中存储的统计信息中直接获取数据,因此通常需要花费大量的时间。
因此,如果我们希望在属性 hive.compute.query.using.stats 如果设置为true,则需要确保更新表的统计信息。
通过在配置单元中运行以下命令,可以检查该值是否设置为true或false, SET hive.compute.query.using.stats; msck repair不执行文件级检查。它只查找目录级别的更改,例如,如果您在hdfs中创建了一个分区表并手动添加了一个分区目录,并且如果您希望hive知道它,msck repair可以达到这个目的。

相关问题