Hive 快速查询DB下的表及行数 |
您所在的位置:网站首页 › hive查表 › Hive 快速查询DB下的表及行数 |
Hive的元数据信息存储在元数据库里面,因此可以通过元数据库来快速统计表及数据量的情况,这里以元数据库为MySQL为例,可以通过以下SQL命令快速获取, 以下SQL需要先进入MySQL元数据库中执行 select c.NAME, a.TBL_NAME, b.PARAM_KEY, b.PARAM_VALUE from hive.TBLS as a join hive.TABLE_PARAMS as b join hive.DBS c where a.TBL_ID = b.TBL_ID and a.DB_ID = c.DB_ID and c.NAME IN ('bas','dma','mdb') and b.PARAM_KEY = 'numRows';样例输出如下, +------+---------------------------------------+-----------+-------------+ | NAME | TBL_NAME | PARAM_KEY | PARAM_VALUE | +------+---------------------------------------+-----------+-------------+ | bas | syn_a_organ | numRows | 0 | | bas | syn_code_entpostcode | numRows | 0 | | bas | syn_code_enttypecode | numRows | 0 | | bas | syn_code_invstycode | numRows | 0 | | bas | syn_code_invtypecode | numRows | 0 | | bas | syn_code_natcode | numRows | 0 | 。。。除了这种方式,我们也可以通过Hue,或者用脚本的方式查询每个表的数据量,具体可以参考博客 hive里如何快速查看表中有多少记录数 不过,既然是从元数据表中获取,就涉及到数据准确性的问题,numRows保存的是表的统计信息数据,如果统计信息不更新,那么这个值可能也就不够准确,如果希望统计尽可能准确,建议先对表进行更新统计信息的动作,更新统计信息要注意区别表是分区表还是非分区表,主要命令为: 以下命令从Hive shell下面执行 --非分区 表 analyze table mdb.tmp_e_sm_baseinfo_special_3 compute statistics; --分区表,单字段 ANALYZE TABLE dma.tmp_bh_e_ms_sum_d PARTITION(stat_date_p='20140922') COMPUTE STATISTICS; --分区表,多字段 ANALYZE TABLE dma.tmp_bh_e_ms_sum_m PARTITION(stat_date_p='201711',idx_no1='MONTH_02') COMPUTE STATISTICS; |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |