思路:kylin提供了api来创建job,详情可以参考:http://kylin.apache.org/cn/docs/howto/howto_use_restapi.html#build-cube
由于我这是写了个通用的sh来作为kylin cube的job调度的,所以需要在sh后面传入job name参数,如:kylin上有个aa的cube,那调度的时候执行 ./test.sh aa 就相当于在跑aa 的cube数据了。
aa.sh 内容如下:
#!/bin/bash
if [ $# -lt 2 ];then
_YYYY_MM_DD=$(date +%Y-%m-%d -d "0 days ago")
job_name=$1
else
_YYYY_MM_DD=$1
_YYYY_MM_DD=`date -d "${_YYYY_MM_DD} -1 days ago" "+%Y-%m-%d"`
job_name=$2
fi
echo $1
echo $2
echo $job_name
start_time=$(date -d "${_YYYY_MM_DD} 00:00:00" +%s)"000"
#时间需要转成1542902400000格式
date_time=`date -d "${_YYYY_MM_DD} -1 days ago" "+%Y-%m-%d"`
end_time=$(date -d "$date_time 00:00:00" +%s)"000"
echo $_YYYY_MM_DD
echo $date_time
echo $start_time
echo $end_time
curl -c /home/liuxh/cookiefile.txt -X POST -H "Authorization: Basic QURNSU46S1lMSU4=" -H 'Content-Type: application/json' http://192.168.1.111:7070/kylin/api/user/authentication
#生成cookiefile文件
curl -b /home/liuxh/cookiefile.txt -X PUT -H 'Content-Type: application/json' -d '{"startTime":'$start_time', "endTime":'$end_time', "buildType":"BUILD"}' http://192.168.1.111:7070/kylin/api/cubes/$job_name/rebuild
#时间参数start_time,end_time ;cube名 job_name
每天更新增量数据就运行这个aa.sh xxx_cube 就好了,简单方便!
网友评论