【发布时间】:2020-01-06 22:03:52
【问题描述】:
我正在使用 Hive 版本 1.2.1。如果我运行 select count(*) from mytable,我会看到它启动了 Tez 作业。所以很明显它没有使用任何表统计信息,因为理想的行数应该从存储在 Hive Metastore 中的表统计信息中获取。此外,我明确检查了 Hive Metastore 中的所有表,但我没有在那里找到任何表名,这有点暗示它存储了表统计信息。我能看到的唯一下一个最好的相关表是TAB_COL_STATS,但这个表只存储列级别的统计信息,而且它也只有很少的行数,表有 10 行。这提出了两个问题。
- 此版本的 Hive (1.2.1) 是否不支持表统计信息?
- 如果这个 Metastore 表,即
TAB_COL_STATS存储所有内容,为什么像 num_rows 这样的列不属于这个表模式?我看到了 max、min、avg、num_distinct 等类型的列。 - 当我查询表以获取某些统计信息(例如行数)时,我是否必须打开某个选项以便它利用内部存储的统计信息而不是运行 Tez 作业?
【问题讨论】:
标签: hive