kylin 使用RESTful API 请求

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kylin 使用RESTful API 请求相关的知识,希望对你有一定的参考价值。

      目前根据Kylin的官方文档介绍,Kylin的认证是basic authentication,加密算法是Base64,在POST的header进行用户认证
我使用的用户和密码是(格式:username:password) :ADMIN:KYLIN 使用Base64编码后结果为QURNSU46S1lMSU4=
1、在Linux环境下
     curl -c cookiefile.txt -X POST -H "Authorization: Basic QURNSU46S1lMSU4="-H ‘Content-Type: application/json‘http://10.8.217.66:7070/kylin/api/user/authentication

     在执行的目录下会生成cookiefile.txt 文件,内容是:

技术分享

 

返回结果:

{
    "userDetails":{
        "password":null,
        "username":"ADMIN",
        "authorities":[
            {
                "authority":"ROLE_ADMIN"
            },
            {
                "authority":"ROLE_ANALYST"
            },
            {
                "authority":"ROLE_MODELER"
            }
        ],
        "accountNonExpired":true,
        "accountNonLocked":true,
        "credentialsNonExpired":true,
        "enabled":true
    }
}

 如果登录成功,JSESSIONID将被保存到cookie文件中; 在随后的http请求中,附加cookiefile.txt 文件就可以了,不需要每次都认证,

 相当于在浏览器下访问后,留下的cookis信息。  如:

curl -b 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
您可以在命令中提供用户名/密码选项“用户”; 请注意,这在shell历史中有密码泄露的风险
curl -X PUT --user ADMIN:KYLIN -H "Content-Type: application/json;charset=utf-8" -d ‘{ "startTime": 820454400000, "endTime": 821318400000, "buildType": "BUILD"}‘ http://<host>:<port>/kylin/api/cubes/kylin_sales/build

查询项目下的表数据

curl -X POST -H "Authorization: Basic QURNSU46S1lMSU4=" -H "Content-Type: application/json" -d ‘{ "sql":"select count(*) from TEST_KYLIN_FACT", "project":"learn_kylin" }‘http://<host>:<port>/kylin//api/query

你可能觉得这个方式不好,写这么多,没有关系,你也可以通过代码实现,使用JDBC访问方式。如果仅仅为了看数据,也可以使用PostMan来看数据。

2、POSTMAN 方式查看或者请求

首先必须知道你用什么用户名和密码去访问Kylin,所以Header信息必须要带。

   Authorization:Basic QURNSU46S1lMSU4=
   Content-Type: application/json;charset=UTF-8


 

1、查看Cube信息
get:http://10.8.217.66:7070/kylin/api/cubes?cubeName=kylin_sales_cube&limit=15&offset=0

技术分享

2、列出当前项目的表和列

技术分享

 

3、SQL 查询语句请求
post:http://10.8.217.66:7070/kylin/api/query

{
"sql":"select * from KYLIN_SALES",
"offset":0,
"limit":50000,
"acceptPartial":false,
"project":"learn_kylin"
}

4、列出所以Cubes信息
get:http://10.8.217.66:7070//kylin/api/cubes

5、GET http://10.8.217.66:7070/kylin/api/cubes/kylin_sales_cube
6、GET http://10.8.217.66:7070/kylin//api/cube_desc/{cubeName}


参考详见:
http://kylin.apache.org/docs20/howto/howto_use_restapi.html#build-cube
http://kylin.apache.org/docs20/howto/howto_build_cube_with_restapi.html




以上是关于kylin 使用RESTful API 请求的主要内容,如果未能解决你的问题,请参考以下文章

Kylin Java RESTful API

GO语言(十三):使用 Go 和 Gin 开发 RESTful API(下)

Kylin实战—— REST API演示和Kylin_JDBC演示代码

http 的 restful api 的 put 请求,参数放在哪儿?

如何使用Retrofit请求非Restful API

使用 python 向 RESTful API 发出请求