Hadoop 有没有办法用一个analyze命令计算所有分区的配置单元表的统计信息?

Hadoop 有没有办法用一个analyze命令计算所有分区的配置单元表的统计信息?,hadoop,hive,table-statistics,Hadoop,Hive,Table Statistics,我在hive中看到的计算统计数据的语法似乎表明标题问题的答案是“否”: ANALYZE TABLE [TABLENAME] PARTITION(parcol1=…, partcol2=….) COMPUTE STATISTICS 然而,我想在这里把它扔掉,因为我很惊讶总是需要编写一个脚本来迭代分区以生成每个分区的语句。我们现在在这个小表上有大约1000个分区,并且它将以数量级增长 顺便说一句,我在没有指定分区的情况下尝试了以下操作: hive> analyze table metrics

我在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

根据配置单元手册,如果未指定分区规格,则会为整个表收集统计信息,

是的,你可以

至少从我所在的蜂巢v0.13开始。只需尝试不带特定值的分区规范语法(无
=…
位)


如果您正在使用FOR COLUMNS,那么由于错误,您不能使用它:

我使用的是最新的Hive 1.2,下面的命令工作得非常好

hive> analyze table member partition(day) compute statistics noscan;
Partition mobi_mysql.member{day=20150831} stats: [numFiles=7, numRows=-1, totalSize=4735943322, rawDataSize=-1]
Partition mobi_mysql.member{day=20150901} stats: [numFiles=7, numRows=117512, totalSize=19741804, rawDataSize=0]
Partition mobi_mysql.member{day=20150902} stats: [numFiles=7, numRows=-1, totalSize=17734601, rawDataSize=-1]
Partition mobi_mysql.member{day=20150903} stats: [numFiles=7, numRows=-1, totalSize=13091084, rawDataSize=-1]
OK
Time taken: 2.089 seconds

好的,我是在Hive11最新/最棒的时候写的。很高兴知道投票结果有所改善-有点体面,至少留下反馈…是的,我看到了,但在同一节中也有这样的评论:“当计算所有分区的统计数据时,仍然需要列出分区列。”因此我建议包括分区列(但不包括=vals).totalSize值是什么意思?@user55570它是该分区中文件的总大小。您可以使用hadoop fs-ls${path\u to\u partition}检查它。它是以字节为单位的。numRows具有误导性,或者可能是此实用程序中的一个bug谢谢。我认为这应该反映为rawDataSize。如果这就是totalSize的意思,那么rawDataSize应该是什么?
hive> analyze table member partition(day) compute statistics noscan;
Partition mobi_mysql.member{day=20150831} stats: [numFiles=7, numRows=-1, totalSize=4735943322, rawDataSize=-1]
Partition mobi_mysql.member{day=20150901} stats: [numFiles=7, numRows=117512, totalSize=19741804, rawDataSize=0]
Partition mobi_mysql.member{day=20150902} stats: [numFiles=7, numRows=-1, totalSize=17734601, rawDataSize=-1]
Partition mobi_mysql.member{day=20150903} stats: [numFiles=7, numRows=-1, totalSize=13091084, rawDataSize=-1]
OK
Time taken: 2.089 seconds