1. 程式人生 > >Apache頂級專案介紹5 - Kylin

Apache頂級專案介紹5 - Kylin

Apache頂級專案介紹5,我們迎來的中國自己的開源,來自本土eBay的頂級專案Kylin。神馬?沒聽過? 別急,放心,Apache的頂級專案各個都身負絕技。

有人問,為什麼突然介紹Kylin,呃,有小夥伴熱情的提及的Kylin,希望來一篇介紹,本人之前有關注瞭解過,但沒有深入研究過,所以我們先學現賣,符合入門介紹篇。

Kylin(麒麟),由eBay研發並貢獻並於2014年10月開源,並於當年11月成為

Apache孵化器專案,是第一個主要由中國團隊完整貢獻給Apache的專案。去年2015年12月,Apache基金會ASF正式批准Kylin為頂級專案。其發展之快可謂迅猛,搭上了基於大資料的OLAP快車,同時也感慨開源之偉大與貢獻。

老樣子,一言已概之,Kylin官網(不敢恭維啊,文件宣傳也要做做啊)介紹說,Kylin是一個開源分散式分析引擎,提供了基於Hadoop的超大型資料集(TB/PB級別)的SQL介面以及多維度的OLAP分散式聯機分析。

上架構圖:


可以看到中華文化之麒麟,贊一下!很清晰的架構圖,底層儲存使用HBase, 資料輸入以及Cube Building基於Hive, 中間資料儲存HDFS, On Top of 核心引擎之上,提供了REST API, SQL Based Toll / JDBC/ODBC等。右邊還有其核心基於HBase的低延遲OLAP Cube;什麼叫低延遲,Kylin官方資料給出數百億行資料查詢延時需要保持在亞秒級別!Niubility!其實得益於HBase.

官網給出了幾個簡單步驟作為事例:

1.從star schema中識別一組Hive表

2.基於Hive表,offline batch構建cube

3.使用sql或者REST API, JDBC, ODBC查詢

Kylin平臺的設計思路其實並非全新,在過去關係資料庫大行其道之日早有,簡單來講其思路就是把預先計算完成的結果儲存起來以備分析查詢, 利用所有可能緯度組合為每個層次生成cuboid(基本方體),又或是在不同層次上對全部指數進行計算。

科普一下,cube作為核心概念,英文叫多維立方體,cube好比一個座標系,每個Dimension代表一個座標系,其每個點的對應值需要從相對應每一個座標軸取值去獲取,這個點cube中稱作cell。

cube的基本概念:緯度於度量

緯度Dimension: 緯度提供了分類,表示一類分析角度,緯度,如時間,產品,地域等。

度量Measure:表示聚合分析的數字資訊,其集合構成另一個特殊緯度,如數量,金額等。


Kylin的一個核心演算法思想:一個n緯的完全Cube,1個n緯子立方體(Cuboid),n個(n-1)緯cuboid, n*(n-1)/2個(n-2)緯cuboid,n個緯cuboid,1個0緯cubid,總共2^n個字立方體組成;暈否?

舉例來說,group by a, b結果,可以基於group by a,b,c的結果,通過去掉c後聚合得來,這樣可以減少重複計算,當0緯度的cuboid計算出來的時候,真個

Cube的計算就大功告成!

拓撲圖:


核心思想,從關係型到key-value。當Hive中資料規模超過百億,萬億水平,一些簡單的問題如查詢2015年銷售額等就會帶來巨大的表掃描,時間也會無法接受。所以cube完全進行預計算,並對結果加以儲存。來個術語叫做:

Relational to Key-Value, KV.

Kylin正是構建在這套理論之上,並且充分借用發揮Hadoop生態系統的威力。

1.從Hive中讀取資料(HDFS)

2.執行offline job Map/Reduce實現預計算處理

3.將運算結果cube儲存到HBase

4.藉助Zookeeper進行任務協調

演算法中充分利用了MapReduce的能力,處理中間的複雜排序以及shuffle。其中對HDFS操作較多,每一層的key-value都需要寫到hdfs,所有計算結束後需要將其轉成HBase的HFile格式並匯入。

好了,看看Kylin的容貌以及如何建立cube吧:


呃,顏值一般般,恰如麒麟啊?

建立cube:

1.建立專案



2.匯入hive

3.建立資料模型


4.建立cube

包括cube info,dimensions,measures等等。

5. offline job


6. Tableau報表整合

Kylin已經在eBay內部生產使用驗證,處理其內部龐大資料集。效能優勢明顯。未來應該會繼續支援更多Hadoop, Spark生態圈,提供快速實時OLAP,以及更多BI工具整合。

好了,我們先到這裡了,感謝前eBay參與開發使用Kylin的資深專家的指導與探討。鑑於現學現賣,各位極客們包涵。我們下一篇繼續大資料三劍客!!!

wechat: erixhao