Hive查询问题
快速查询hive数据仓库表中的总条数
https://blog.csdn.net/BDCHome/article/details/46965335
需要连接hive的元数据(mysql)
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='dwi_evt_blog_dpi_keywords_info_msk_d' and d.NAME='dwi_m' and a.PARAM_KEY='numRows';
快速从Hive表里取数据的办法
select * from dwi_evt_blog_dpi_keywords_info_msk_d limit 10
使用简单的随机数范围取数据
select a.* from (select a.*, rand(100) as random from dwi_evt_blog_dpi_keywords_info_msk_d a)a where random between 0 and 10;
https://www.cnblogs.com/zzjhn/p/9829202.htmls
五. limit 语句快速出结果
一般情况下,Limit语句还是需要执行整个查询语句,然后再返回部分结果。
有一个配置属性可以开启,避免这种情况---对数据源进行抽样
hive.limit.optimize.enable=true --- 开启对数据源进行采样的功能
hive.limit.row.max.size --- 设置最小的采样容量
hive.limit.optimize.limit.file --- 设置最大的采样样本数
缺点:有可能部分数据永远不会被处理到
优化前:
优化后: