hive中,需要每天定时跑一些sql的脚本或者其他脚本,可以通过调用sh脚本
1.新建一个sh文件
[root@master log]# vim wh_hive_daily.sh
2.添加以下内容 (可以直接复制,然后修改sql里面的内容即可)
#!/bin/bash APP=uiopdb hive=/opt/soft/hive/bin/hive if [-n $1] ;then do_date=$1 else do_date=`date -d "-1 day" +%F` fi sql=" insert into uiopdb.sx_trade_his_detail partition(dt='$do_date') select a.* from uiopdb.sx_trade_his a where date_format(trade_time,'yyyy-MM-dd')='$do_date'; " $hive -e "$sql" >>/opt/soft/hive/job/upy/log/log.$do_date
其中:
在调用脚本时,如果不指定参数,就可以直接默认昨日时间(用于正常每天运行)
如果需要指定某一天的日期时,在调用脚本时,指定其时间即可
还有,>>/opt/soft/hive/job/upy/log/log.$do_date 这个日志可以不写
正常运行昨日数据
[root@master upy]# wh_hive_daily.sh
指定日期
[root@master upy]# wh_hive_daily.sh 2021-07-28