本文主要是介绍检查HIVE分区是否连续,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
检查HIVE分区是否连续
- 场景描述
- 分区连续性检查语句
我们经常可能会有这样的诉求,需要对一张目标表进行分区检查,查看是否存在不连续的情况,该诉求频繁且重要,因此以下语句可以实现我们的诉求
场景描述
我们有一张表,表名 t_user_info
,分区字段 ds
,分区字段数据类型 String
,分区数据格式 yyyyMMdd
分区连续性检查语句
SELECT ds,rn,date_sub(ds_format, rn)
FROM
(-- 对分区数据进行类型转换SELECT ds,from_unixtime(unix_timestamp(ds, 'yyyyMMdd'), 'yyyy-MM-dd') as ds_format,row_number() over(order by ds asc) rn -- 排序分区,按照ds升序FROM(-- 获取表中的所有分区数据 SELECT dsFROM t_user_info-- 指定分区检查的时间段WHERE ds between '20221231' and '20230924'group by ds) ds_info
) diff_ds_info
limit 1000
;
这篇关于检查HIVE分区是否连续的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!