在自动调度系统没有建设成熟的环境里,数据分析师如果要提取历史很长一段时间数据,且代码比较复杂,常规操作需要我们手动执行;但是借助shell传参给hive,可以实现hive自动循环跑数,减少手动执行,大幅提升效率。
以下两段code为例,说明一下跑数时间长度为每天和时间长度为一段时间两种执行情况。
1、跑数时间为每天
start_date=20180101
end_date=20180131
while [[ $start_date < $end_date ]]
do
date=`date -d "$start_date" +"%Y-%m-%d"`
hive -e"
use app;
insert into table app_daren_pc_day_active_user
select dt,browser_uniq_id,user_log_acct
from online_log
where dt='${date}'
group by dt,browser_uniq_id,user_log_acct
;"
echo "$date执行完毕"
start_date=`date -d "+1 day $date" +"%Y-%m-%d"`
done;
2、跑数时间为时间段
start_date=20190301
end_date=20190320
while [[ $star