写个shell脚本Hive 按时间定期插入分区表,由于今天统计的是昨天的数据所以日期减一。
#!/bin/bash
ds=`date -d '-1 day' "+%Y-%m-%d"`
#如果某天的数据有误需要重跑 千万注意shell脚本中的空格问题
if [ $1 ];then
ds=$1
fi
SQL="insert overwrite table table_name partition(dt='"${ds}"') select xxx,xxxx from (select xxx,xxx,xx from table where dt='"${ds}"') a join (selcect xx,xx,xxx from table where dt='"${ds}"') b on (a.xx=b.xx)"
echo "${SQL}"
hive -e "use database_name;${SQL};exit;"