國人之光:大資料分析神器Apache Kylin
阿新 • • 發佈:2021-01-20
一、簡介
Apache Kylin™是一個開源的、分散式的分析型資料倉庫,提供Hadoop/Spark 之上的 SQL 查詢介面及多維分析(OLAP)能力以支援超大規模資料,最初由 eBay 開發並貢獻至開源社群。之所以說它是國人之光,是因為它是首個由國人主導的Apache頂級開源專案,能在亞秒內查詢巨大的表。二、基本概念
先了解一下幾個概念,如下有一張表ID | 客戶號 | 交易日期 | 交易型別 | 金額 |
1 | 001 | 20201230 | 工資代發 | 1000000 |
2 | 002 | 20210101 | 轉賬 | 66666 |
3 | 003 | 20210115 | 信用卡還款 | 1888 |
查詢某個客戶在哪個時間進行某種交易的金額,這種是多維分析,其中客戶號、交易日期和交易型別是維度(Dimensions),金額是度量(Measures)。
三、作用及原理
有些讀者就要說了:概念講了一堆,就是不說它到底為什麼出現,解決什麼問題,難怪閱讀量這麼少 別急,這不就準備講了嘛。Kylin是為減少在Hadoop/Spark上百億規模資料查詢延遲而設計的。 對於效率要求較高的大規模資料集的查詢,尤其多維查詢的時候,資料倉庫中一般存在事實表和維度表,需要關聯很多維度表,這就給查詢帶來一定的壓力,查詢效率低下。為了解決這個問題,Kylin應運而生。 但是Kylin為什麼快呢? 主要是因為它的預計算,它將多維分析可能用到的度量進行預計算,將計算好的結果儲存成Cube並存儲到HBase中,供查詢時直接訪問。說到底就是用空間換時間。 大致流程:將資料來源(比如Hive)中的資料按照指定的維度和指標,由計算引擎MapReduce離線計算出所有可能的查詢結果(即Cube)儲存到HBase中。HBase中每行記錄的Rowkey由各維度的值拼接而成,度量會儲存在column family中。為了減少儲存代價,會對維度和度量進行編碼。查詢階段,利用HBase列儲存的特性就可以保證Kylin有良好的快速響應和高併發。四、Kylin的架構
五、總結
本文大概介紹了Kylin以及一些相關的概念和原理、架構。更多內容可以去Kylin 官網進行了