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://: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还提供了图表工具