Kylin(Extreme OLAP Engine for Big Data)

  概述

    Apache Kylin是一個開源的分佈式分析引擎,提供Hadoop之上的SQL查詢接口及多維分析(OLAP)能力以支持超大規模數據,最初由eBay Inc. 開發並貢獻至開源社區。最初於2014年10月1日開源,並於同年11月加入Aapche孵化器項目,並在一年後的2015年11月順利畢業成爲Apache頂級項目,是eBay全球貢獻至Apache軟件基金會(ASF)的第一個項目,也是所有由在中國的華人團隊總體貢獻至Apache的第一個項目。 前端

在eBay,已經上線兩個生產環境平臺,有着諸多的應用,包括用戶行爲分析、點擊分析、商戶分析、交易分析等應用,最新的Streaming分析項目也已經上線。目前在eBay平臺上最大的單個cube包含了超過1000億的數據,90%查詢響應時間小於1.5秒,95%的查詢響應時間小於5秒。同時Apache Kylin在eBay外部也有不少的用戶,包括京東、美團、百度地圖、網易、惟品會、Expedia、Expotional等不少國內外公司也已經在實際環境中使用起來,把Apache Kylin做爲他們大數據分析的基礎之一。 web

在構建生態系統方面:一個應用很難單獨的存在與一個企業中,無論是商業產品仍是開源項目。從一開始,Kylin就定下了只關注核心功能,儘量與整個產業鏈中的其它產品,項目及公司進行合做的方向。好比在前端展示方面和Tableau(Tableau helps people see and understand data)進行充分合做,在存儲方面依靠HBase等。Apache Kylin的生態圈圖從初版到如今沒有太多的變化,只是增長了更多的朋友,例如Apache Zeppelin等,隨着新版架構的改進,整個項目將與Spark,Kafka, Excel/PowerBI, Docker等造成更好的互補和整合,積極融入整個大數據生態圈並打造本身的生態系統。 算法

在eBay,已經上線兩個生產環境平臺,有着諸多的應用,包括用戶行爲分析、點擊分析、商戶分析、交易分析等應用,最新的Streaming分析項目也已經上線。目前在eBay平臺上最大的單個cube包含了超過1000億的數據,90%查詢響應時間小於1.5秒,95%的查詢響應時間小於5秒。同時Apache Kylin在eBay外部也有不少的用戶,包括京東、美團、百度地圖、網易、惟品會、Expedia、Expotional等不少國內外公司也已經在實際環境中使用起來,把Apache Kylin做爲他們大數據分析的基礎之一。 sql


1.1  Kylin是什麼


(1)     可擴展超快的OLAP分析引擎 shell

Kylin設計於減小在Hadoop百億級別數據行下的查詢延遲。 數據庫

(2)     基於HadoopANSI SQL(美國國家標準化組織(ANSI)) 數組

KylinHadoop提供標準SQL支持大部分查詢功能。 緩存

(3)     交互式查詢能力 安全

用戶能夠經過KylinHadoop數據進行低延遲交互,在同一數據集下比HIVE的查詢效率高。 架構

(4)     MOLAP Cube(多維立方體)

MOLAP即基於多維數組的存儲模型,也是最原始的OLAP,但須要對數據進行預處理才能造成多維結構。在Kylin中用戶能夠定義數據模型,而且對超過數百億行的數據集進行預構建。關於數據立方體,維度與OLAP相關概念可參考:http://my.oschina.net/yjwxh/blog/629122

(5)     BI工具無縫集成

Kylin提供了與BI工具例如Tableau的集成。與微軟Excel的集成也將會支持。

(6)     其餘一些亮點

a)         任務的管理與監控

b)         壓縮與編碼的支持

c)         增量更新

d)         hbase協調處理來下降查詢延遲

e)         基於HyperLogLogDistinct Count近似算法

f)          提供簡單的WEB界面來管理,構建,監控和查詢cubes

g)         項目及立方體級別的訪問控制安全

h)         支持LDAP集成

1.2  Kylin生態

(1)     Kylin 核心:Kylin OLAP引擎的基礎框架包含:元數據引擎、查詢引擎、任務引擎以及存儲引擎。它也包含了一個提供客戶端請求的REST服務端。

(2)     擴展:基於插件機制的功能與特點的擴展。

(3)     集成:生命週期管理支持任務計劃、ETL、監控和告警系統的集成。

(4)     用戶界面:允在Kylin核心之上擴展的第三方用戶界面。

(5)     驅動:JDBC/ODBC支持不一樣的工具和產品例如Tableau

 

Kylin安裝部署

2.1 安裝需求

         Hadoop2.14+, Hive:0.13+, HBase0.98+, JDK1.7+

         一般來講Kylin安裝在Hadoop客戶端機器上。能夠做爲樣例使用,或者爲那些想要集成kylin服務的web站點服務。場景描述以下

    

對於通常用例來講,上圖中的應用指的是Kylin web端,包含了一個web界面用於cube的建立,查詢以及其餘管理操做。Kylin web也啓動一個查詢引擎用於查詢cube, 一個構建引擎用於構建cubes,,這兩個引擎與hadoop組件交互,例如hivehbase

         Kylin啓動: kylin.sh start

        訪問kylin web客戶端   ADMIN/KYLIN

    

    

三 kylin使用指南

3.1 使用樣例cube快速開始

         執行kylin提供的sample.sh腳本,在hive、hbase生成相應的數據表

    經過hive shell客戶端測試數據庫表是否生成:

    檢測是否在hbase生成相關元數據信息表:

    表已經生成,重啓kylin,清除緩存。從新登陸kylin web端,並選擇learn_kylin工程。

    登陸執行cube  Actions=>Build

    

    

    當cube build完成100%後,在Query下執行查詢操做,查詢語句:

select part_dt, sum(price) as total_selled, count(distinct seller_id) as sellers from kylin_sales group by part_dt order by part_dt

查詢全部時間:2.25

使用hive直接查詢所用時間:54s

    

    使用spark sql查詢所用時間:首次17s, 以後10-11s左右。6個節點 8g/節點內存

    


   經過比較發現,kylin的查詢效率仍是很高的。

四  在Zeppelin中集成Kylin

4.1 配置Zeppelin Interpreter


4.2 建立新的notebook測試kylin  

相關文章
相關標籤/搜索