有没有使用单个分析命令计算所有分区的配置单元表的统计信息的方法?

时间:2013-08-29 16:08:53

标签: hadoop hive table-statistics

我在hive中看到的用于计算统计数据的语法似乎表明标题问题的答案是“不”:

ANALYZE TABLE [TABLENAME] PARTITION(parcol1=…, partcol2=….) COMPUTE STATISTICS

但是,我想把它扔出去,因为我很惊讶总是需要编写一个脚本迭代分区来生成每个分区的语句。我们现在在这张小桌子上有大约一千个分区,它将以数量级增长。

BTW我在没有指定分区的情况下尝试了以下内容:

hive> analyze table metrics compute statistics;
FAILED: SemanticException [Error 10115]: Table is partitioned and partition specification is needed

2 个答案:

答案 0 :(得分:7)

是的,你可以。

至少从我正在使用的hive v0.13开始。只需尝试没有特定值(无=…位)

的分区规范语法

如果你正在使用FOR COLUMNS,那么你不能因为这个错误:https://issues.apache.org/jira/browse/HIVE-4861

答案 1 :(得分:0)

根据Hive手册,如果没有指定分区规格,则会为整个表格收集统计信息, https://cwiki.apache.org/confluence/display/Hive/StatsDev

When the user issues that command, he may or may not specify the partition specs. If the user doesn't specify any partition specs, statistics are gathered for the table as well as all the partitions (if any).