目前是在做数仓,有个需求就是要展示ods层的总数据量,需要拿到每个表的总行数,如果每张表都要计算的话效率太低,所以想通过表的元数据拿到表的总行数,再做一个累加。前期是因为大量的业务表都存在mysql中,现在全部通过sqoop迁移到了hadoop平台,但是后来通过desc formatted查询的的时候发现里面的numRows是0,就非常不解,后来去各处查找资料发现是因为Hive表的统计信息未被正确更新所导致的,需要手动更新Hive表的统计信息。
命令如下:
1. 非分区表
analyze table 表名 compute statistics;
2. 分区表
analyze table 表名 partition(分区字段) compute statistics;