怎样进行Kylin Restful API的使用

发布时间:2021-11-10 09:25:01 作者:柒染
来源:亿速云 阅读:248

怎样进行Kylin Restful API的使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

说明:官网上关于Restful API Response部分介绍倒是很详细,但Request部分却很简单,有些没有举例说明,笔者在进行restful接口开发时刚开始很是懵逼,而我们当然更在意如何发请求去访问Kylin,这样拿到的Response也才有意义。这篇文章着重举例说明下如何使用Restful API访问Kylin(结构与官网保持一致)。

1. Query  |  Authentication

官网:有举例。

API说明:进行认证。

笔者刚开始这里有点晕,一时没看懂它的权限验证是什么意思。这里简单说明一下:

第一次访问时:

curl -c /path/to/cookiefile.txt -X POST \

-H "Authorization: Basic XXXXXXXXX" \

-H 'Content-Type: application/json' \

http://<host>:<port>/kylin/api/user/authentication

第二次访问时:

curl -b /path/to/cookiefile.txt -X PUT  \

-H 'Content-Type: application/json'  \

-d '{"startTime":'1423526400000',  \

 "endTime":'1423526400',  \

 "buildType":"BUILD"}'   \

http://<host>:<port>/kylin/api/cubes/your_cube/build 

这里有点像kerberos认证:先为每个用户生成一个keytab文件,而后用户就可以通过这个keytab文件去进行登录访问,当然原理是不一样的。第一次访问Kylin时,要进行认证操作,通过Authorization头,传入一个base64编码后的值,通常是对“用户名:密码”进行编码后传入,然后会生成一个cookie文件保存在本地,即cookiefile.txt 。当第二次登录时,不必再进行认证,只需通过指定这个cookie文件即可访问Kylin(指定Authorization头当然也可以访问Kylin)。

Authorization值可通过如下代码获取:

byte[] key = ("ADMIN:KYLIN").getBytes();

encoding = new sun.misc.BASE64Encoder().encode(key);

可得到:encoding = "QURNSU46S1lMSU4="

然后通过 -H "Authorization: Basic QURNSU46S1lMSU4=" 进行访问

2. Query  |  Query

官网:有举例。

API说明:执行所有查询语句。

3. Query  |  List queryable tables

API说明:列出指定项目下可查询的表

API举例说明:

curl -X GET -H "Content-Type: application/json"   \

-H "Authorization: Basic QURNSU46S1lMSU4="   \

http://<host>:<port>/kylin/api/tables_and_columns?project=projectName

4. CUBE  |  List cubes

API说明:列出符合条件的cube信息

API举例说明:

a.列出所有项目所有的cube信息(limit=15)

curl -vi  -X  GET  \

-H "Authorization: Basic QURNSU46S1lMSU4="  \

-H "Content-Type: application/json"  \

http://<host>:<port>/kylin/api/cubes?limit=15&offset=0

b.列出所有项目下cubeName=xxxx的cube信息

curl -vi  -X  GET \

-H "Authorization: Basic QURNSU46S1lMSU4="  \

-H "Content-Type: application/json"  \

http://<host>:<port>/kylin/api/cubes?cubeName=xxxx&limit=15&offset=0

注:cubeName参数必须写在limit和offset前,否则失效

c.列出指定项目下所有的cube信息

curl -vi  -X  GET  \

-H "Authorization: Basic QURNSU46S1lMSU4="  \

-H "Content-Type: application/json"  \

http://<host>:<port>/kylin/api/cubes?projectName=xxxx&limit=15&offset=0

注:projectName参数必须写在limit和offset前,否则失效

d.cubeName与projectName为可选项,哪个在前哪个生效

curl -vi  -X  GET  \

-H "Authorization: Basic QURNSU46S1lMSU4="   \

-H "Content-Type: application/json"   \

http://<host>:<port>/kylin/api/cubes?cubeName=xxxx& \

projectName=xxxx&limit=15&offset=0

5. CUBE  |  Get Cube

API说明:获取指定cube信息

API举例说明:

curl -vi -b /home/cookiefile.txt -X GET  \

-H "Content-Type: application/json"  \

http://<host>:<port>/kylin/api/cubes?cubeName=xxxx

6. CUBE  |  Get cube descriptor

API说明:获取指定cube的描述信息

API举例说明:

curl -vi -b /home/cookiefile.txt -X GET  \

-H "Content-Type: application/json"   \

http://<host>:<port>/kylin/api/cube_desc/{cubeName}


7. CUBE  |  Get data model

API说明:获取指定model的信息

API举例说明:

curl -vi -b /home/cookiefile.txt -X GET  \

-H "Content-Type: application/json"   \

http://<host>:<port>/kylin/api/model/{modelName}

8. CUBE  |  Build cube

API说明:构建cube

API举例说明:官网有案例

注:PUT /kylin/api/cubes/{cubeName}/build与PUT /kylin/api/cubes/{cubeName}/rebuild测试均可。

9. CUBE  |  Enable Cube

API说明:使已构建的cube不可用

API举例说明:


curl -X PUT  \

-H "Authorization: Basic QURNSU46S1lMSU4="  \

-H 'Content-Type: application/json'  \

http://<host>:<port>/kylin/api/cubes/{cubeName}/enable


10. CUBE  |  Disable Cube

API说明:恢复不可用cube为可用

API举例说明:


curl -X PUT \

-H "Authorization: Basic QURNSU46S1lMSU4="  \

-H 'Content-Type: application/json'  \

http://<host>:<port>/kylin/api/cubes/{cubeName}/disable


11. CUBE  |  Purge Cube

API说明:清空cube所有数据

API举例说明:

curl -X PUT \

-H "Authorization: Basic QURNSU46S1lMSU4="  \

-H 'Content-Type: application/json'  \

http://<host>:<port>/kylin/api/cubes/{cubeName}/purge

注:purge前必须先disable,purge后只是删除了元数据,表并没有被删除。

12. 删除无用的segment

API说明:官网上没有,Google好久才找到,当错误build一个cube时,可使用此API。

API举例说明:

curl -vi -b /home/cookiefile.txt  \

-XDELETE -H "Content-Type: application/json"  \

关于怎样进行Kylin Restful API的使用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

推荐阅读:
  1. 如何使用flask进行Restful的CRUD
  2. springboot+dubbo+validation 进行rpc参数校验的实现方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

kylin restful api

上一篇:ORACLE中如何使用Programs

下一篇:Django中的unittest应用是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》