您好,登錄后才能下訂單哦!
怎樣進(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)知識。
免責(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)容。