可擴充套件超快OLAP引擎 Kylin

2021-09-16 13:01:21 字數 1744 閱讀 5383

kylin沿用了原來的資料倉儲技術中的cube概念,把無限資料按有限的維度進行「預處理」,然後將結果(cube)載入到hbase裡,供使用者查詢使用。

kylin是通過空間換時間的方式,實現在亞秒級別延遲的情況下,對hadoop上的大規模資料集進行互動式查詢,kylin通過預計算,把計算結果集儲存到hbase中,原有的基於行的關係模型被轉化為基於鍵值對的列式儲存,通過維度組合作為hbase的rowkey,在查詢訪問時不再需要昂貴的表掃瞄,這為高速高併發分析帶來了可能;kylin提供了標準sql查詢介面,支撐大多數的sql函式,同時也支援odbc/jdbc的方式和主流的bi產品無縫整合。

kylin的工作原理

1、指定資料模型,定義維度和度量

2、預計算cube,計算所有cuboid並儲存為物化檢視

3、執行查詢時,讀取cuboid,運算,產生查詢結果。

kylin的的主要特點

1、標準sql介面

2、支援超大資料集

3、亞秒級響應

4、可伸縮性和高吞吐率

5、bi及視覺化工具整合

幾個核心概念

資料倉儲:(data warehouse):大量歷史性資料資料。

olap:聯機分析處理,以多維度的方式分析資料,而且能夠彈性的提供上捲、下鑽和透視分析等操作。區別於聯機交易處理(oltp):更側重於日常事務處理,增刪改查。

bi:商業智慧型

維度與度量:維度是指審視資料的角度,通常是資料記錄的乙個屬性,eg:時間、地點等,度量是基於資料所計算出來的考量值。eg:銷售額,使用者數等

事實表和維度表:事實表儲存有事實記錄的表,eg:系統日誌、銷售記錄等,事實表不斷動態增長。維度表儲存了維度的屬性值,eg:日期表、地點表等

cube、cuboid和cube segment

cube:資料立方體,常用於資料分析和索引的技術,他可以對原始資料建立多維度索引,通過cube對資料進行資料進行分析,大大加快資料的查詢效率。

cuboid:在kylin中特製某一中維度組合下所計算的資料

cube segment:是指針對源資料中的某一片段,計算出來的cube資料。通常資料倉儲中的資料會隨著時間的增長而增長,而cube segment也是按時間順序來構建的。

apache kylin的主要使用過程:

1、資料準備:符合星型模型、維度表設計(kylin將維度表載入到記憶體中處理,所有維度表不能太大)、hive表分割槽 。

2、設計cube:匯入hive表定義、建立資料模型

3、建立cube:kylin是以key-value的方式將cube儲存到hbase中,hbase的key也就是rowkey是由各個維度的值拼接而成的。

4、構建cube:增量構建和全量構建

5、歷史資料重新整理、合併(segment)

6、查詢cube,標準的sql的select語句。

支援構建方式:

增量構建:分全量和增量

流式構建:實現實時資料更新,對接kafka實現,目前存在丟失資料的風險

支援對接方式:

1、web gui --- insight頁面

2、rest api

3、odbc/jdbc

4、通過tableau(bi)訪問kylin。

超快輸入掛(模板)

昨天的hdu的多校最後乙個是個無聊的卡輸入掛的問題,但是不得不說大佬的自己搓的輸入掛就是比較6,比我們的快讀都要快,確實需要記錄一下 大佬分享的 輸入掛模板 標程帶的輸入掛 includeusing namespace std namespace fastio return p1 inline bo...

可擴充套件標記語言

可擴充套件標記語言與access,oracle和sql server等資料庫不同,資料庫提供了更強有力的資料儲存和分析能力,例如 資料索引 排序 查詢 相關一致性等,可擴充套件標記語言僅僅是儲存資料。事實上它與其他資料表現形式最大的不同是 可擴充套件標記語言極其簡單,這是乙個看上去有點瑣細的優點,但...

可擴充套件標記語言

xml是可擴充套件標記語言,類似html,用來傳輸和儲存資料。標準通用標記語言的子集,是一種用於標記電子檔案使其具有結構性的標記語言。在電子計算機中,標記指計算機所能理解的資訊符號,通過此種標記,計算機之間可以處理包含各種的資訊比如文章等。xml是樹形結構,且一定要有跟部標籤。語法規則 a.所有的 ...