kylin從入門到實戰(zhàn):實際案例

版權申明:轉載請注明出處。
文章來源:http://bigdataer.net/?p=308

排版亂?請移步原文獲得更好的閱讀體驗

前面兩篇文章已經(jīng)介紹了kylin的相關概念以及cube的一些原理,這篇文章將從一個實際的案例入手,介紹如何在kylin平臺上創(chuàng)建一個多維分析項目。

1.創(chuàng)建project

進入kylin操作界面,如果沒有project可以創(chuàng)建,kylin里面可以創(chuàng)建多個project,有效的把各種業(yè)務數(shù)據(jù)分析隔離開來。如圖:


project

如下,填寫project name,description可以不填


project

然后submit 提交,project創(chuàng)建成功。

2.添加數(shù)據(jù)源

點擊DataSource選項卡->Load Hive Table


ds

填寫hive表名,前面加上庫名


ds

然后點擊sync,導入數(shù)據(jù)源成功,可以看到如下信息:
ds

3.創(chuàng)建model

model

添加model name然后 next


model

選擇剛才添加到數(shù)據(jù)源中的事實表,如果有Lookup Table也可添加,然后next


model

選擇需要的維度
model

選擇需要的指標
model

相關設置


model

partition date colume表示分區(qū)字段,選擇hive表中按時間分區(qū)的字段。然后從date format中選擇不同的時間格式。最下面的filter可以添加where條件對數(shù)據(jù)源中的數(shù)據(jù)做過濾。
至此,model創(chuàng)建完成。

4.創(chuàng)建cube

下面進入關鍵環(huán)節(jié)創(chuàng)建cube。
類似于創(chuàng)建model,創(chuàng)建cube。選擇之前創(chuàng)建好的model,并填入cube name。notification email list是選填項,表示報警接收人郵件地址,多個郵件地址以逗號隔開。

cube

然后next。選擇dimession,有兩種方式:一是手動添加dimession,二是使用自動生成,我們這里使用自動生成,然后勾選需要的字段。
cube

cube

然后next,選擇指標
cube

count(1)是系統(tǒng)默認自帶的,不要刪除。
點擊+號添加需要的指標,需要填入名稱,選擇表達式。這里選擇的是sum。我們要針對disp加和求pv,在param value里面選擇disp列。
需要注意的是kylin中hive表中每一列字段的類型要求比較嚴格。dimession字段需要為String,用來加和的指標字段須為bigint或者decimal
添加了所有需要的指標后,點擊next
cube

設置merge時間。Kylin每次build會生成一張hbase表,merge操作會把多天數(shù)據(jù)合并成一張新的hbase表??杉涌觳樵儭?br> 設置partition Start Date,即數(shù)據(jù)源開始時間,默認為1970-01-01.點擊Next.
cube

Mandatory Dimensions:每次查詢均會使用的維度可添加在此。比如某些情況下的partition column.
Hierarchy Dimensions:維度列中彼此間存在層級關系的列,比如“國家-省份-市-縣”
Joint Dimensions:每次查詢會同時使用或不使用的維度組合。
Aggregation Group:在不同的查詢中,兩組維度組合之間不會產(chǎn)生交叉,可選擇此選項,比如所有的cube維度有 [ a,b,c,d,e,f ] 6個,每次查詢中只會同時查與 [ a,b,c ] 相關的信息(比如[a],[a,c]等)而不會查詢 [ d,e,f ],或者相反,則可選擇此選項。
以上選擇均可減少build過程中的數(shù)據(jù)量,是加快build與query速度的優(yōu)化點之一。
接下來基本上就是next,然后保存,如果沒有報錯,則證明cube創(chuàng)建成功,如下圖
cube

5.cube其他操作

最常用的就是build操作,它會根據(jù)我們創(chuàng)建的cube進行數(shù)據(jù)的預計算。


build

選擇構建的終止時間,然后提交,之后可以在monitor中看到cube構建的狀態(tài)。


build

其他操作說明:
Drop:丟棄現(xiàn)有cube,條件:無Pending, Running, Error 狀態(tài)的job.

Edit:編輯現(xiàn)有cube,條件:cube需處于disable狀態(tài)。
Refresh:重建某已有時間段數(shù)據(jù),針對于已build時間段的源數(shù)據(jù)發(fā)生了改變的情況。
Merge:手動觸發(fā)merge操作。
Enable:使擁有至少一個有效segment的cube從disable變?yōu)閑nable狀態(tài)。
Purge:清空所有該cube的數(shù)據(jù)。
Clone:克隆一個新的cube,可設置新的名字,其他相關配置與原cube相同。
Disable:使一個處于ready狀態(tài)的cube變?yōu)镈isable狀態(tài),查詢不會從disable的cube中獲取數(shù)據(jù)。

6.查詢操作

數(shù)據(jù)預計算完成后就可以進行查詢了,查詢過程中也可以驗證cube創(chuàng)建的是否有問題。有兩種查詢方式:一種是通過kylin的web界面,一種是使用kylin提供的rest api。下面分別介紹。
(1)web查詢。進入insight,輸入sql語句,等待查詢結果,和一般的數(shù)據(jù)庫客戶端類似。
(2)rest api。舉例如下:
假如需要查詢的sql語句為:“select sum(disp) as pv from t_table group by td,bd”
kylin賬戶的賬號密碼為:“kylinid:passwd”,對其進行base64加密。secret=echo -n “kylin_id:password” | base64
使用的project為:my_kylin_project
接口地址為:http://localhost:7070/kylin/api/query
則請求為:

curl -X POST -H "Authorization:Basic ${secret}" -H "Content-Type:application/json" -d '{ "sql" : "select sum(disp) as pv from t_table group by td,bd", "project" : "my_kylin_project" }' http://localhost:7070/kylin/api/query

更多文章請關注微信公眾號:bigdataer

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • Kylin知識整理與歸納 1. kyliy的介紹及說明 Apache Kylin是一個開源的分布式分析引擎,提供H...
    哎喲喂嘍閱讀 2,587評論 0 1
  • “麒麟出沒,必有祥瑞?!薄?中國古諺語 前言 隨著移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)等技術的發(fā)展,近些年人類所積累的數(shù)據(jù)正在呈爆...
    柴詩雨閱讀 33,210評論 12 86
  • 這句話對于曾看過friends(老友記)的80后和90后而言,應該不陌生。 《老友記》里當羅斯剛交了女友茱莉以后,...
    昭陽2017閱讀 29,562評論 11 19
  • 記得剛剛和她戀愛時,她說要永遠和我在一起,可后來我工作忙加上我偷偷的買房子,那時她剛剛實習,我也剛剛畢業(yè)沒多久,我...
    你的愛Imnot閱讀 242評論 0 0

友情鏈接更多精彩內(nèi)容