kylin的原理理解

2021-10-05 19:37:37 字數 1466 閱讀 8283

kylin是乙個大資料的olap引擎,是由ebay-中國團隊研發的,是第乙個真正由中國人自己主導、從零開始、自主研發、並成為apache頂級開源專案,hive的效能比較慢,支援sql靈活查詢,特別慢,hbase的效能快,原生不支援sql,kylin是將先將資料進行預處理(預計算),將預處理的結果放在hbase中。效率很高

​ 使用者資料存在於hadoop hdfs中,利用hive將hdfs檔案資料以關係資料方式訪問,資料量巨大,在500g以上

kylin的核心思想就是利用空間換時間,在資料 etl 匯入 olap 引擎時提前計算各維度的聚合結果並持久化儲存,這樣在使用者進行查詢的時候可以快速的返回結果,大致可以理解為給你一堆原始的資料,匯入kylin中時它提前計算出所有可能的結果,這樣在查詢的時候如果命中了提前計算出的結果,則直接返回,省去了計算的時間,採用這種預計算的方式,可以使olap分析更加快速

kylin依賴於hadoop,hive,zookeeper,hbase

1.首先從資料來源載入資料

2.然後再kylin中建立模組

3.建立模組以後再建立cube,指定指定各種設定等

4.這些都完成以後開始構建cube,這是開始資料的預計算

5.引擎可以選擇mapreduce或者spark

6.預計算出來的結果會被儲存到hbase中

維度和度量

維度就是觀察資料的角度,比如:日期,地域,產品渠道等

度量就是要被統計的統計值,可以進行累加求和求平均等操作

cube和cuboid

乙個資料表中的字段要麼是維度,要麼是度量(可以被聚合)

給定乙個資料模型,比如有n個維度,那麼組合的可能性共有2^n種可能,

對於每一種維度的組合,對度量值進行聚合運算,所得的結果物化為乙個檢視,就稱為cuboid(立方形)

所有的cuboid作為乙個整體,稱為cube(立方體),乙個cube就是許多按維度聚合的物化檢視的集合

資料來源主要是hadoop hive,資料以關係表的形式輸入,且必須符合星形模型,儲存著待分析的使用者資料。根據元資料的定義,構建引擎從資料來源抽取資料,並構建cube

kylin可以使用mapreduce或者spark作為構建引擎。構建後的cube儲存在右側的儲存引擎中,一般選用hbase作為儲存

完成了脫機構建後,使用者可以從上方查詢系統傳送sql進行查詢分析

kylin提供了各種rest api、jdbc/odbc介面。無論從哪個介面進入,sql最終都會來到rest服務層,再轉交給查詢引擎進行處理

sql語句是基於資料來源的關係模型書寫的,而不是cube

CSS 原理理解

網頁製作最初,html規定了 normal document stream 標準文件流 來規範元素在網頁中的顯示法則 標準文件流中元素分兩種 塊內元素,行內元素。行內元素的特點 span標籤 豎直margin中的塌陷現象,上下緊密排列的元素的外邊距並不是兩個元素外邊距之和,而是選取那個最大的外邊距作...

Spring IOC原理理解

ioc,inversion of control,控制倒轉。這是spring的核心,貫穿始終。所謂ioc,對於spring框架來說,就是由spring來負責控制物件的生命週期和物件間的關係。di,dependency injection,依賴注入。在系統執行中,動態的向某個物件提供它所需要的其他物件...

ROI Align 原理理解

對背景問題的理解 之前一直在想乙個問題 乙個label在原圖上標記出乙個包含目標的區域。這個框在特徵提取後,大小被縮小到了什麼程度?如果這個label框本身就不大,那麼經過幾層池化之後,是不是在最後的feature map上都沒有乙個位置,能夠對應到這個區域?目標在特徵提取過程中,由於這種深度結構導...