溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎樣進(jìn)行Kylin Restful API的使用

發(fā)布時間:2021-11-10 09:25:01 來源:億速云 閱讀:249 作者:柒染 欄目:大數(shù)據(jù)

怎樣進(jìn)行Kylin Restful API的使用,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

說明:官網(wǎng)上關(guān)于Restful API Response部分介紹倒是很詳細(xì),但Request部分卻很簡單,有些沒有舉例說明,筆者在進(jìn)行restful接口開發(fā)時剛開始很是懵逼,而我們當(dāng)然更在意如何發(fā)請求去訪問Kylin,這樣拿到的Response也才有意義。這篇文章著重舉例說明下如何使用Restful API訪問Kylin(結(jié)構(gòu)與官網(wǎng)保持一致)。

1. Query  |  Authentication


官網(wǎng):有舉例。

API說明:進(jìn)行認(rèn)證。

筆者剛開始這里有點(diǎn)暈,一時沒看懂它的權(quán)限驗證是什么意思。這里簡單說明一下:

第一次訪問時:

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 

這里有點(diǎn)像kerberos認(rèn)證:先為每個用戶生成一個keytab文件,而后用戶就可以通過這個keytab文件去進(jìn)行登錄訪問,當(dāng)然原理是不一樣的。第一次訪問Kylin時,要進(jìn)行認(rèn)證操作,通過Authorization頭,傳入一個base64編碼后的值,通常是對“用戶名:密碼”進(jìn)行編碼后傳入,然后會生成一個cookie文件保存在本地,即cookiefile.txt 。當(dāng)?shù)诙蔚卿洉r,不必再進(jìn)行認(rèn)證,只需通過指定這個cookie文件即可訪問Kylin(指定Authorization頭當(dāng)然也可以訪問Kylin)。

Authorization值可通過如下代碼獲?。?/p>

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

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

可得到:encoding = "QURNSU46S1lMSU4="

然后通過 -H "Authorization: Basic QURNSU46S1lMSU4=" 進(jìn)行訪問

2. Query  |  Query

官網(wǎng):有舉例。

API說明:執(zhí)行所有查詢語句。

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參數(shù)必須寫在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參數(shù)必須寫在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說明:構(gòu)建cube

API舉例說明:官網(wǎng)有案例

注:PUT /kylin/api/cubes/{cubeName}/build與PUT /kylin/api/cubes/{cubeName}/rebuild測試均可。

9. CUBE  |  Enable Cube

API說明:使已構(gòu)建的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說明:恢復(fù)不可用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所有數(shù)據(jù)

API舉例說明:

curl -X PUT \

-H "Authorization: Basic QURNSU46S1lMSU4="  \

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

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

注:purge前必須先disable,purge后只是刪除了元數(shù)據(jù),表并沒有被刪除。

12. 刪除無用的segment

API說明:官網(wǎng)上沒有,Google好久才找到,當(dāng)錯誤build一個cube時,可使用此API。

API舉例說明:

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

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

關(guān)于怎樣進(jìn)行Kylin Restful API的使用問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI