Apache Kylin 是來自 eBay 的中國人韓卿 @lukehq 領導的團隊開發的一個 OLAP 分析引擎,這是 ebay 歷史上第一次開源並貢獻給 apache 基金會的項目。該項目於 2015年成爲 Apache 頂級項目。Kylin 的性能奇高,是 Hive 的 N 倍!html
Kylin(http://kylin.io)linux
做爲一套旨在對Hadoop環境下分析流程進行加速、且可以與SQL兼容性工具順利協做的解決方案,Kylin 成功將 SQL接口與多維分析機制(OLAP) 引入Hadoop,旨在對規模極爲龐大的數據集加以支持。web
On-Line Analytical Processing算法
Cube構建引擎(Cube Build Engine)是如何以離線處理方式將關係型數據轉化成鍵-值型數據的。
其中的黃線部分還表現出在線分析數據的處理流程。數據請求能夠利用基於SQL的工具由SQL提交而產生,或者利用第三方應用程序經過Kylin的RESTful服務來實現。shell
RESTful服務會調用Query Engine,後者則檢測對應的目標數據集是否真實存在。若是確實存在,該引擎會直接訪問目標數據並以次秒級延遲返回結果。若是目標數據集並不存在,該引擎則會根據設計將無匹配數據集的查詢路由至Hadoop上的SQL處、即交由Hive等Hadoop集羣負責處理。apache
咱們的用戶——好比在分析與業務部門當中但願能在保持最低延遲水平的前提下繼續使用本身所熟悉的工具方案,例如Tableau與Excel。 安全
有鑑於此,勾勒出eBay構成產品的基本要求:服務器
數百億數據行的查詢延遲須要保持在次秒級別。架構
可以爲使用SQL兼容性工具的用戶提供ANSI SQL。併發
完整的OLAP方案以實現各種高級功能。
擁有對高基數與超大規模業務體系的支持能力。
面向成千上萬用戶的高併發性處理能力。
可以處理TB乃至PB級別分析任務的分佈式橫向擴展架構。
可擴展超快OLAP引擎
Hadoop ANSI SQL 接口
交互式查詢能力: (與Hadoop數據進行亞秒級交互)
多維立方體(MOLAP Cube) (能爲百億數據集定義數據模型並構建Cube)
與BI工具無縫整合 (如Tableau)
其餘特性:
Job管理與監控
壓縮與編碼
增量更新
利用HBase Coprocessor
基於HyperLogLog的Dinstinc Count近似算法
友好的web界面以管理,監控和使用立方體
項目及立方體級別的訪問控制安全
支持LDAP
Kylin 核心
擴展
整合
用戶界面
驅動
Kylin OLAP引擎基礎框架,包括元數據(Metadata)引擎,查詢引擎,Job引擎及存儲引擎等,同時包括REST服務器以響應客戶端請求
整合 : 與調度系統,ETL,監控等生命週期管理系統的整合
驅動 : ODBC 和 JDBC 驅動以支持不一樣的工具和產品,好比Tableau
元數據管理工具(Metadata Manager)
任務引擎 (Job Engine)
存儲引擎 (Storage Engine)
REST Server
ODBC驅動程序
查詢引擎(Query Engine)
元數據管理工具(Metadata Manager)
Kylin是一款元數據驅動型應用程序。元數據管理工具是一大關鍵性組件,用於對保存在Kylin當中的全部元數據進行管理,其中包括最爲重要的cube元數據。其它所有組件的正常運做都需以元數據管理工具爲基礎。
任務引擎(Job Engine)
這套引擎的設計目的在於處理全部離線任務,其中包括shell腳本、Java API以及Map Reduce任務等等。任務引擎對Kylin當中的所有任務加以管理與協調,從而確保每一項任務都能獲得切實執行並解決其間出現的故障。
存儲引擎(Storage Engine)
這套引擎負責管理底層存儲——特別是cuboid,其以鍵-值對的形式進行保存。存儲引擎使用的是HBase——這是目前Hadoop生態系統當中最理想的鍵-值系統使用方案。Kylin還可以經過擴展實現對其它鍵-值系統的支持,例如Redis。
•REST Server: REST Server是一套面向應用程序開發的入口點,旨在實現針對Kylin平臺的應用開發工做。 此類應用程序能夠提供查詢、獲取結果、觸發cube構建任務、獲取元數據以及獲取用戶權限等等。
ODBC驅動程序
爲了支持第三方工具與應用程序——例如Tableau——咱們構建起了一套ODBC驅動程序並對其進行了開源。咱們的目標是讓用戶可以更爲順暢地採用這套Kylin平臺。
查詢引擎(Query Engine)
當cube準備就緒後,查詢引擎就可以獲取並解析用戶查詢。它隨後會與系統中的其它組件進行交互,從而向用戶返回對應的結果。
在Kylin當中,咱們使用一套名爲Apache Calcite的開源動態數據管理框架對代碼內的SQL以及其它插入內容進行解析。
京東雲海 : http://www.csdn.net/article/2015-11-27/2826343?utm_source=tuicool&utm_medium=referral
http://www.linuxeden.com/html/news/20150910/162787.html