是否有一个配置单元查询可以快速查找表大小(即行数),而无需启动耗时的mapreduce作业(所以我想避免 COUNT(*) .)我试过了 DESCRIBE EXTENDED ,但结果是 numRows=0 这显然是不正确的。(为新问题道歉。我试着在google上搜索apache.org文档,但没有成功。)
COUNT(*)
DESCRIBE EXTENDED
numRows=0
wixjitnu1#
使用Parquet格式存储外部/内部表的数据。然后你会得到更快的结果。
nkhmeac62#
解决方案,虽然不是很快如果表是分区的,我们可以计算分区的数量和每个分区中的行数。例如:,如果按日期划分(mm dd yyy)
select partition_date, count(*) from <table_name> where <partion_column_name> >= '05-14-2018' group by <partion_column_name>
jgovgodb3#
tblproperty将给出表的大小,如果需要,可以使用它来获取该值。
-- gives all properties show tblproperties yourTableName -- show just the raw data size show tblproperties yourTableName("rawDataSize")
f87krz0w4#
如何使用:
hdfs dfs -du -s -h /path/to/table/name
jfewjypa5#
这是个好问题。count()将花费大量时间来查找结果。但不幸的是,count()是唯一的方法。有一种替代方法(不能说是替代的,但比上述情况更好的延迟):设置属性设置hive.exec.mode.local.auto=true;并运行相同的命令( select count(*) from tbl )它比以前提供更好的延迟。
select count(*) from tbl
4zcjmb1e6#
这是快速命令
ANALYZE TABLE tablename [PARTITION(partcol1[=val1], partcol2[=val2], ...)] COMPUTE STATISTICS [noscan];
例如,如果表已分区
hive> ANALYZE TABLE ops_bc_log PARTITION(day) COMPUTE STATISTICS noscan;
输出为分区logdata.ops\u bc\u log{day=20140523}统计:[numfiles=37,numrows=26095186,totalsize=654249957,rawdatasize=580809507]分区logdata.ops\u bc\u log{day=20140521}统计:[numfiles=30,numrows=21363807,totalsize=564014889,rawdatasize=47556570705]分区logdata.ops\u bc\u log{day=20140524}统计:[numfiles=35,numrows=25210367,totalsize=631424507,rawdatasize=56083164109]分区logdata.ops\u bc\u log{day=20140522}统计:[numfiles=37,numrows=26295075,totalsize=657113440,rawdatasize=58496087068]
6条答案
按热度按时间wixjitnu1#
使用Parquet格式存储外部/内部表的数据。然后你会得到更快的结果。
nkhmeac62#
解决方案,虽然不是很快
如果表是分区的,我们可以计算分区的数量和每个分区中的行数。
例如:,如果按日期划分(mm dd yyy)
jgovgodb3#
tblproperty将给出表的大小,如果需要,可以使用它来获取该值。
f87krz0w4#
如何使用:
jfewjypa5#
这是个好问题。count()将花费大量时间来查找结果。但不幸的是,count()是唯一的方法。
有一种替代方法(不能说是替代的,但比上述情况更好的延迟):
设置属性
设置hive.exec.mode.local.auto=true;
并运行相同的命令(
select count(*) from tbl
)它比以前提供更好的延迟。4zcjmb1e6#
这是快速命令
例如,如果表已分区
输出为
分区logdata.ops\u bc\u log{day=20140523}统计:[numfiles=37,numrows=26095186,totalsize=654249957,rawdatasize=580809507]
分区logdata.ops\u bc\u log{day=20140521}统计:[numfiles=30,numrows=21363807,totalsize=564014889,rawdatasize=47556570705]
分区logdata.ops\u bc\u log{day=20140524}统计:[numfiles=35,numrows=25210367,totalsize=631424507,rawdatasize=56083164109]
分区logdata.ops\u bc\u log{day=20140522}统计:[numfiles=37,numrows=26295075,totalsize=657113440,rawdatasize=58496087068]