我在hive中看到的计算统计信息的语法似乎表明标题问题的答案是“否”:
ANALYZE TABLE [TABLENAME] PARTITION(parcol1=…, partcol2=….) COMPUTE STATISTICS
然而,我想在这里抛出它,因为我很惊讶总是需要编写一个脚本来迭代分区以生成每个分区的语句。我们现在在这个小表上有大约1000个分区,它将以数量级的速度增长。
顺便说一句,我在没有指定分区的情况下尝试了以下操作:
hive> analyze table metrics compute statistics;
FAILED: SemanticException [Error 10115]: Table is partitioned and partition specification is needed
3条答案
按热度按时间ddhy6vgd1#
我使用的是最新的hive1.2,下面的命令运行得非常好
hi3rlvi22#
根据配置单元手册,如果未指定分区规格,则会为整个表收集统计信息,https://cwiki.apache.org/confluence/display/hive/statsdev
zbdgwd5y3#
是的,你可以。
至少从我所在的Hivev0.13开始。只需尝试没有特定值的分区规范语法(没有
=…
位)如果您使用for列,则由于存在以下错误,您不能:https://issues.apache.org/jira/browse/hive-4861