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
)