问题陈述:-通过将基础数据复制到某个临时位置,并在创建指向该临时位置的备份表时,我有一个表计数为(1000)的原始外部表。运行msck修复后,两个表的计数不匹配?有什么原因吗。你能帮我理解背后的原因吗。
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可以达到这个目的。
hive.compute.query.using.stats
SET hive.compute.query.using.stats;
1条答案
按热度按时间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可以达到这个目的。