怎样进行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的使用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。