数仓工具—Hive进阶之Statistics与Analyze Table命令(20)

Hive Statistics与Analyze Table命令

hive 使用基于成本的优化器,所以表的统计信息作为成本函数的输入信息,从而优化器可以判断不同执行计划之间的成本,进而选择最佳的执行计划。

hive 使用统计信息例如表或者分区的行数生成一个最佳的执行计划,除了优化器,表的统计信息在hive 的其他很多地方也用到了,那hive是如何检查更新统计信息呢,就是我们今天介绍的ANALYZE TABLE 命令

统计信息(表/分区)的用途

使用到统计信息的地方有很多:

  1. Hive 基于成本的优化器使用统计信息生成最佳的执行计划
  2. 用户可以更快的获取某些统计的查询结果,这些查询结果存储在统计信息中的,而不是运行执行计划得到的
  3. 用户可以更好的获取数据的分布情况,例如卖的最好的10款产品,年龄的分布等。

收集什么样的统计信息

对于表和分区,目前支持收集下面的统计信息

  1. 行数
  2. 文件
  3. 大小(Bytes)
  4. 分区数(分区表)
  5. 列的统计信息
  6. 最后一次操作时间

Hive ANALYZE TABLE 命令

Hive 使用 ANALYZE TABLE 命令收集特定表的统计信息,这个命令收集到的统计信息存储在Hive 的 metastore 中。

Hive ANALYZE TABLE 命令的语法

下面是ANALYZE TABLE 命令的语法

经验分享 程序员 微信小程序 职场和发展