傳統(tǒng)上,Hadoop(包括MapReduce,Pig以及Hive)通常用于外部私有OLAP Cube引擎準(zhǔn)備數(shù)據(jù)。如今,Zaloni的客戶基于Apache Kylin的OLAP技術(shù)實現(xiàn)了實時查詢的能力,這些Cube的事實表包含了400億條以上的原始數(shù)據(jù)。我們正在幫助客戶統(tǒng)一歸集來自于多個獨立系統(tǒng)的賬單數(shù)據(jù),并構(gòu)建OLAP Cube以支持實時分析,這是以前系統(tǒng)所無法實現(xiàn)的?,F(xiàn)在,Hadoop集群都可以做到了。
基于Hadoop的分析演化
Hadoop已經(jīng)從通用計算能力(MapReduce)的分布式數(shù)據(jù)平臺演化為一個更強大的平臺。Hadoop及其生態(tài)系統(tǒng)已經(jīng)有能力處理更廣泛的用例,遠(yuǎn)超最初設(shè)計時的低成本分布式批處理能力。支持了從迭代式的機器學(xué)習(xí)算法,到OLAP及OLTP系統(tǒng),這些基于“hadoop集群”的開源分析能力給傳統(tǒng)的大玩家們(Oralce,SAS,Teradata,IBM等)帶來了很大的壓力。
為規(guī)模設(shè)計
Apache Kylin是開源的多維在線分析處理引擎(MOLAP),名字來源于中國的一種神獸“麒麟”。項目最初誕生于eBay,專為分析處理PB級數(shù)據(jù)集而設(shè)計。這里引用一段Apache基金會2015年12月的Blog:“Apche Kylin是目前為止大數(shù)據(jù)領(lǐng)域最好的OLAP引擎”,eBay數(shù)據(jù)服務(wù)與解決方案部門高級總監(jiān)Wilson Pang說到,“在eBay,我們收集用戶在每一個頁面的每一個行為。當(dāng)其他OLAP引擎掙扎于數(shù)據(jù)量的極大膨脹時,Kylin可以在毫秒級獲得查詢響應(yīng)。除此之外,基于Kylin我們還實現(xiàn)了近實時的數(shù)據(jù)流存儲和分析。總之,Kylin在eBay產(chǎn)品分析平臺中扮演了至關(guān)重要的后臺核心組件角色。”
如何工作
Kylin通過預(yù)計算實現(xiàn)查詢速度的提升,利用Hive查詢計算多個維度的組合(譯者注:此處原文有誤,正確應(yīng)為,Kylin是通過Hive獲取數(shù)據(jù)源,并利用MapReduce計算多個維度的任意組合),計算各類指標(biāo)的聚合值,并將這些中間結(jié)果保存在HBase中。Kylin擁有用戶友好的查詢界面,也支持通過API和JDBC、ODBC提交查詢。查詢引擎基于Apache Calcite查詢處理器和HBase的檢索功能(比如fuzzy row filters)實現(xiàn)結(jié)果集快速獲取。HBase的rowkeys利用Trie Data Structure技術(shù)實現(xiàn)維度字段字典數(shù)據(jù)的高效壓縮。
當(dāng)前,Kylin只支持星型模型,因此每個Cube只能有單一的事實表。
建模向?qū)?/p>
設(shè)計Cube很容易。假設(shè)你已經(jīng)有了一張Hive的表,建模向?qū)椭阋徊讲阶咄暝O(shè)計的流程,包括選擇維度(包括層級維度),選擇維表,選擇指標(biāo)等。也支持按照日期時間分區(qū),使得Cube分段刷新易如反掌,這廣泛用在了流數(shù)據(jù)的增量式構(gòu)建。一旦Cube定義好了,我們通過Kylin的監(jiān)控界面查看Cube的構(gòu)建進度。
除了原生的Kylin Web界面,你可以通過JDBC查詢OLAP Cube,也可以通過Zeppelin(Zeppelin已經(jīng)內(nèi)置了Kylin的解釋器),或者設(shè)計良好的REST API。
基于Hadoop的OLAP的其他選項
Kylin是基于Hadoop的OLAP技術(shù)的一個開源選項。Apache Lens是另一個,它是一個ROLAP解決方案,并不能實現(xiàn)Kylin這種預(yù)計算技術(shù)所能達到的快速查詢響應(yīng)能力。Druid也是一個選項,它采用了自己的集群技術(shù)(并不依賴Hadoop)。也有一些第三方的解決方案,聲稱支持Hadoop之上的OLAP能力。
作者:Craig Lukasi,本文已獲翻譯授權(quán)。
查看英文原文:http://blog.zaloni.com/apache-kylin-for-olap-on-hadoop