因为直接select max(dt) from hiveTab会占用较多资源并且速度很慢,执行show partitions hiveTab然后通过shell可以避免执行mr快速获取最大分区。
# 获取分区列表(按时间倒序)
partitions=$(hive -e "SHOW PARTITIONS $hiveTab" | sort -r)
# 筛选出最大分区时间
max_part=$(echo $partitions | awk '{print $1}' | sed "s/$partition_columns=//g")