首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在HIve中加载比实际更多的记录

问在HIve中加载比实际更多的记录
EN

Stack Overflow用户
提问于 2016-12-04 21:22:16
回答 1查看 431关注 0票数 3

当从Hive表插入到HIve表时,它加载了比实际记录更多的记录。有人能帮助蜂巢的这种奇怪行为吗?

我的查询将如下所示:

代码语言:javascript
复制
insert overwrite table_a
    select col1,col2,col3,... from table_b;

我的table_b由6405465条记录组成。

在从table_b插入到table_a之后,我发现table_a中总共有6406565条记录。

有谁能帮帮忙吗?

EN

回答 1

Stack Overflow用户

发布于 2016-12-07 23:46:28

如果为hive.compute.query.using.stats=true;,则优化器将使用统计信息进行查询计算,而不是查询表数据。这要快得多,因为metastore是一个像MySQL一样快速的数据库,不需要map-reduce。但是如果没有使用INSERT、OVERWRITE或者负责统计信息自动收集的配置参数hive.stats.autogather被设置为false,那么统计信息可能不是最新的(陈旧的)。此外,在加载文件或使用第三方工具后,统计数据将不会刷新。这是因为文件从未分析过,元存储中的统计数据不是最新的,如果您放置了新文件,没有人知道数据是如何更改的。同样在sqoop加载之后,等等。因此,在加载之后使用“ANALYZE table ... COMPUTE statistics”收集表或分区的统计信息是一个很好的做法。

如果无法自动收集统计信息(适用于INSERT重写),或者无法通过运行ANALYZE语句来收集统计信息,那么最好关闭hive.compute.query.using.stats参数。配置单元将查询数据而不是使用统计信息。

请参阅以下内容作为参考:https://cwiki.apache.org/confluence/display/Hive/StatsDev#StatsDev-StatisticsinHive

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40959091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档