Kylin 实现每日自动构建 Cube

Kylin 每日自动构建 Cube

打开Kylin 官网文档
https://kylin.apache.org/cn/docs31/howto/howto_use_restapi.html

点击Query
在这里插入图片描述

复制如下语句:
在这里插入图片描述
点击 Authentication
在这里插入图片描述
将此行命令复制到Linux下:

在这里插入图片描述

python -c "import base64; print base64.standard_b64encode('ADMIN:KYLIN')"

在这里插入图片描述复制上面的授权码

修改后得到如下内容:

curl -X POST -H "Authorization: Basic QURNSU46S1lMSU4=" -H "Content-Type: application/json" -d '{ "sql":"select dname,sum(sal) from emp e join dept d on e.deptno = d.deptno group by dname;", "project":"Kylin_Prooject" }' http://hadoop102:7070/kylin/api/query

在这里插入图片描述

运行之后得到如下图:
在这里插入图片描述
将内容json格式化校验,返回的结果如下:

在这里插入图片描述

点击Build Cube
在这里插入图片描述
复制如下内容:

在这里插入图片描述

curl -X PUT -H "Authorization: Basic QURNSU46S1lMSU4=" -H 'Content-Type: application/json' -d '{"startTime":'1423526400000', "endTime":'1423612800000', "buildType":"BUILD"}' http://hadoop102:7070/kylin/api/cubes/Kylin_Cube_Test/build

Kylin 提供了 Restful API,因次我们可以将构建 cube 的命令写到脚本中,将脚本交给azkaban 或者 oozie 这样的调度工具,以实现定时调度的功能。

kylin_cube_build.sh 脚本如下:

#!/bin/bash
#从第 1 个参数获取 cube_name
cube_name=$1 #从第 2 个参数获取构建 cube 时间
if [ -n "$2" ]
then
	do_date=$2
else
	do_date=`date -d '-1 day' +%F`
fi
#获取执行时间的 00:00:00 时间戳(0 时区)
start_date_unix=`date -d "$do_date 08:00:00" +%s`
#秒级时间戳变毫秒级
start_date=$(($start_date_unix*1000))
#获取执行时间的 24:00 的时间戳
stop_date=$(($start_date+86400000))

注:我们没有修改 kylin 的时区,因此 kylin 内部只识别 0 时区的时间,0 时区的 0 点是东 8 区的早上 8 点,因此我们在脚本里要写$do_date 08:00:00 来弥补时差问题。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值