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

hive 定时执行脚本_hive