0
点赞
收藏
分享

微信扫一扫

Hive获取最大分区MaxPartition#yyds干货盘点#

add jar xxx/mysql-connector-java-5.1.40.jar;
add jar xxx/HiveUdfs.jar;
create temporary function MaxPartition as 'org.hive.wh.udf.MaxPartition';
select * from dm.dm_table where dt=MaxPartition('dm.dm_table') 
show partitions ods.ods_table;   --- dt=2022072600

最大分区: 在处理小时任务的时候,对于某些小事任务处理时间超过一个小时以上(例如:ds_table)跨了一个小时, 同时对其取的数据指标实时性没有严格的要求, 可以采用取当前数据的最大分区 实现方式: 注册函数实现

--添加jar包、注册函数,使用函数
add jar xxx/mysql-connector-java-5.1.40.jar;
add jar xxx/HiveUdfs.jar;
create temporary function MaxPartition as 'org.hive.wh.udf.MaxPartition';

select
*
from dm.dm_table
where dt = MaxPartition("dm.dm_table")

2.sql子查询实现

--hive sql 使用IN, presto 使用 = (等号) 
SELECT  *
FROM dm.dm_table
WHERE dt IN ( 
	SELECT  distinct dt
	FROM dm.dm_table
	ORDER BY dt desc
	LIMIT 1
)

SELECT  *
FROM dm.dm_table
WHERE dt = ( 
	SELECT  distinct dt
	FROM dm.dm_table
	ORDER BY dt desc
	LIMIT 1
)
举报

相关推荐

0 条评论