#!/bin/sh
# ==============================
# 填补历史缺失数据
# ==============================
datebeg="20180427"
dateend="20180523"
hour_arr=("00" "01" "02" "03" "04" "05" "06" "07" "08" "09" "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" "20" "21" "22" "23")
beg_date=`date -d "$datebeg" +%s`
end_date=`date -d "$dateend" +%s`
for (( i=${beg_date};i<=${end_date};i=i+86400))
do
cur_year=`date -d @${i} +"%Y"`;
cur_month=`date -d @${i} +"%m"`;
cur_day=`date -d @${i} +"%d"`;
for var in ${hour_arr[@]};
do
cmd="alter table xxx.table_name
add partition(year='${cur_year}',month='${cur_month}',day='${cur_day}',hour='${var}')
location '/hdp/data/${cur_year}/${cur_month}/${cur_day}/${var}/';"
echo $cmd >> exe.sql
hive -e "$cmd"
done
done
exit 0;
遍历指定日期区间内的所有 日期,小时,拼接 hql 语句,输出到文件