怎样进行KylinRestfulAPI的使用

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

成都创新互联主要从事做网站、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务日照,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

说明:官网上关于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://:/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://:/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://:/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://:/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://:/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://:/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://:/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://:/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://:/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://:/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://:/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://:/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://:/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的使用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


本文题目:怎样进行KylinRestfulAPI的使用
文章位置:http://csdahua.cn/article/gijpih.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流