Kylin:基于Hadoop的開源數據倉庫OLAP分析引擎
Kylin是一個開源、分布式的OLAP分析引擎,它由eBay公司開發,并且基于Hadoop提供了SQL接口和OLAP接口,能夠支持TB到 PB級別的數據量。OLAP即聯機分析處理,它能夠幫助分析人員、管理人員或執行人員從多角度快速、一致、交互地存取信息和更加深入的了解信息。OLAP 的目標是滿足決策支持或者滿足在多維環境下特定的查詢和報表需求。目前,比較著名的開源OLAP分析引擎還有Lemur和Mondrian。 Lemur是用C++編寫的面向混合型聯機分析處理(HOLAP)的引擎,它能夠被其他語言的程序所調用,支持切片、切塊和旋轉等基本操作。 Mondrian是用JAVA編寫的面向關系型聯機分析處理(ROLAP)引擎,它符合XML和XMLA協議,可以完成異構平臺下的數據通信。 Mondrian被設計運行在關系數據庫上,提供基于JAVA 的API供應用程序調用展示結果。
從Kylin官網得知,它具有以下特性:
- 超級快的OLAP分析引擎,并具備較強的可伸縮性。Kylin旨在減少Hadoop在10億行以上數據級別的情況下的查詢延遲。
- 為Hadoop 提供 ANSI-SQL 接口。Kylin為Hadoop提供了ANSI-SQL接口,并且支持大多數的ANSI-SQL的函數。
- 交互式查詢能力。用戶能夠通過Kylin在秒級別的延遲狀況下同Hadoop進行交互,并且對于相同的數據。集效果優于Hive的查詢
- 多維聯機分析處理數據倉庫(MOLAP Cube)。用戶能夠定義數據模型,并且通過Kylin能夠預建超過10多億行原始數據記錄的數據模型。
- 數據模型可與其他 BI 工具無縫集成。目前,Kylin提供了同BI工具無縫集成的功能,如Tableau。
- 其他值得關注的特性。具有作業管理和監控的功能、具有簡單易用的 Web操作界面、支持數據壓縮和編碼、支持 LDAP 集成、能夠利用HBase的Coprocessor降低查詢延遲等。 </ul>
- Kylin的核心部分。Kylin的OLAP引擎框架包括元數據引擎、查詢引擎、作業引擎、存儲引擎以及用來處理客戶端請求的REST服務器
- 可擴展的組件部分。包括支持更多功能的插件,如HBase的Coprocessor、Hive等。
- 集成的組件部分。生命周期管理器支持集成作業調度器、ETL工具、監控和報警系統。
- 用戶界面部分。允許第三方用戶基于Kylin 核心組件定制自己的用戶界面。
- 驅動部分。ODBC和JDBC 驅動能夠支持不同的工具和產品,如Tableau。 </ul>
作為一套旨在對Hadoop環境下分析流程進行加速,而且能夠與SQL兼容性工具順利協作的解決方案,Kylin成功將SQL接口與多維分析機制(OLAP)引入Hadoop,旨在對規模極為龐大的數據集加以支持。Kylin的高層架構,如下所示:
支持Kylin能夠良好運行的生態系統包括以下組成部分:
eBay在2014年10月20日的一篇博客上分享了Kylin的細節, 包括REST API、ANSI-SQL兼容性、連接分析工具Tableau和Excel,以及在一些查詢上低于秒級的延遲。然而,Kylin最獨特的特性是它如何處理 scale。eBay表示,它可以查詢數十億行數據——在高達14TB的數據集上,速度比使用傳統的Apache Hive工具快得多。
下面是eBay分享的Kylin如何在公司內部的使用情況:
開放Kylin的時候,我們已經有一些eBay業務單元在生產中使用它。我們最大的用例是120+億源記錄生成的14 +TB cube。它的90%查詢延遲小于5秒。現在,我們的用例瞄準分析師和業務用戶,他們可以輕松的通過Tableau分析并且得到結果——不再需要Hive 查詢,shell命令等等。
</blockquote>想要知道Kylin在與下一版本的Hive、Spark SQL以及Hadoop SQL分析的其他選項較量中誰會勝出,將是一件非常有趣的事情,Kylin作為YARN資源管理器一部分可以在Apache Hadoop的最新版本上獲得。我猜它會慢一點,但比內存選項或那些不需要MapReduce處理的更具擴展性,不過這對于那些仍然在運行更早軟件版本的 用戶可能是一個可靠的選