國人之光 大資料分析神器Apache Kylin

2022-05-29 20:03:13 字數 2032 閱讀 1929

apache kylin™是乙個開源的、分布式的分析型資料倉儲,提供hadoop/spark 之上的 sql 查詢介面及多維分析(olap)能力以支援超大規模資料,最初由 ebay 開發並貢獻至開源社群。之所以說它是國人之光,是因為它是首個由國人主導的apache頂級開源專案,能在亞秒內查詢巨大的表。 

先了解一下幾個概念,如下有一張表

id客戶號

交易日期

交易型別金額1

00120201230

工資代發

1000000

2002

20210101

轉賬66666

3003

20210115

信用卡還款

1888

查詢某個客戶在哪個時間進行某種交易的金額,這種是多維分析,其中客戶號、交易日期和交易型別是維度(dimensions),金額是度量(measures)

根據**中三個維度乙個度量,可以畫出如下圖形

對於乙個多維模型,在查詢上有多種組合,比如一維的:客戶號/交易日期/交易型別二維的:客戶號+交易日期/客戶號+交易型別/交易日期和交易型別三維的:客戶號+交易日期+交易型別對於每一種組合,稱之為cuboid,這這些組合的統一,則是cube。cube定義了使用的模型、模型的維度和度量等資訊。

別急,這不就準備講了嘛。kylin是為減少在hadoop/spark上百億規模資料查詢延遲而設計的。

對於效率要求較高的大規模資料集的查詢,尤其多維查詢的時候,資料倉儲中一般存在事實表和維度表,需要關聯很多維度表,這就給查詢帶來一定的壓力,查詢效率低下。為了解決這個問題,kylin應運而生。

但是kylin為什麼快呢?

主要是因為它的預計算,它將多維分析可能用到的度量進行預計算,將計算好的結果儲存成cube並儲存到hbase中,供查詢時直接訪問。說到底就是用空間換時間。

大致流程將資料來源(比如hive)中的資料按照指定的維度和指標,由計算引擎mapreduce離線計算出所有可能的查詢結果(即cube)儲存到hbase中。hbase中每行記錄的rowkey由各維度的值拼接而成,度量會儲存在column family中。為了減少儲存代價,會對維度和度量進行編碼。查詢階段,利用hbase列儲存的特性就可以保證kylin有良好的快速響應和高併發。

kylin的架構主要有這幾個部分:

源資料:hive、kafka、rdbms等;

對外查詢介面:rest api、jdbc/odbc;

儲存引擎:hbase;

構建cube的計算引擎

其中構建cube的計算引擎模組如下:

rest server:是一套面向應用程式開發的入口點,旨在實現針對kylin平台的應用開發工作。

query engine:當cube準備就緒後,查詢引擎就能夠獲取並解析使用者查詢。

routing:查詢路由,負責將解析的sql生成的執行計畫轉換成cube快取的查詢,若查詢沒辦法從cube快取中獲取,則下壓至資料來源進行查詢。

metadata:kylin是由元資料驅動的。元資料管理工具是一大關鍵性元件,用於對儲存在kylin當中的所有元資料進行管理,其中包括最為重要的cube元資料。

cube build engine:這套引擎的作用在於處理所有離線任務。

大資料分析工具

新 指數 清博大資料 新 指數 www.gsdata.cn 是新 大資料第一平台,為運營新 利器 現已開通賬號分鐘級監測服務,打擊粉絲造假賬號,支援使用者自主監測新 資料 定製各類榜單,並提供資料api等各類增值服務。資料視覺化工具 cytoscape 圖表秀 資料觀 微博足跡視覺化 bdp個人版 ...

大資料分析流程

愛資料學院 welcome 一 為什麼要做乙份資料報告 你是乙個工作了一段時間的白領,你覺得現在這份工作不適合你,你下班以後去逛知乎,在上面看到很多人在說大資料代表未來,資料分析師是21世紀最 的十大職業之一 你激動了,你也要成為資料分析師,你利用空餘時間補上了統計知識,學了分析工具,然後發現自己目...

大資料分析框架

spark 是在 hadoop 的基礎上進行了一些架構上的改良。spark 與hadoop 最大的不同點在於,hadoop 使用硬碟來儲存資料,而spark 使用記憶體來儲存資料,因此 spark 可以提供超過 ha?doop 100 倍的運算速度。由於記憶體斷電後會丟失資料,spark不能用於處理...