首页 > 代码库 > 高速查询hive数据仓库表中的总条数
高速查询hive数据仓库表中的总条数
Author: kwu
高速查询hive数据仓库中的条数。在查询hive表的条数,通常使用count(*)。可是数据量大的时候,mr跑count(*)往往须要几分钟的时间。
1、传统方式获得总条数例如以下:
select count(*) from ods.tracklog;
执行时间为91.208s
2、与关系库一样hive表也能够通过查询元数据来得到总条数:
select d.NAME,t.TBL_NAME,t.TBL_ID,p.PART_ID,p.PART_NAME,a.PARAM_VALUE from TBLS t left join DBS d on t.DB_ID = d.DB_ID left join PARTITIONS p on t.TBL_ID = p.TBL_ID left join PARTITION_PARAMS a on p.PART_ID=a.PART_ID where t.TBL_NAME=‘tracklog‘ and d.NAME=‘ods‘ and a.PARAM_KEY=‘numRows‘; select FORMAT(sum(a.PARAM_VALUE),0) from TBLS t left join DBS d on t.DB_ID = d.DB_ID left join PARTITIONS p on t.TBL_ID = p.TBL_ID left join PARTITION_PARAMS a on p.PART_ID=a.PART_ID where t.TBL_NAME=‘tracklog‘ and d.NAME=‘ods‘ and a.PARAM_KEY=‘numRows‘;
仅仅需0.071s就可以返回
3、说明通过hive元数据的查询总条数,仅仅适用于有partition的表,我们正式表基本都是有partition的,仅仅有部分小表。小于1万条的没有partition,这样的小表count(*)是很快的。
高速查询hive数据仓库表中的总条数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。