如何利用API构建Cube更新Kylin数据

思路: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 就好了,简单方便!

你可能感兴趣的:(如何利用API构建Cube更新Kylin数据)