1 kylin 簡介
Apache Kylin是2013年由eBay 在上海的一個中國工程師團隊發起的、基於Hadoop大數據平台的開源 OLAP引擎,它采用多維立方體預計算技術,利用空間換時間的方法,把很多分鍾級別乃至小時級別的大數據查詢速度一下子提升到了亞秒級別,極大地提高了數據分析的效率,填補了業界在這方面的空白。該引擎為超大規模數據集上的交互式大數據分析打開了大門。
2 軟件下載
社區版kylin下載地址:https://archive.apache.org/dist/kylin/ ,
本次測試使用https://archive.apache.org/dist/kylin/apache-kylin-2.5.0/

3 配置安裝kylin
3.1 解壓配置環境變量
解壓
tar -zxvf apache-kylin-2.5.0-bin-cdh57.tar.gz -C /usr/local
cd /usr/local
mv apache-kylin-2.5.0-bin/ kylin
配置環境變量
vim /etc/profile
----
### kylin ####
export KYLIN_HOME=/usr/local/kylin
PATH=$PATH:$HOME/bin:$KYLIN_HOME/bin
---
source /etc/profile
3.2 啟動驗證
驗證
cd /usr/local/kylin/bin
./check-env.sh
啟動kylin
./kylin.sh start
A new Kylin instance is started by root. To stop it, run 'kylin.sh stop'
Check the log at /usr/local/kylin/logs/kylin.log
Web UI is at http://<hostname>:7070/kylin
出現上面信息表示啟動成功!

默認用戶名:ADMIN
密碼:KYLIN
4 官方測試用例
Kylin 提供了一個創建樣例 Cube 腳本;腳本會創建五個樣例 Hive 表。
4.1 導入數據
運行sample.sh導入官方測試數據
cd /usr/local/kylin/bin
./sample.sh
輸出
Sample cube is created successfully in project 'learn_kylin'.
Restart Kylin Server or click Web UI => System Tab => Reload Metadata to take effect
這句話的意思是 例子cube已成成功創建在了 工程名稱叫'learn_kylin'里面了
重啟kylin或者通過webUI => System選項卡=> 重新導入元數據信息
重啟kylin
cd /usr/local/kylin/bin
./kylin.sh stop
./kylin.sh start
或重新刷新kylin的元數據

hive 的default庫 當中多了5張kylin的表

hive> select * from kylin_sales limit 5;
OK
0 2012-12-14 Others 88750 0 11 36.2828 4 10000349 10002313 ANALYST Beijing
1 2012-08-28 Others 175750 0 13 23.8563 20 10000927 10004376 ANALYST Beijing
2 2012-02-16 ABIN 148324 15 13 88.3418 18 10000005 10006710 ADMIN Shanghai
3 2013-10-19 FP-non GTC 37831 0 13 47.3015 3 10000209 10003717 ANALYST Beijing
4 2012-10-22 Others 140746 100 11 83.454 16 10000154 10006076 ADMIN Shanghai
4.2 查看導入模型
用默認的用戶名和密碼 ADMIN/KYLIN 登陸 Kylin 網站,選擇 project 下拉框(左上角)中的 learn_kylin 工程;
查看導入的信息 => 點擊最上面選項卡 Model

4.3 構建Cube
選擇名為 kylin_sales_cube 的樣例 Cube,點擊 “Actions” -> “Build”,選擇一個在 2014-01-01 之后的結束日期(覆蓋所有的 10000 樣例記錄);
選擇數據分區范圍

查看正在構建的cube任務,點擊 “Monitor” 標簽,查看 build 進度直至 100%;

4.4 查詢構建完成的cube信息
點擊 “Insight” 標簽,執行 SQLs,例如:
select part_dt, sum(price) as total_sold, count(distinct seller_id) as sellers from kylin_sales group by part_dt order by part_dt
Kylin執行上面語句用時:0.15s

您可以驗證查詢結果且與 Hive 的響應時間進行比較;
Hive執行同樣語句用時:88.271s

Sparksql 執行同樣語句用時:8.704s

由此可以看出Kylin這種預計算方式的數據查詢效率遠遠好於Hive和SparkSQL這種並行處理計算框架。
4.5 多表關聯查詢
多表關聯查詢,速度依然很快,查詢下面多表關聯語句,耗時0.66秒。

SELECT sum(KYLIN_SALES.PRICE) AS price_sum,
KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,
KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME
FROM KYLIN_SALES
INNER JOIN KYLIN_CATEGORY_GROUPINGS ON KYLIN_SALES.LEAF_CATEG_ID = KYLIN_CATEGORY_GROUPINGS.LEAF_CATEG_ID
AND KYLIN_SALES.LSTG_SITE_ID = KYLIN_CATEGORY_GROUPINGS.SITE_ID
GROUP BY KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,
KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME
ORDER BY KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME ASC,
KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME DESC
Kylin還提供了圖表工具
