Kylin作用是什麼?

題記:想了解Kylin、首先需要了解一下什麼是OLAP、OLTP

一、OLAP:( OnLine Analytical Processing )

一般查詢延遲在秒級或者毫秒級,可以實現交互式查詢、OLAP的查詢一般需要Scan大量數據,大多時候只訪問部分列,聚合的需求(Sum、Count、Max、Min、排序、減等)多於明細的需求、查詢原始明細數據。

OLAP應用:
在年底或者發佈會上的大數據分析和統計應用,如:豆瓣讀書報告,網易雲音樂聽歌報告,螞蟻金服的支付賬單等等。OLAP最重要的應用BI分析、類型TOP5 或者TOP10 排行榜、或者統計標籤的人物畫像哪類人最多等等,熱點問題排行榜並不是。

OLAP優點:
專門用來做決策支持
歷史的、總結的、統一的數據,進行比較或者歸納。
側重與查詢
查詢吞吐量和相應時間是關鍵性能指標

二、OLTP:(Online Transaction Processing)

一般只會訪問少量的記錄,且大多時候都會利用索引。

OLTP應用:
在線的面向終端用戶直接使用的 Web 應用:金融,博客,評論,電商等系統的查詢都是 OLTP 查詢,比如最常見的基於主鍵的 CRUD 操作。

OLTP優點:
專門用來做日常的,基本的操作
任務由短的,原子的,隔離的事務組成
處理的數據量在 G 級別
重視一致性和可恢復性
事務的吞吐量是關鍵性能指標
最小化併發衝突

總結:
OLTP 需要解決數據的增、刪、改、查的問題,OLAP 需要解決數據聚合的問題。

擴展:
OLAP實現方式:根據存儲數據的方式不同可以分爲 ROLAP、MOLAP。

ROLAP:
ROLAP 主要通過數據引擎強大的計算能力,瞬間聚合數據得到 OLAP 結果。

MOLAP:
MOLAP 則是提前計算聚合好數據模型,查詢的時候只需要返回已經聚合好的數據結果。

三、Kylin理論

在這裏插入圖片描述

核心思想:空間換時間

四、Kylin 架構

在這裏插入圖片描述
Kylin 自身的組件只有兩個:**JobServer 和 QueryServer **。 Kylin 的 JobServer 主要負責將數據源(Hive,Kafka)的數據通過計算引擎(MapReduce,Spark)生成 Cube 存儲到存儲引擎(HBase)中。

QueryServer 主要負責 SQL 的解析,邏輯計劃的生成和優化,向 HBase 的多個 Region 發起請求,並對多個 Region 的結果進行彙總,生成最終的結果集。

在架構設計上,Kylin 的數據源,構建 Cube 的計算引擎,存儲引擎都是可插拔的。Kylin 的核心就是這套可插拔架構,Cube 數據模型和 Cuboid 的算法。

五、Kylin 數據模型
在這裏插入圖片描述
Kylin 將表中的列分爲維度列和指標列。在數據導入和查詢時相同維度列中的指標會按照對應的聚合函數 (Sum, Count, Min, Max, 精確去重,近似去重,百分位數,TOPN) 進行聚合。

六、插件架構
在這裏插入圖片描述
參考:http://kylin.apache.org/cn/blog/
參考: RangeYan

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章